[PackageKit-commit] packagekit: Branch 'master' - 52 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Thu Sep 3 10:42:19 PDT 2009
backends/dummy/pk-backend-dummy.c | 10
backends/ports/portsBackend.rb | 137 +
backends/ports/ruby_packagekit/Makefile.am | 1
backends/ports/ruby_packagekit/prints.rb | 59
backends/yum/yumBackend.py | 118 +
backends/yum/yumMediaManager.py | 23
client/.gitignore | 3
client/Makefile.am | 47
client/pk-console-test.c | 1709 +++++++++++++++++++++++
client/pk-console.c | 11
client/pk-generate-pack.c | 2
client/pk-monitor.c | 6
client/pk-progress-bar.c | 1
client/pk-progress-bar.h | 1
client/pk-self-test.c | 3
client/pk-task-text.c | 445 +++++
client/pk-task-text.h | 60
client/pk-text.c | 100 +
client/pk-text.h | 35
client/pk-tools-common.c | 62
client/pk-tools-common.h | 19
configure.ac | 6
contrib/PackageKit.spec.in | 7
contrib/command-not-found/Makefile.am | 4
contrib/command-not-found/pk-command-not-found.c | 2
contrib/command-not-found/pk-text.c | 1
contrib/command-not-found/pk-text.h | 1
contrib/command-not-found/pk-tools-common.c | 1
contrib/command-not-found/pk-tools-common.h | 1
contrib/debuginfo-install/pk-progress-bar.c | 4
docs/html/pk-intro.html | 2
lib/packagekit-glib/egg-string.c | 3
lib/packagekit-glib/egg-string.h | 1
lib/packagekit-glib/pk-bitfield.c | 5
lib/packagekit-glib/pk-bitfield.h | 1
lib/packagekit-glib/pk-common.c | 3
lib/packagekit-glib/pk-common.h | 1
lib/packagekit-glib/pk-control.c | 6
lib/packagekit-glib/pk-enum.c | 3
lib/packagekit-glib/pk-enum.h | 1
lib/packagekit-glib2/Makefile.am | 9
lib/packagekit-glib2/packagekit.h | 2
lib/packagekit-glib2/pk-client.c | 71
lib/packagekit-glib2/pk-client.h | 3
lib/packagekit-glib2/pk-control-sync.c | 4
lib/packagekit-glib2/pk-control-sync.h | 1
lib/packagekit-glib2/pk-control.c | 13
lib/packagekit-glib2/pk-control.h | 1
lib/packagekit-glib2/pk-package-id.c | 309 ++++
lib/packagekit-glib2/pk-package-id.h | 46
lib/packagekit-glib2/pk-package-sack.c | 297 ++-
lib/packagekit-glib2/pk-package-sack.h | 6
lib/packagekit-glib2/pk-package.c | 18
lib/packagekit-glib2/pk-package.h | 1
lib/packagekit-glib2/pk-progress.c | 3
lib/packagekit-glib2/pk-progress.h | 1
lib/packagekit-glib2/pk-results.c | 96 +
lib/packagekit-glib2/pk-results.h | 39
lib/packagekit-glib2/pk-self-test.c | 18
lib/packagekit-glib2/pk-task-wrapper.c | 349 ++++
lib/packagekit-glib2/pk-task-wrapper.h | 60
lib/packagekit-glib2/pk-task.c | 1082 ++++++++++++++
lib/packagekit-glib2/pk-task.h | 142 +
lib/packagekit-qt/src/daemonproxy.h | 92 -
lib/packagekit-qt/src/transaction.cpp | 28
lib/packagekit-qt/src/transaction.h | 13
lib/packagekit-qt/src/transactionprivate.h | 2
lib/packagekit-qt/src/transactionproxy.cpp | 1
lib/packagekit-qt/src/transactionproxy.h | 221 +-
po/POTFILES.in | 3
po/POTFILES.skip | 1
po/es.po | 495 +++---
po/gu.po | 678 ++++-----
po/hi.po | 519 +++---
po/ml.po | 559 +++----
po/nl.po | 614 ++++----
src/org.freedesktop.PackageKit.Transaction.xml | 16
src/org.freedesktop.PackageKit.xml | 6
src/pk-transaction.c | 7
79 files changed, 6764 insertions(+), 1967 deletions(-)
New commits:
commit ca8c7540b05aacae3cec2228c5eb076553f4de9a
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 18:33:32 2009 +0100
trivial: Rename the debuginfo-install subpackage to debug-install
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index d5c16c8..9531277 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -135,12 +135,13 @@ Requires: %{name} = %{version}-%{release}
%description cron
Crontab and utilities for running PackageKit as a cron job.
-%package debuginfo-install
+%package debug-install
Summary: Facility to install debugging packages using PackageKit
Group: System Environment/Base
Requires: %{name} = %{version}-%{release}
+Obsoletes: PackageKit-debuginfo-install <= 0.5.2-0.1.20090902git.fc12
-%description debuginfo-install
+%description debug-install
Provides facility to install debugging packages using PackageKit.
%package glib-devel
commit 09d9cfad1fe1e86be0cd0e7ff5e47104ca03b6e9
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 18:26:03 2009 +0100
trivial: Remove some obsolete code
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 1d8bcb3..fe97457 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -425,20 +425,7 @@ pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
static void
pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
{
- PkRoleEnum role;
- const gchar *role_text;
- gfloat time_s;
PkRestartEnum restart;
- gboolean ret;
- GError *error = NULL;
-
- pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
-
- role_text = pk_role_enum_to_text (role);
- time_s = (gfloat) runtime / 1000.0;
-
- /* do we need to new line? */
- egg_debug ("%s runtime was %.1f seconds", role_text, time_s);
/* is there any restart to notify the user? */
restart = pk_client_get_require_restart (client);
@@ -458,35 +445,6 @@ pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
/* 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."));
}
-
- /* need to handle retry with only_trusted=FALSE */
- if (exit_enum == PK_EXIT_ENUM_NEED_UNTRUSTED) {
- egg_debug ("need to handle untrusted");
-
- /* retry new action with untrusted */
- pk_client_set_only_trusted (PK_CLIENT(task), FALSE);
- ret = pk_client_requeue (PK_CLIENT(task), &error);
- if (!ret) {
- egg_warning ("Failed to requeue: %s", error->message);
- g_error_free (error);
- }
- return;
- }
-
- if ((role == PK_ROLE_ENUM_INSTALL_FILES || role == PK_ROLE_ENUM_INSTALL_PACKAGES) &&
- exit_enum == PK_EXIT_ENUM_FAILED && need_requeue) {
- egg_warning ("waiting for second install file to finish");
- return;
- }
-
- /* have we failed to install, and the gpg key is now installed */
- if (exit_enum == PK_EXIT_ENUM_KEY_REQUIRED && need_requeue) {
- egg_debug ("key now installed");
- return;
- }
-
- /* close the loop */
- g_main_loop_quit (loop);
}
/**
@@ -608,61 +566,6 @@ pk_console_install_stuff (gchar **packages, GError **error)
/* convert to strv */
package_ids = pk_ptr_array_to_strv (array_packages);
- /* can we simulate? */
- if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES)) {
- ret = pk_client_reset (client_sync, &error_local);
- if (!ret) {
- /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- egg_debug ("Simulating install for %s", package_ids[0]);
- ret = pk_client_simulate_install_packages (client_sync, package_ids, error);
- if (!ret) {
- egg_warning ("failed to simulate a package install");
- goto out;
- }
-
- /* see how many packages there are */
- list_single = pk_client_get_package_list (client_sync);
- pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
- g_object_unref (list_single);
-
- /* one of the simulate-install-packages failed */
- if (!ret)
- goto out;
-
- /* if there are no required packages, just do the remove */
- length = pk_package_list_get_size (list);
- if (length != 0) {
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
-
- /* we chickened out */
- if (!accept_changes) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
- ret = FALSE;
- goto out;
- }
- }
- }
-
- /* reset */
- ret = pk_client_reset (PK_CLIENT(task), &error_local);
- if (!ret) {
- /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
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 */
@@ -677,52 +580,6 @@ pk_console_install_stuff (gchar **packages, GError **error)
/* convert to strv */
files = pk_ptr_array_to_strv (array_files);
- /* can we simulate? */
- if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)) {
- ret = pk_client_reset (client_sync, &error_local);
- if (!ret) {
- /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- egg_debug ("Simulating install for %s", files[0]);
- ret = pk_client_simulate_install_files (client_sync, files, error);
- if (!ret) {
- egg_warning ("failed to simulate a package install");
- goto out;
- }
-
- /* see how many packages there are */
- list_single = pk_client_get_package_list (client_sync);
- pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
- g_object_unref (list_single);
-
- /* one of the simulate-install-files failed */
- if (!ret)
- goto out;
-
- /* if there are no required packages, just do the remove */
- length = pk_package_list_get_size (list);
- if (length != 0) {
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
-
- /* we chickened out */
- if (!accept_changes) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
- ret = FALSE;
- goto out;
- }
- }
- }
-
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 */
@@ -749,12 +606,6 @@ out:
static gboolean
pk_console_remove_only (gchar **package_ids, gboolean force, GError **error)
{
- gboolean ret;
-
- egg_debug ("remove+ %s", package_ids[0]);
- ret = pk_client_reset (PK_CLIENT(task), error);
- if (!ret)
- return ret;
return pk_client_remove_packages (PK_CLIENT(task), package_ids, force, FALSE, error);
}
@@ -799,74 +650,8 @@ pk_console_remove_packages (gchar **packages, GError **error)
/* convert to strv */
package_ids = pk_ptr_array_to_strv (array);
- /* are we dumb and can't check for requires? */
- if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES)) {
- /* 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);
- g_error_free (error_local);
- }
- goto out;
- }
-
- ret = pk_client_reset (client_sync, &error_local);
- if (!ret) {
- /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- egg_debug ("Getting installed requires for %s", package_ids[0]);
- /* see if any packages require this one */
- ret = pk_client_simulate_remove_packages (client_sync, package_ids, error);
- if (!ret) {
- egg_warning ("failed to simulate a package removal");
- goto out;
- }
-
- /* see how many packages there are */
- list_single = pk_client_get_package_list (client_sync);
- pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
- g_object_unref (list_single);
-
- /* one of the simulate-remove-packages failed */
- if (!ret)
- goto out;
-
- /* if there are no required packages, just do the remove */
- length = pk_package_list_get_size (list);
- if (length == 0) {
- egg_debug ("no requires");
- 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);
- g_error_free (error_local);
- }
- goto out;
- }
-
- /* present this to the user */
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- remove_deps = pk_console_get_prompt (_("Proceed with additional packages?"), FALSE);
-
- /* we chickened out */
- if (!remove_deps) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package removal was canceled!"));
- ret = FALSE;
- goto out;
- }
-
- /* remove all the stuff */
- ret = pk_console_remove_only (PK_CLIENT(task), package_ids, TRUE, &error_local);
+ /* 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);
@@ -920,15 +705,6 @@ pk_console_download_packages (gchar **packages, const gchar *directory, GError *
/* convert to strv */
package_ids = pk_ptr_array_to_strv (array_packages);
- /* reset */
- ret = pk_client_reset (PK_CLIENT(task), &error_local);
- if (!ret) {
- /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
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 */
@@ -970,67 +746,15 @@ pk_console_update_package (const gchar *package, GError **error)
}
package_ids = pk_package_ids_from_id (package_id);
- /* are we dumb and can't simulate? */
- if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES)) {
- /* no, just try to update it without deps */
- ret = pk_client_update_packages (PK_CLIENT(task), TRUE, package_ids, error);
- if (!ret) {
- /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
- g_error_free (error_local);
- }
- goto out;
- }
-
- ret = pk_client_reset (client_sync, &error_local);
- if (!ret) {
- /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- egg_debug ("Simulating update for %s", package_ids[0]);
- ret = pk_client_simulate_update_packages (client_sync, package_ids, error);
- if (!ret) {
- egg_warning ("failed to simulate a package update");
- goto out;
- }
-
- /* see how many packages there are */
- list_single = pk_client_get_package_list (client_sync);
- pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
- g_object_unref (list_single);
-
- /* one of the simulate-update-packages failed */
- if (!ret)
- goto out;
-
- /* if there are no required packages, just do the remove */
- length = pk_package_list_get_size (list);
- if (length != 0) {
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
-
- /* we chickened out */
- if (!accept_changes) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package update was canceled!"));
- ret = FALSE;
- goto out;
- }
- }
-
+ /* no, just try to update it without deps */
ret = pk_client_update_packages (PK_CLIENT(task), TRUE, package_ids, error);
if (!ret) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
g_error_free (error_local);
}
+ goto out;
+
out:
g_object_unref (list);
g_strfreev (package_ids);
@@ -1187,31 +911,6 @@ pk_console_get_update_detail (const gchar *package, GError **error)
g_free (package_id);
return ret;
}
-
-/**
- * pk_console_error_code_cb:
- **/
-static void
-pk_console_error_code_cb (PkErrorCodeEnum error_code, const gchar *details, gpointer data)
-{
- PkRoleEnum role;
-
- pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
-
- /* handled */
- if (need_requeue) {
- if (error_code == PK_ERROR_ENUM_NO_LICENSE_AGREEMENT ||
- pk_error_code_is_need_untrusted (error_code)) {
- egg_debug ("ignoring %s error as handled", pk_error_enum_to_text (error_code));
- return;
- }
- egg_warning ("set requeue, but did not handle error");
- }
-
- /* TRANSLATORS: This was an unhandled error, and we don't have _any_ context */
- g_print ("%s %s: %s\n", _("Error:"), pk_error_enum_to_text (error_code), details);
-}
-
#endif
/**
@@ -1244,22 +943,11 @@ pk_console_sigint_handler (int sig)
#if 0
/* cancel any tasks */
- pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
- if (role != PK_ROLE_ENUM_UNKNOWN) {
- 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;
- }
- }
- pk_client_get_role (client_sync, &role, NULL, NULL);
- if (role != PK_ROLE_ENUM_UNKNOWN) {
- ret = pk_client_cancel (client_sync, &error);
- if (!ret) {
- egg_warning ("failed to cancel task client: %s", error->message);
- g_error_free (error);
- }
+ 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
commit f2e30662f72d7c4fd74637497cc3545246450aac
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 18:13:24 2009 +0100
glib2: Fix GetOldTransactions
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 9f36e72..1d8bcb3 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -187,76 +187,12 @@ pk_console_transaction_cb (const PkResultItemTransaction *obj, gpointer user_dat
/* create printable */
package = pk_package_id_to_printable (parts[1]);
- g_print (" - %s %s", parts[0], package);
+ g_print (" - %s %s\n", parts[0], package);
g_free (package);
g_strfreev (parts);
}
g_strfreev (lines);
}
-#if 0
-
-/**
- * pk_console_print_deps_list_info:
- **/
-static guint
-pk_console_print_deps_list_info (PkPackageSack *list, PkInfoEnum info, const gchar *header)
-{
- const PkResultItemPackage *obj;
- gboolean ret = FALSE;
- guint found = 0;
- guint i;
- guint length;
-
- length = pk_package_list_get_size (list);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (list, i);
-
- /* are we interested in this type */
- if (obj->info != info)
- continue;
-
- /* is this package already local */
- if (g_strcmp0 (obj->id->data, "local") == 0)
- continue;
-
- /* print header if it's not been done before */
- if (!ret) {
- g_print ("%s\n", header);
- ret = TRUE;
- }
-
- /* print package */
- g_print ("%i\t%s\n", ++found, package);
- }
- return found;
-}
-
-/**
- * pk_console_print_deps_list:
- **/
-static guint
-pk_console_print_deps_list (PkPackageSack *list)
-{
- guint found = 0;
-
- /* TRANSLATORS: When processing, we might have to remove other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
-
- /* TRANSLATORS: When processing, we might have to install other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
-
- /* TRANSLATORS: When processing, we might have to update other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
-
- /* TRANSLATORS: When processing, we might have to reinstall other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
-
- /* TRANSLATORS: When processing, we might have to downgrade other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_DOWNGRADING, _("The following packages have to be downgraded:"));
-
- return found;
-}
-#endif
/**
* pk_console_distro_upgrade_cb:
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index ebd11ba..0363b6e 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -910,7 +910,7 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
} else if (state->role == PK_ROLE_ENUM_GET_OLD_TRANSACTIONS) {
state->call = dbus_g_proxy_begin_call (state->proxy, "GetOldTransactions",
(DBusGProxyCallNotify) pk_client_method_cb, state, NULL,
- G_TYPE_STRV, state->package_ids,
+ G_TYPE_UINT, state->number,
G_TYPE_INVALID);
} else if (state->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
state->call = dbus_g_proxy_begin_call (state->proxy, "DownloadPackages",
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 358df91..4662925 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -241,7 +241,7 @@ pk_task_simulate_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskStat
/* TODO: remove all the PK_ENUM_INFO_CLEANUP packages */
/* no results from simulate */
- length = pk_package_list_get_size (list);
+ length = pk_package_sack_get_size (sack);
if (length == 0) {
pk_task_do_async_action (state);
goto out;
commit 04bd04aeca7dd13da8f9ffcbc1881fbfff89b59d
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 18:09:51 2009 +0100
Don't finish the progress bar if one was never drawn
diff --git a/contrib/debuginfo-install/pk-progress-bar.c b/contrib/debuginfo-install/pk-progress-bar.c
index b4e4098..af3bf1c 100644
--- a/contrib/debuginfo-install/pk-progress-bar.c
+++ b/contrib/debuginfo-install/pk-progress-bar.c
@@ -263,6 +263,10 @@ pk_progress_bar_end (PkProgressBar *self)
{
g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
+ /* never drawn */
+ if (self->priv->percentage == G_MININT)
+ return FALSE;
+
self->priv->percentage = G_MININT;
pk_progress_bar_draw (self, 100);
g_print ("\n");
commit 09889751aa1151ca64ca9e993e89a456832fc25a
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 18:05:06 2009 +0100
glib2: handle simulate in the PkTaskText
diff --git a/client/pk-task-text.c b/client/pk-task-text.c
index 511d252..f85ca2e 100644
--- a/client/pk-task-text.c
+++ b/client/pk-task-text.c
@@ -198,6 +198,101 @@ dkp_task_text_media_change_question (PkTask *task, guint request, const PkResult
}
/**
+ * pk_task_text_simulate_question_type_to_text:
+ **/
+static const gchar *
+dkp_task_text_simulate_question_type_to_text (PkInfoEnum info)
+{
+ if (info == PK_INFO_ENUM_REMOVING) {
+ /* TRANSLATORS: When processing, we might have to remove other dependencies */
+ return _("The following packages have to be removed:");
+ }
+
+ if (info == PK_INFO_ENUM_INSTALLING) {
+ /* TRANSLATORS: When processing, we might have to install other dependencies */
+ return _("The following packages have to be installed:");
+ }
+
+ if (info == PK_INFO_ENUM_UPDATING) {
+ /* TRANSLATORS: When processing, we might have to update other dependencies */
+ return _("The following packages have to be updated:");
+ }
+
+ if (info == PK_INFO_ENUM_REINSTALLING) {
+ /* TRANSLATORS: When processing, we might have to reinstall other dependencies */
+ return _("The following packages have to be reinstalled:");
+ }
+
+ if (info == PK_INFO_ENUM_DOWNGRADING) {
+ /* TRANSLATORS: When processing, we might have to downgrade other dependencies */
+ return _("The following packages have to be downgraded:");
+ }
+
+ /* do not show */
+ return NULL;
+}
+
+/**
+ * pk_task_text_simulate_question:
+ **/
+static void
+dkp_task_text_simulate_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ guint len;
+ gboolean ret;
+ const gchar *package_id;
+ const gchar *title;
+ gchar *printable;
+ gchar *summary;
+ PkPackage *package;
+ PkPackageSack *sack;
+ PkInfoEnum info;
+ PkInfoEnum info_last = PK_INFO_ENUM_UNKNOWN;
+ PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ sack = pk_results_get_package_sack (results);
+
+ /* print data */
+ len = pk_package_sack_get_size (sack);
+ for (i=0; i<len; i++) {
+ package = pk_package_sack_get_index (sack, i);
+ g_object_get (package,
+ "info", &info,
+ "summary", &summary,
+ NULL);
+ /* new header */
+ if (info != info_last) {
+ title = dkp_task_text_simulate_question_type_to_text (info);
+ g_print ("%s\n", title);
+ info_last = info;
+ }
+ package_id = pk_package_get_id (package);
+ printable = pk_package_id_to_printable (package_id);
+ g_print (" %s\t%s\n", printable, summary);
+
+ g_free (summary);
+ g_free (printable);
+ g_object_unref (package);
+ }
+
+ /* ask the user */
+ ret = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
+ if (ret) {
+ pk_task_user_accepted (task, request);
+ } else {
+ g_print ("%s\n", _("The transaction did not proceed."));
+ pk_task_user_declined (task, request);
+ }
+
+ g_object_unref (sack);
+}
+
+/**
* pk_task_text_class_init:
**/
static void
@@ -211,6 +306,7 @@ pk_task_text_class_init (PkTaskTextClass *klass)
task_class->key_question = dkp_task_text_key_question;
task_class->eula_question = dkp_task_text_eula_question;
task_class->media_change_question = dkp_task_text_media_change_question;
+ task_class->simulate_question = dkp_task_text_simulate_question;
g_type_class_add_private (klass, sizeof (PkTaskTextPrivate));
}
@@ -290,7 +386,7 @@ pk_task_text_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTe
egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
}
- if (packages->len != 5)
+ if (packages->len != 3)
egg_test_failed (test, "invalid number of packages: %i", packages->len);
g_ptr_array_unref (packages);
commit a9ad006ae6d2a71290bd6f5c556b92d422af3133
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 18:04:35 2009 +0100
glib2: only call the simulate callback if we really need to
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index e9b0f72..358df91 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -198,6 +198,8 @@ 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;
+ PkPackageSack *sack = NULL;
+ guint length;
/* old results no longer valid */
if (state->results != NULL)
@@ -233,9 +235,32 @@ pk_task_simulate_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskStat
goto out;
}
+ /* get data */
+ sack = pk_results_get_package_sack (results);
+
+ /* TODO: remove all the PK_ENUM_INFO_CLEANUP packages */
+
+ /* no results from simulate */
+ length = pk_package_list_get_size (list);
+ if (length == 0) {
+ pk_task_do_async_action (state);
+ goto out;
+ }
+
+ /* same number of packages as the input packages */
+ if (length == g_strv_length (state->package_ids)) {
+ pk_task_do_async_action (state);
+ goto out;
+ }
+
+ /* sort the list, as clients will mostly want this */
+ pk_package_sack_sort_info (sack);
+
/* run the callback */
klass->simulate_question (state->task, state->request, state->results);
out:
+ if (sack != NULL)
+ g_object_unref (sack);
return;
}
commit 692ab2622b9a02bc511aa93c72f4d20b2f0b1a2c
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 17:47:12 2009 +0100
dameon: for backends without simulate, we need to emit the original packages before we fall back
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index af0ed87..09da9c6 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1227,6 +1227,7 @@ G_GNUC_WARN_UNUSED_RESULT static gboolean
pk_transaction_set_running (PkTransaction *transaction)
{
gboolean ret;
+ guint i;
GError *error = NULL;
PkBackendDesc *desc;
PkStore *store;
@@ -1417,6 +1418,9 @@ pk_transaction_set_running (PkTransaction *transaction)
if (desc->simulate_install_packages != NULL) {
desc->simulate_install_packages (priv->backend, priv->cached_package_ids);
} else {
+ /* we need to emit the original packages before we fall back */
+ for (i=0; priv->cached_package_ids[i] != NULL; i++)
+ pk_backend_package (priv->backend, PK_INFO_ENUM_INSTALLING, priv->cached_package_ids[i], "");
filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
desc->get_depends (priv->backend, filters, priv->cached_package_ids, TRUE);
}
@@ -1433,6 +1437,9 @@ pk_transaction_set_running (PkTransaction *transaction)
if (desc->simulate_update_packages != NULL) {
desc->simulate_update_packages (priv->backend, priv->cached_package_ids);
} else {
+ /* we need to emit the original packages before we fall back */
+ for (i=0; priv->cached_package_ids[i] != NULL; i++)
+ pk_backend_package (priv->backend, PK_INFO_ENUM_REMOVING, priv->cached_package_ids[i], "");
filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
desc->get_depends (priv->backend, filters, priv->cached_package_ids, TRUE);
}
commit 1380138ec5d16bd03962d43b011b6685b69cc39f
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 17:25:08 2009 +0100
glib2: Add simulate support into PkTask, falling back to not-simulating if not supported
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index f070c5b..ebd11ba 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -270,6 +270,7 @@ pk_client_cancel_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *sta
ret = dbus_g_proxy_end_call (proxy, call, &error,
G_TYPE_INVALID);
if (!ret) {
+ /* there's not really a lot we can do here */
egg_warning ("failed: %s", error->message);
g_error_free (error);
}
@@ -409,7 +410,6 @@ pk_client_method_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState *sta
if (!state->ret) {
/* fix up the D-Bus error */
pk_client_fixup_dbus_error (error);
- egg_warning ("failed: %s", error->message);
pk_client_state_finish (state, error);
return;
}
@@ -851,7 +851,6 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
if (!ret) {
/* fix up the D-Bus error */
pk_client_fixup_dbus_error (error);
- egg_warning ("failed to set locale: %s", error->message);
pk_client_state_finish (state, error);
goto out;
}
@@ -2844,7 +2843,6 @@ pk_client_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientSt
dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), &hash,
G_TYPE_INVALID);
if (!ret) {
- egg_warning ("failed to set proxy: %s", error->message);
pk_client_state_finish (state, error);
return;
}
@@ -2992,7 +2990,6 @@ pk_client_init (PkClient *client)
/* check dbus connections, exit if not valid */
client->priv->connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
if (error != NULL) {
- egg_warning ("%s", error->message);
g_error_free (error);
g_error ("This program cannot start until you start the dbus system service.");
}
diff --git a/lib/packagekit-glib2/pk-task-wrapper.c b/lib/packagekit-glib2/pk-task-wrapper.c
index c6d2e1e..0d25a29 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.c
+++ b/lib/packagekit-glib2/pk-task-wrapper.c
@@ -23,6 +23,7 @@
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-package-id.h>
#include "egg-debug.h"
@@ -157,6 +158,51 @@ 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)
+{
+ guint i;
+ guint len;
+ const gchar *package_id;
+ gchar *printable;
+ gchar *summary;
+ PkPackage *package;
+ PkPackageSack *sack;
+ PkInfoEnum info;
+ PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ sack = pk_results_get_package_sack (results);
+
+ /* print data */
+ len = pk_package_sack_get_size (sack);
+ for (i=0; i<len; i++) {
+ package = pk_package_sack_get_index (sack, i);
+ g_object_get (package,
+ "info", &info,
+ "summary", &summary,
+ NULL);
+ package_id = pk_package_get_id (package);
+ printable = pk_package_id_to_printable (package_id);
+ g_print ("%s\t%s\t%s\n", pk_info_enum_to_text (info), printable, summary);
+
+ g_free (summary);
+ g_free (printable);
+ g_object_unref (package);
+ }
+
+ /* just accept without asking */
+ pk_task_user_accepted (task, request);
+
+ g_object_unref (sack);
+}
+
+/**
* pk_task_wrapper_class_init:
**/
static void
@@ -170,6 +216,7 @@ pk_task_wrapper_class_init (PkTaskWrapperClass *klass)
task_class->key_question = dkp_task_wrapper_key_question;
task_class->eula_question = dkp_task_wrapper_eula_question;
task_class->media_change_question = dkp_task_wrapper_media_change_question;
+ task_class->simulate_question = dkp_task_wrapper_simulate_question;
g_type_class_add_private (klass, sizeof (PkTaskWrapperPrivate));
}
@@ -230,14 +277,14 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
/* get the results */
results = pk_task_generic_finish (PK_TASK (task), res, &error);
if (results == NULL) {
- egg_test_failed (test, "failed to resolve: %s", error->message);
+ egg_test_failed (test, "failed to install: %s", error->message);
g_error_free (error);
return;
}
exit_enum = pk_results_get_exit_code (results);
if (exit_enum != PK_EXIT_ENUM_SUCCESS)
- egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+ egg_test_failed (test, "failed to install packages: %s", pk_exit_enum_to_text (exit_enum));
packages = pk_results_get_package_array (results);
if (packages == NULL)
@@ -249,7 +296,7 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
}
- if (packages->len != 5)
+ if (packages->len != 3)
egg_test_failed (test, "invalid number of packages: %i", packages->len);
g_ptr_array_unref (packages);
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 4f380fe..e9b0f72 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -51,6 +51,7 @@ typedef struct {
guint request;
PkRoleEnum role;
PkExitEnum exit_enum;
+ gboolean simulate;
gboolean only_trusted;
gchar **package_ids;
gboolean allow_deps;
@@ -131,7 +132,7 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
g_simple_async_result_complete_in_idle (state->res);
/* remove from list */
- egg_warning ("remove state");
+ egg_debug ("remove state %p", state);
g_ptr_array_remove (state->task->priv->array, state);
/* deallocate */
@@ -149,6 +150,9 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
static void
pk_task_do_async_action (PkTaskState *state)
{
+ /* so the callback knows if we are serious or not */
+ state->simulate = FALSE;
+
/* do the correct action */
if (state->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
/* start install async */
@@ -186,6 +190,95 @@ pk_task_do_async_action (PkTaskState *state)
}
/**
+ * pk_task_simulate_ready_cb:
+ **/
+static void
+pk_task_simulate_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
+{
+ PkTaskClass *klass = PK_TASK_GET_CLASS (state->task);
+ GError *error = NULL;
+ const PkResults *results;
+
+ /* old results no longer valid */
+ if (state->results != NULL)
+ g_object_unref (state->results);
+
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(state->task), res, &error);
+ if (results == NULL) {
+
+ /* handle case where this is not implemented */
+ if (error->code == PK_CLIENT_ERROR_NOT_SUPPORTED) {
+ pk_task_do_async_action (state);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* just abort */
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* we own a copy now */
+ state->results = g_object_ref (G_OBJECT(results));
+
+ /* get exit code */
+ state->exit_enum = pk_results_get_exit_code (state->results);
+ if (state->exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
+ "could not do simulate");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* run the callback */
+ klass->simulate_question (state->task, state->request, state->results);
+out:
+ return;
+}
+
+/**
+ * pk_task_do_async_simulate_action:
+ **/
+static void
+pk_task_do_async_simulate_action (PkTaskState *state)
+{
+ /* so the callback knows if we are serious or not */
+ state->simulate = TRUE;
+
+ /* do the correct action */
+ if (state->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
+ /* simulate install async */
+ egg_debug ("doing install");
+ pk_client_simulate_install_packages_async (PK_CLIENT(state->task), state->package_ids,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_simulate_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_UPDATE_PACKAGES) {
+ /* simulate update async */
+ egg_debug ("doing update");
+ pk_client_simulate_update_packages_async (PK_CLIENT(state->task), state->package_ids,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_simulate_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_REMOVE_PACKAGES) {
+ /* simulate remove async */
+ egg_debug ("doing remove");
+ pk_client_simulate_remove_packages_async (PK_CLIENT(state->task), state->package_ids,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_simulate_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_INSTALL_FILES) {
+ /* simulate install async */
+ egg_debug ("doing install files");
+ pk_client_simulate_install_files_async (PK_CLIENT(state->task), state->files,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_simulate_ready_cb, state);
+ } else {
+ g_assert_not_reached ();
+ }
+}
+
+/**
* pk_task_install_signatures_ready_cb:
**/
static void
@@ -202,7 +295,6 @@ pk_task_install_signatures_ready_cb (GObject *source_object, GAsyncResult *res,
/* get the results */
results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
if (results == NULL) {
- egg_warning ("failed to install signature: %s", error->message);
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
@@ -288,7 +380,6 @@ pk_task_accept_eulas_ready_cb (GObject *source_object, GAsyncResult *res, PkTask
/* get the results */
results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
if (results == NULL) {
- egg_warning ("failed to accept eula: %s", error->message);
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
@@ -413,12 +504,21 @@ pk_task_user_declined_idle_cb (PkTaskState *state)
{
GError *error;
+ /* the introduction is finished */
+ if (state->simulate) {
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "user declined simulation");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
/* doing task */
egg_debug ("declined request %i", state->request);
error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "user declined interaction");
pk_task_generic_state_finish (state, error);
g_error_free (error);
+out:
/* never repeat */
return FALSE;
}
@@ -460,7 +560,6 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
/* get the results */
results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
if (results == NULL) {
- egg_warning ("failed to resolve: %s", error->message);
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
@@ -563,6 +662,7 @@ pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable
{
GSimpleAsyncResult *res;
PkTaskState *state;
+ PkTaskClass *klass = PK_TASK_GET_CLASS (task);
g_return_if_fail (PK_IS_TASK (task));
g_return_if_fail (callback != NULL);
@@ -584,11 +684,14 @@ pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable
state->request = pk_task_generate_request_id ();
g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
- egg_warning ("adding state %p", state);
+ egg_debug ("adding state %p", state);
g_ptr_array_add (task->priv->array, state);
/* start trusted install async */
- pk_task_do_async_action (state);
+ if (klass->simulate_question != NULL)
+ pk_task_do_async_simulate_action (state);
+ else
+ pk_task_do_async_action (state);
g_object_unref (res);
}
@@ -612,6 +715,7 @@ pk_task_update_packages_async (PkTask *task, gchar **package_ids, GCancellable *
{
GSimpleAsyncResult *res;
PkTaskState *state;
+ PkTaskClass *klass = PK_TASK_GET_CLASS (task);
g_return_if_fail (PK_IS_CLIENT (task));
g_return_if_fail (callback_ready != NULL);
@@ -632,11 +736,14 @@ pk_task_update_packages_async (PkTask *task, gchar **package_ids, GCancellable *
state->request = pk_task_generate_request_id ();
g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
- egg_warning ("adding state %p", state);
+ egg_debug ("adding state %p", state);
g_ptr_array_add (task->priv->array, state);
/* start trusted install async */
- pk_task_do_async_action (state);
+ if (klass->simulate_question != NULL)
+ pk_task_do_async_simulate_action (state);
+ else
+ pk_task_do_async_action (state);
g_object_unref (res);
}
@@ -664,6 +771,7 @@ pk_task_remove_packages_async (PkTask *task, gchar **package_ids, gboolean allow
{
GSimpleAsyncResult *res;
PkTaskState *state;
+ PkTaskClass *klass = PK_TASK_GET_CLASS (task);
g_return_if_fail (PK_IS_CLIENT (task));
g_return_if_fail (callback_ready != NULL);
@@ -685,11 +793,14 @@ pk_task_remove_packages_async (PkTask *task, gchar **package_ids, gboolean allow
state->request = pk_task_generate_request_id ();
g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
- egg_warning ("adding state %p", state);
+ egg_debug ("adding state %p", state);
g_ptr_array_add (task->priv->array, state);
/* start trusted install async */
- pk_task_do_async_action (state);
+ if (klass->simulate_question != NULL)
+ pk_task_do_async_simulate_action (state);
+ else
+ pk_task_do_async_action (state);
g_object_unref (res);
}
@@ -714,6 +825,7 @@ pk_task_install_files_async (PkTask *task, gchar **files, GCancellable *cancella
{
GSimpleAsyncResult *res;
PkTaskState *state;
+ PkTaskClass *klass = PK_TASK_GET_CLASS (task);
g_return_if_fail (PK_IS_CLIENT (task));
g_return_if_fail (callback_ready != NULL);
@@ -734,11 +846,14 @@ pk_task_install_files_async (PkTask *task, gchar **files, GCancellable *cancella
state->request = pk_task_generate_request_id ();
g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
- egg_warning ("adding state %p", state);
+ egg_debug ("adding state %p", state);
g_ptr_array_add (task->priv->array, state);
/* start trusted install async */
- pk_task_do_async_action (state);
+ if (klass->simulate_question != NULL)
+ pk_task_do_async_simulate_action (state);
+ else
+ pk_task_do_async_action (state);
g_object_unref (res);
}
@@ -785,7 +900,7 @@ pk_task_update_system_async (PkTask *task, GCancellable *cancellable,
state->request = pk_task_generate_request_id ();
g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
- egg_warning ("adding state %p", state);
+ egg_debug ("adding state %p", state);
g_ptr_array_add (task->priv->array, state);
/* start trusted install async */
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index a8c5550..13ab41e 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -74,6 +74,9 @@ struct _PkTaskClass
void (*media_change_question) (PkTask *task,
guint request,
const PkResults *results);
+ void (*simulate_question) (PkTask *task,
+ guint request,
+ const PkResults *results);
/* padding for future expansion */
void (*_pk_reserved1) (void);
void (*_pk_reserved2) (void);
commit fc6713ec7f289c2c7fac8c42bf412dc6f9473e9d
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 16:29:12 2009 +0100
glib2: Add some of the glib1 sorting methods to PkPackageSack
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 2c73420..970a71a 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -268,6 +268,93 @@ pk_package_sack_find_by_id (PkPackageSack *sack, const gchar *package_id)
}
/**
+ * pk_package_sack_sort_compare_package_id_func:
+ **/
+static gint
+pk_package_sack_sort_compare_package_id_func (PkPackage **a, PkPackage **b)
+{
+ const gchar *package_id1;
+ const gchar *package_id2;
+ package_id1 = pk_package_get_id (*a);
+ package_id2 = pk_package_get_id (*b);
+ return g_strcmp0 (package_id1, package_id2);
+}
+
+/**
+ * pk_package_sack_sort_compare_summary_func:
+ **/
+static gint
+pk_package_sack_sort_compare_summary_func (PkPackage **a, PkPackage **b)
+{
+ gint retval;
+ gchar *summary1;
+ gchar *summary2;
+
+ g_object_get (*a, "summary", &summary1, NULL);
+ g_object_get (*b, "summary", &summary2, NULL);
+ retval = g_strcmp0 (summary1, summary2);
+
+ g_free (summary1);
+ g_free (summary2);
+ return retval;
+}
+
+/**
+ * pk_package_sack_sort_compare_info_func:
+ **/
+static gint
+pk_package_sack_sort_compare_info_func (PkPackage **a, PkPackage **b)
+{
+ PkInfoEnum *info1;
+ PkInfoEnum *info2;
+
+ g_object_get (*a, "info", &info1, NULL);
+ g_object_get (*b, "info", &info2, NULL);
+
+ if (info1 == info2)
+ return 0;
+ else if (info1 > info2)
+ return -1;
+ return 1;
+}
+
+/**
+ * pk_package_sack_sort_package_id:
+ *
+ * Sorts by Package ID
+ **/
+void
+pk_package_sack_sort_package_id (PkPackageSack *sack)
+{
+ g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
+ g_ptr_array_sort (sack->priv->array, (GCompareFunc) pk_package_sack_sort_compare_package_id_func);
+}
+
+/**
+ * pk_package_sack_sort_summary:
+ *
+ * Sorts by summary
+ **/
+void
+pk_package_sack_sort_summary (PkPackageSack *sack)
+{
+ g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
+ g_ptr_array_sort (sack->priv->array, (GCompareFunc) pk_package_sack_sort_compare_summary_func);
+}
+
+/**
+ * pk_package_sack_sort_info:
+ *
+ * Sorts by PkInfoEnum
+ **/
+void
+pk_package_sack_sort_info (PkPackageSack *sack)
+{
+ g_return_if_fail (PK_IS_PACKAGE_SACK (sack));
+ g_ptr_array_sort (sack->priv->array, (GCompareFunc) pk_package_sack_sort_compare_info_func);
+}
+
+/**
* pk_package_sack_get_total_bytes:
* @sack: a valid #PkPackageSack instance
*
@@ -417,7 +504,6 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
g_object_unref (package);
}
-
/* all okay */
state->ret = TRUE;
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index 9c58d0a..38325e1 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -81,6 +81,9 @@ void pk_package_sack_test (gpointer user_data);
guint pk_package_sack_get_size (PkPackageSack *sack);
PkPackage *pk_package_sack_get_index (PkPackageSack *sack,
guint i);
+void pk_package_sack_sort_package_id (PkPackageSack *sack);
+void pk_package_sack_sort_info (PkPackageSack *sack);
+void pk_package_sack_sort_summary (PkPackageSack *sack);
gboolean pk_package_sack_add_package (PkPackageSack *sack,
PkPackage *package);
gboolean pk_package_sack_add_package_by_id (PkPackageSack *sack,
commit 25a70a76fae38de9587f79f36f04a3ffcc15572f
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 16:28:40 2009 +0100
glib2: don't add Finished packages to the sack, they are uninteresting
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0cbd10f..f070c5b 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -428,7 +428,8 @@ pk_client_package_cb (DBusGProxy *proxy, const gchar *info_text, const gchar *pa
/* add to results */
info_enum = pk_info_enum_from_text (info_text);
- pk_results_add_package (state->results, info_enum, package_id, summary);
+ if (info_enum != PK_INFO_ENUM_FINISHED)
+ pk_results_add_package (state->results, info_enum, package_id, summary);
/* save progress */
g_object_set (state->progress,
commit 10b49db3536e633a46784de07598fe5a7d3f01d7
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 14:36:34 2009 +0100
glib2: store the role in the PkResults object too
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 20a769d..0cbd10f 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1064,6 +1064,10 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
/* we'll have results from now on */
state->results = pk_results_new ();
+ g_object_set (state->results,
+ "role", state->role,
+ NULL);
+
out:
g_free (filters_text);
return;
@@ -2886,7 +2890,7 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
/* save state */
state = g_slice_new0 (PkClientState);
- state->role = PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES;
+ state->role = PK_ROLE_ENUM_UNKNOWN;
state->res = g_object_ref (res);
if (cancellable != NULL) {
state->cancellable = g_object_ref (cancellable);
@@ -2926,6 +2930,9 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
/* we'll have results from now on */
state->results = pk_results_new ();
+ g_object_set (state->results,
+ "role", state->role,
+ NULL);
/* track state */
g_ptr_array_add (client->priv->calls, state);
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 2c0f382..cea84df 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -44,6 +44,7 @@ static void pk_results_finalize (GObject *object);
**/
struct _PkResultsPrivate
{
+ PkRoleEnum role;
PkExitEnum exit_enum;
GPtrArray *package_array;
GPtrArray *details_array;
@@ -61,9 +62,53 @@ struct _PkResultsPrivate
GPtrArray *message_array;
};
+enum {
+ PROP_0,
+ PROP_ROLE,
+ PROP_LAST
+};
+
G_DEFINE_TYPE (PkResults, pk_results, G_TYPE_OBJECT)
/**
+ * pk_results_get_property:
+ **/
+static void
+pk_results_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ PkResults *results = PK_RESULTS (object);
+ PkResultsPrivate *priv = results->priv;
+
+ switch (prop_id) {
+ case PROP_ROLE:
+ g_value_set_uint (value, priv->role);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
+ * pk_results_set_property:
+ **/
+static void
+pk_results_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
+{
+ PkResults *results = PK_RESULTS (object);
+ PkResultsPrivate *priv = results->priv;
+
+ switch (prop_id) {
+ case PROP_ROLE:
+ priv->role = g_value_get_uint (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+/**
* pk_result_item_package_free:
**/
static void
@@ -990,8 +1035,20 @@ pk_results_get_message_array (const PkResults *results)
static void
pk_results_class_init (PkResultsClass *klass)
{
+ GParamSpec *pspec;
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->finalize = pk_results_finalize;
+ object_class->get_property = pk_results_get_property;
+ object_class->set_property = pk_results_set_property;
+
+ /**
+ * PkResults:role:
+ */
+ pspec = g_param_spec_uint ("role", NULL, NULL,
+ 0, PK_ROLE_ENUM_UNKNOWN, PK_ROLE_ENUM_UNKNOWN,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_ROLE, pspec);
+
g_type_class_add_private (klass, sizeof (PkResultsPrivate));
}
commit 828b1d961e0e89fa775a0acf70fd71ade235bf02
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 14:29:42 2009 +0100
glib2: Add some more of the PkTask methods
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 6708f9e..4f380fe 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -53,6 +53,9 @@ typedef struct {
PkExitEnum exit_enum;
gboolean only_trusted;
gchar **package_ids;
+ gboolean allow_deps;
+ gboolean autoremove;
+ gchar **files;
GSimpleAsyncResult *res;
PkResults *results;
gboolean ret;
@@ -135,6 +138,7 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
if (state->results != NULL)
g_object_unref (state->results);
g_strfreev (state->package_ids);
+ g_strfreev (state->files);
g_object_unref (state->res);
g_slice_free (PkTaskState, state);
}
@@ -148,10 +152,34 @@ pk_task_do_async_action (PkTaskState *state)
/* do the correct action */
if (state->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
/* start install async */
- egg_debug ("doing install untrusted");
+ egg_debug ("doing install");
pk_client_install_packages_async (PK_CLIENT(state->task), state->only_trusted, state->package_ids,
state->cancellable, state->progress_callback, state->progress_user_data,
(GAsyncReadyCallback) pk_task_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_UPDATE_PACKAGES) {
+ /* start update async */
+ egg_debug ("doing update");
+ pk_client_update_packages_async (PK_CLIENT(state->task), state->only_trusted, state->package_ids,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_REMOVE_PACKAGES) {
+ /* start remove async */
+ egg_debug ("doing remove");
+ pk_client_remove_packages_async (PK_CLIENT(state->task), state->package_ids, state->allow_deps, state->autoremove,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_UPDATE_SYSTEM) {
+ /* start update async */
+ egg_debug ("doing update system");
+ pk_client_update_system_async (PK_CLIENT(state->task), state->only_trusted,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_ready_cb, state);
+ } else if (state->role == PK_ROLE_ENUM_INSTALL_FILES) {
+ /* start install async */
+ egg_debug ("doing install files");
+ pk_client_install_files_async (PK_CLIENT(state->task), state->only_trusted, state->files,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_ready_cb, state);
} else {
g_assert_not_reached ();
}
@@ -566,6 +594,207 @@ pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable
}
/**
+ * pk_task_update_packages_async:
+ * @task: a valid #PkTask instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * Update specific packages to the newest available versions.
+ **/
+void
+pk_task_update_packages_async (PkTask *task, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkTaskState *state;
+
+ g_return_if_fail (PK_IS_CLIENT (task));
+ g_return_if_fail (callback_ready != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (task), callback_ready, user_data, pk_task_update_packages_async);
+
+ /* save state */
+ state = g_slice_new0 (PkTaskState);
+ state->role = PK_ROLE_ENUM_UPDATE_PACKAGES;
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->task = task;
+ state->only_trusted = TRUE;
+ state->package_ids = g_strdupv (package_ids);
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->request = pk_task_generate_request_id ();
+ g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
+
+ egg_warning ("adding state %p", state);
+ g_ptr_array_add (task->priv->array, state);
+
+ /* start trusted install async */
+ pk_task_do_async_action (state);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_task_remove_packages_async:
+ * @task: a valid #PkTask instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @allow_deps: if other dependant packages are allowed to be removed from the computer
+ * @autoremove: if other packages installed at the same time should be tried to remove
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * Remove a package (optionally with dependancies) from the system.
+ * If %allow_deps is set to %FALSE, and other packages would have to be removed,
+ * then the transaction would fail.
+ **/
+void
+pk_task_remove_packages_async (PkTask *task, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkTaskState *state;
+
+ g_return_if_fail (PK_IS_CLIENT (task));
+ g_return_if_fail (callback_ready != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (task), callback_ready, user_data, pk_task_remove_packages_async);
+
+ /* save state */
+ state = g_slice_new0 (PkTaskState);
+ state->role = PK_ROLE_ENUM_REMOVE_PACKAGES;
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->allow_deps = allow_deps;
+ state->autoremove = autoremove;
+ state->task = task;
+ state->package_ids = g_strdupv (package_ids);
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->request = pk_task_generate_request_id ();
+ g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
+
+ egg_warning ("adding state %p", state);
+ g_ptr_array_add (task->priv->array, state);
+
+ /* start trusted install async */
+ pk_task_do_async_action (state);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_task_install_files_async:
+ * @task: a valid #PkTask instance
+ * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * Install a file locally, and get the deps from the repositories.
+ * This is useful for double clicking on a .rpm or .deb file.
+ **/
+void
+pk_task_install_files_async (PkTask *task, gchar **files, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkTaskState *state;
+
+ g_return_if_fail (PK_IS_CLIENT (task));
+ g_return_if_fail (callback_ready != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (task), callback_ready, user_data, pk_task_install_files_async);
+
+ /* save state */
+ state = g_slice_new0 (PkTaskState);
+ state->role = PK_ROLE_ENUM_INSTALL_FILES;
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->task = task;
+ state->only_trusted = TRUE;
+ state->files = g_strdupv (files);
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->request = pk_task_generate_request_id ();
+ g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
+
+ egg_warning ("adding state %p", state);
+ g_ptr_array_add (task->priv->array, state);
+
+ /* start trusted install async */
+ pk_task_do_async_action (state);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_task_update_system_async:
+ * @task: a valid #PkTask instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @callback_ready: the function to run on completion
+ * @user_data: the data to pass to @callback_ready
+ *
+ * Update all the packages on the system with the highest versions found in all
+ * repositories.
+ * NOTE: you can't choose what repositories to update from, but you can do:
+ * - pk_task_repo_disable()
+ * - pk_task_update_system()
+ * - pk_task_repo_enable()
+ **/
+void
+pk_task_update_system_async (PkTask *task, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkTaskState *state;
+
+ g_return_if_fail (PK_IS_CLIENT (task));
+ g_return_if_fail (callback_ready != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (task), callback_ready, user_data, pk_task_update_system_async);
+
+ /* save state */
+ state = g_slice_new0 (PkTaskState);
+ state->role = PK_ROLE_ENUM_UPDATE_SYSTEM;
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->task = task;
+ state->only_trusted = TRUE;
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->request = pk_task_generate_request_id ();
+ g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
+
+ egg_warning ("adding state %p", state);
+ g_ptr_array_add (task->priv->array, state);
+
+ /* start trusted install async */
+ pk_task_do_async_action (state);
+
+ g_object_unref (res);
+}
+
+/**
* pk_task_generic_finish:
* @task: a valid #PkTask instance
* @res: the #GAsyncResult
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 087c218..a8c5550 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -98,11 +98,36 @@ void pk_task_install_packages_async (PkTask *task,
gpointer progress_user_data,
GAsyncReadyCallback callback,
gpointer user_data);
-/* TODO:
- * pk_task_remove_packages_async
- * pk_task_update_packages_async
- * pk_task_update_system_async
- */
+void pk_task_update_packages_async (PkTask *task,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready,
+ gpointer user_data);
+void pk_task_remove_packages_async (PkTask *task,
+ gchar **package_ids,
+ gboolean allow_deps,
+ gboolean autoremove,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready,
+ gpointer user_data);
+void pk_task_install_files_async (PkTask *task,
+ gchar **files,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready,
+ gpointer user_data);
+void pk_task_update_system_async (PkTask *task,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback_ready,
+ gpointer user_data);
+
gboolean pk_task_user_accepted (PkTask *task,
guint request);
gboolean pk_task_user_declined (PkTask *task,
commit 67b1f2320f18f9f7123ac4f2775ba2d90a75f559
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 14:06:17 2009 +0100
trivial: fix make distcheck
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 57a2efd..087c218 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -101,6 +101,7 @@ void pk_task_install_packages_async (PkTask *task,
/* TODO:
* pk_task_remove_packages_async
* pk_task_update_packages_async
+ * pk_task_update_system_async
*/
gboolean pk_task_user_accepted (PkTask *task,
guint request);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index d9a2ebb..94a5b47 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,8 +2,11 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
client/pk-console.c
+client/pk-console-test.c
client/pk-generate-pack.c
client/pk-monitor.c
+client/pk-task-text.c
+client/pk-text.c
client/pk-tools-common.c
contrib/browser-plugin/pk-plugin-install.c
contrib/command-not-found/pk-command-not-found.c
@@ -15,5 +18,4 @@ data/packagekit-servicepack.xml.in
policy/org.freedesktop.packagekit.policy.in
src/pk-main.c
src/pk-polkit-action-lookup.c
-client/pk-text.c
commit b184f9b378a3016a625789175f6aa8cb67f8f660
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 14:06:05 2009 +0100
glib2: use PkTaskText in pkcon-test
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index f1e25d8..9f36e72 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -36,6 +36,7 @@
//#include "egg-string.h"
#include "pk-text.h"
+#include "pk-task-text.h"
#include "pk-progress-bar.h"
#define PK_EXIT_CODE_SYNTAX_INVALID 3
@@ -46,7 +47,7 @@ static PkBitfield roles;
static gboolean is_console = FALSE;
static gboolean nowait = FALSE;
static PkControlSync *control = NULL;
-static PkTask *task = NULL;
+static PkTaskText *task = NULL;
PkProgressBar *progressbar = NULL;
/**
@@ -481,103 +482,6 @@ pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
}
}
-/**
- * pk_console_repo_signature_required_cb:
- **/
-static void
-pk_console_repo_signature_required_cb (const PkResultItemRepoSignatureRequired *obj, gpointer data)
-{
-// gboolean import;
-// gboolean ret;
-// GError *error = NULL;
- gchar *package = NULL;
-
- /* create printable */
- package = pk_package_id_to_printable (obj->package_id);
-
- /* TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later */
- g_print ("%s\n", _("Repository signature required"));
- g_print ("Package: %s\n", package);
- g_print ("Name: %s\n", obj->repository_name);
- g_print ("URL: %s\n", obj->key_url);
- g_print ("User: %s\n", obj->key_userid);
- g_print ("ID: %s\n", obj->key_id);
- g_print ("Fingerprint: %s\n", obj->key_fingerprint);
- g_print ("Timestamp: %s\n", obj->key_timestamp);
-
-#if 0
- /* TRANSLATORS: This a prompt asking the user to import the security key */
- import = pk_console_get_prompt (_("Do you accept this signature?"), FALSE);
- if (!import) {
- need_requeue = FALSE;
- /* TRANSLATORS: This is where the user declined the security key */
- g_print ("%s\n", _("The signature was not accepted."));
- return;
- }
-
- /* install signature */
- egg_debug ("install signature %s", key_id);
- ret = pk_client_install_signature (client_secondary, PK_SIGTYPE_ENUM_GPG,
- key_id, package_id, &error);
- /* we succeeded, so wait for the requeue */
- if (!ret) {
- egg_warning ("failed to install signature: %s", error->message);
- g_error_free (error);
- return;
- }
-#endif
-
- g_free (package);
-}
-
-/**
- * pk_console_eula_required_cb:
- **/
-static void
-pk_console_eula_required_cb (const PkResultItemEulaRequired *obj, gpointer data)
-{
-// gboolean import;
-// gboolean ret;
-// GError *error = NULL;
- gchar *package = NULL;
-
- /* create printable */
- package = pk_package_id_to_printable (obj->package_id);
-
- /* TRANSLATORS: This a request for a EULA */
- g_print ("%s\n", _("End user license agreement required"));
- g_print ("Eula: %s\n", obj->eula_id);
- g_print ("Package: %s\n", package);
- g_print ("Vendor: %s\n", obj->vendor_name);
- g_print ("Agreement: %s\n", obj->license_agreement);
-
-#if 0
- /* TRANSLATORS: This a prompt asking the user to agree to the license */
- import = pk_console_get_prompt (_("Do you agree to this license?"), FALSE);
- if (!import) {
- need_requeue = FALSE;
- /* TRANSLATORS: This is where the user declined the license */
- g_print ("%s\n", _("The license was refused."));
- return;
- }
-
- /* accept eula */
- egg_debug ("accept eula %s", eula_id);
- ret = pk_client_accept_eula (client_secondary, eula_id, &error);
- /* we succeeded, so wait for the requeue */
- if (!ret) {
- egg_warning ("failed to accept eula: %s", error->message);
- g_error_free (error);
- return;
- }
-
- /* we accepted eula */
- need_requeue = TRUE;
-#endif
-
- g_free (package);
-}
-
#if 0
/**
* pk_console_finished_cb:
@@ -645,12 +549,6 @@ pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
return;
}
- /* have we failed to install, and the eula key is now installed */
- if (exit_enum == PK_EXIT_ENUM_EULA_REQUIRED && need_requeue) {
- egg_debug ("eula now agreed");
- return;
- }
-
/* close the loop */
g_main_loop_quit (loop);
}
@@ -1647,16 +1545,6 @@ pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
array = pk_results_get_files_array (results);
g_ptr_array_foreach (array, (GFunc) pk_console_files_cb, NULL);
g_ptr_array_unref (array);
-
- /* repo_signature_required */
- array = pk_results_get_repo_signature_required_array (results);
- g_ptr_array_foreach (array, (GFunc) pk_console_repo_signature_required_cb, NULL);
- g_ptr_array_unref (array);
-
- /* eula_required */
- array = pk_results_get_eula_required_array (results);
- g_ptr_array_foreach (array, (GFunc) pk_console_eula_required_cb, NULL);
- g_ptr_array_unref (array);
out:
g_main_loop_quit (loop);
}
@@ -1679,7 +1567,7 @@ main (int argc, char *argv[])
const gchar *details = NULL;
const gchar *parameter = NULL;
// PkBitfield groups;
-// gchar *text;
+ gchar *text;
// gboolean maybe_sync = TRUE;
PkBitfield filters = 0;
gint retval = EXIT_SUCCESS;
@@ -1718,7 +1606,11 @@ 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, NULL);
+ roles = pk_control_sync_get_roles (control, &error);
+ if (roles == 0) {
+ g_print ("Failed to startup: %s\n", error->message);
+ goto out_last;
+ }
summary = pk_console_get_summary ();
progressbar = pk_progress_bar_new ();
pk_progress_bar_set_size (progressbar, 25);
@@ -1753,7 +1645,7 @@ main (int argc, char *argv[])
G_CALLBACK (pk_connection_changed_cb), loop);
/* create transactions */
- task = pk_task_new ();
+ task = pk_task_text_new ();
/* check filter */
if (filter != NULL) {
@@ -1790,7 +1682,6 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
-// pk_progress_bar_start (progressbar, _("Searching"));
/* fire off an async request */
pk_client_search_name_async (PK_CLIENT(task), filters, details, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
@@ -2052,33 +1943,6 @@ main (int argc, char *argv[])
goto out;
}
ret = pk_console_get_files (PK_CLIENT(task), value, &error);
-
- } else if (strcmp (mode, "list-create") == 0) {
- if (value == NULL) {
- /* TRANSLATORS: The user didn't specify a filename to create as a list */
- error = g_error_new (1, 0, "%s", _("A list file name to create is required"));
- retval = PK_EXIT_CODE_SYNTAX_INVALID;
- goto out;
- }
- ret = pk_console_list_create (PK_CLIENT(task), value, &error);
-
- } else if (strcmp (mode, "list-diff") == 0) {
- if (value == NULL) {
- /* TRANSLATORS: The user didn't specify a filename to open as a list */
- error = g_error_new (1, 0, "%s", _("A list file to open is required"));
- retval = PK_EXIT_CODE_SYNTAX_INVALID;
- goto out;
- }
- ret = pk_console_list_diff (PK_CLIENT(task), value, &error);
-
- } else if (strcmp (mode, "list-install") == 0) {
- if (value == NULL) {
- /* TRANSLATORS: The user didn't specify a filename to open as a list */
- error = g_error_new (1, 0, "%s", _("A list file to open is required"));
- retval = PK_EXIT_CODE_SYNTAX_INVALID;
- goto out;
- }
- ret = pk_console_list_install (PK_CLIENT(task), value, &error);
#endif
} else if (strcmp (mode, "get-updates") == 0) {
pk_client_get_updates_async (PK_CLIENT(task), filters, NULL,
@@ -2094,23 +1958,20 @@ main (int argc, char *argv[])
pk_client_get_packages_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-actions") == 0) {
+
+ } else if (strcmp (mode, "get-roles") == 0) {
text = pk_role_bitfield_to_text (roles);
g_strdelimit (text, ";", '\n');
g_print ("%s\n", text);
g_free (text);
- /* these can never fail */
- ret = TRUE;
-
+ nowait = TRUE;
+#if 0
} else if (strcmp (mode, "get-filters") == 0) {
filters = pk_control_get_filters (control, NULL);
text = pk_filter_bitfield_to_text (filters);
g_strdelimit (text, ";", '\n');
g_print ("%s\n", text);
g_free (text);
- /* these can never fail */
- ret = TRUE;
} else if (strcmp (mode, "get-groups") == 0) {
groups = pk_control_get_groups (control, NULL);
@@ -2118,8 +1979,6 @@ main (int argc, char *argv[])
g_strdelimit (text, ";", '\n');
g_print ("%s\n", text);
g_free (text);
- /* these can never fail */
- ret = TRUE;
#endif
} else if (strcmp (mode, "get-transactions") == 0) {
pk_client_get_old_transactions_async (PK_CLIENT(task), 10, NULL,
@@ -2127,8 +1986,6 @@ main (int argc, char *argv[])
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "refresh") == 0) {
- /* special case - this takes a long time, and doesn't do packages */
-// pk_console_start_bar ("refresh-cache");
pk_client_refresh_cache_async (PK_CLIENT(task), FALSE, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
commit a322425de153f48fc47a19903dfed6a01e08d04f
Merge: 4c53217... 5af2e88...
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 13:47:41 2009 +0100
Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit
commit 4c53217ce0830151c24e3675ae768a7135b1a3a0
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 13:42:18 2009 +0100
yum: Don't check for unfinished transactions when the cache is lazy loaded
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 05a9bbb..9cfe4d2 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1412,7 +1412,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
Implement the update-system functionality
'''
try:
- self._check_init(lazy_cache=True)
+ self._check_init()
except PkError, e:
self.error(e.code, e.details, exit=False)
return
@@ -2650,7 +2650,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
# should we suggest yum-complete-transaction?
unfinished = yum.misc.find_unfinished_transactions(yumlibpath=self.yumbase.conf.persistdir)
- if unfinished:
+ if unfinished and not lazy_cache:
raise PkError(ERROR_FAILED_INITIALIZATION, 'There are unfinished transactions remaining. Please run yum-complete-transaction as root.')
# default to 100% unless method overrides
commit 5f9c952bf326d2360ac8858f2742d176d7e605e3
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 13:40:29 2009 +0100
yum: Check for initialisation failures in more cases
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 38414c3..05a9bbb 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -352,7 +352,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def set_locale(self, code):
'''
- Implement the {backend}-set-locale functionality
+ Implement the set-locale functionality
Needed to be implemented in a sub class
'''
self.lang = code
@@ -404,9 +404,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def search_name(self, filters, key):
'''
- Implement the {backend}-search-name functionality
+ Implement the search-name functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
@@ -423,9 +427,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(e.code, e.details, exit=False)
def search_details(self, filters, key):
'''
- Implement the {backend}-search-details functionality
+ Implement the search-details functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
try:
self.yumbase.doConfigSetup(errorlevel=0, debuglevel=0)# Setup Yum Config
except Exception, e:
@@ -543,9 +551,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def search_group(self, filters, group_key):
'''
- Implement the {backend}-search-group functionality
+ Implement the search-group functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.allow_cancel(True)
try:
self.yumbase.doConfigSetup(errorlevel=0, debuglevel=0)# Setup Yum Config
@@ -655,9 +667,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def search_file(self, filters, key):
'''
- Implement the {backend}-search-file functionality
+ Implement the search-file functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
@@ -720,9 +736,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def what_provides(self, filters, provides_type, search):
'''
- Implement the {backend}-what-provides functionality
+ Implement the what-provides functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
@@ -764,7 +784,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def get_categories(self):
'''
- Implement the {backend}-get-categories functionality
+ Implement the get-categories functionality
'''
self.status(STATUS_QUERY)
self.allow_cancel(True)
@@ -796,7 +816,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def _get_groups(self, cat_id):
'''
- Implement the {backend}-get-collections functionality
+ Implement the get-collections functionality
'''
self.status(STATUS_QUERY)
self.allow_cancel(True)
@@ -830,7 +850,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def download_packages(self, directory, package_ids):
'''
- Implement the {backend}-download-packages functionality
+ Implement the download-packages functionality
'''
try:
self._check_init()
@@ -995,7 +1015,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
'''
Print a list of requires for a given package
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
@@ -1307,7 +1331,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
'''
Print a list of depends for a given package
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
@@ -1381,9 +1409,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def update_system(self, only_trusted):
'''
- Implement the {backend}-update-system functionality
+ Implement the update-system functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(0)
@@ -1423,7 +1455,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def refresh_cache(self, force):
'''
- Implement the {backend}-refresh_cache functionality
+ Implement the refresh_cache functionality
'''
# TODO: use force ?
self.allow_cancel(True)
@@ -1483,9 +1515,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def resolve(self, filters, packages):
'''
- Implement the {backend}-resolve functionality
+ Implement the resolve functionality
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.allow_cancel(True)
self.percentage(None)
try:
@@ -1531,7 +1567,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def install_packages(self, only_trusted, package_ids):
'''
- Implement the {backend}-install-packages functionality
+ Implement the install-packages functionality
This will only work with yum 3.2.4 or higher
'''
try:
@@ -1608,7 +1644,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def install_files(self, only_trusted, inst_files):
'''
- Implement the {backend}-install-files functionality
+ Implement the install-files functionality
Install the package containing the inst_file file
Needed to be implemented in a sub class
'''
@@ -1835,7 +1871,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def update_packages(self, only_trusted, package_ids):
'''
- Implement the {backend}-install functionality
+ Implement the install functionality
This will only work with yum 3.2.4 or higher
'''
try:
@@ -1982,7 +2018,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def remove_packages(self, allowdep, autoremove, package_ids):
'''
- Implement the {backend}-remove functionality
+ Implement the remove functionality
Needed to be implemented in a sub class
'''
# TODO: use autoremove
@@ -2040,7 +2076,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
'''
Print a detailed details for a given package
'''
- self._check_init(lazy_cache=True)
+ try:
+ self._check_init(lazy_cache=True)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
@@ -2124,7 +2164,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def get_distro_upgrades(self):
'''
- Implement the {backend}-get-distro-upgrades functionality
+ Implement the get-distro-upgrades functionality
'''
try:
self._check_init()
@@ -2188,7 +2228,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def get_updates(self, filters):
'''
- Implement the {backend}-get-updates functionality
+ Implement the get-updates functionality
@param filters: package types to show
'''
try:
@@ -2248,7 +2288,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def repo_enable(self, repoid, enable):
'''
- Implement the {backend}-repo-enable functionality
+ Implement the repo-enable functionality
'''
try:
self._check_init()
@@ -2282,7 +2322,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def get_repo_list(self, filters):
'''
- Implement the {backend}-get-repo-list functionality
+ Implement the get-repo-list functionality
'''
self._check_init(repo_setup=False)
self.yumbase.conf.cache = 0 # Allow new files
@@ -2385,7 +2425,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def get_update_detail(self, package_ids):
'''
- Implement the {backend}-get-update_detail functionality
+ Implement the get-update_detail functionality
'''
try:
self._check_init()
@@ -2456,7 +2496,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def repo_set_data(self, repoid, parameter, value):
'''
- Implement the {backend}-repo-set-data functionality
+ Implement the repo-set-data functionality
'''
try:
self._check_init()
@@ -2534,7 +2574,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.percentage(100)
def install_signature(self, sigtype, key_id, package):
- self._check_init(repo_setup=False)
+ try:
+ self._check_init(repo_setup=False)
+ except PkError, e:
+ self.error(e.code, e.details, exit=False)
+ return
self.yumbase.conf.cache = 0 # Allow new files
self.allow_cancel(True)
self.percentage(None)
commit 5af2e889e045194a47b3fbbfe5f4f26b17fac485
Author: beckerde <beckerde at fedoraproject.org>
Date: Thu Sep 3 12:26:48 2009 +0000
Sending translation for Spanish
diff --git a/po/es.po b/po/es.po
index 3bf9a1b..fac8600 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-26 14:37+0000\n"
-"PO-Revision-Date: 2009-08-26 12:47-0300\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"
"Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -20,152 +20,149 @@ 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
msgid "Transaction"
msgstr "Transacción"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240
msgid "System time"
msgstr "Hora del sistema"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242
msgid "Succeeded"
msgstr "Existosa"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239
-#: ../client/pk-console.c:468
+#: ../client/pk-console.c:242
msgid "True"
msgstr "Verdadero"
-#: ../client/pk-console.c:239
-#: ../client/pk-console.c:468
+#: ../client/pk-console.c:242
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
+#: ../client/pk-console.c:244
#: ../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
msgid "Duration"
msgstr "Duración"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
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
+#: ../client/pk-console.c:253
#: ../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:252
+#: ../client/pk-console.c:255
msgid "User ID"
msgstr "ID del usuario"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262
msgid "Username"
msgstr "Nombre de usuario"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266
msgid "Real name"
msgstr "Nombre real"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274
msgid "Affected packages:"
msgstr "Paquete afectados:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276
msgid "Affected packages: None"
msgstr "Paquetes afectados: Ninguno"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337
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:337
+#: ../client/pk-console.c:340
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:340
+#: ../client/pk-console.c:343
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:343
+#: ../client/pk-console.c:346
msgid "The following packages have to be reinstalled:"
msgstr "Los siguientes paquetes se deben reinstalar:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:349
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:360
+#: ../client/pk-console.c:363
msgid "Distribution"
msgstr "Distribución"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:365
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:364
-#: ../client/pk-console.c:387
+#: ../client/pk-console.c:367
+#: ../client/pk-console.c:390
msgid "Summary"
msgstr "Resúmen"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:379
msgid "Category"
msgstr "CategorÃa"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:381
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:384
msgid "Parent"
msgstr "Padre"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:387
msgid "Name"
msgstr "Nombre"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:393
msgid "Icon"
msgstr "Icono"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:408
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:407
+#: ../client/pk-console.c:410
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
@@ -173,691 +170,701 @@ msgstr[0] "Paquete"
msgstr[1] "Paquetes"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:413
msgid "Updates"
msgstr "Actualizaciones"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:417
msgid "Obsoletes"
msgstr "Sustituye"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:421
msgid "Vendor"
msgstr "Fabricante"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:425
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:429
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
msgid "Restart"
msgstr "Reiniciar"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:437
msgid "Update text"
msgstr "Texto de actualización"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:441
msgid "Changes"
msgstr "Cambios"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:445
msgid "State"
msgstr "Estado"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:450
msgid "Issued"
msgstr "Emitido"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:455
msgid "Updated"
msgstr "Actualizado"
-#: ../client/pk-console.c:539
-#: ../client/pk-console.c:541
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475
+msgid "Enabled"
+msgstr "Habilitado"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478
+msgid "Disabled"
+msgstr "Deshabilitado"
+
+#: ../client/pk-console.c:555
+#: ../client/pk-console.c:557
msgid "Percentage"
msgstr "Porcentaje"
-#: ../client/pk-console.c:541
+#: ../client/pk-console.c:557
msgid "Unknown"
msgstr "Desconocido"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:599
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:586
+#: ../client/pk-console.c:602
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:589
+#: ../client/pk-console.c:605
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:592
+#: ../client/pk-console.c:608
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:595
+#: ../client/pk-console.c:611
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:650
+#: ../client/pk-console.c:666
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:653
+#: ../client/pk-console.c:669
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:656
+#: ../client/pk-console.c:672
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:659
+#: ../client/pk-console.c:675
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:662
+#: ../client/pk-console.c:678
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:794
+#: ../client/pk-console.c:810
#, 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:802
+#: ../client/pk-console.c:818
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "No se pudo instalar el paquete %s: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c: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 "Error interno: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:860
-#: ../client/pk-console.c:932
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:948
+#: ../client/pk-console.c:1266
msgid "Proceed with changes?"
msgstr "¿Proceder con los cambios?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:865
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:881
+#: ../client/pk-console.c:953
msgid "The package install was canceled!"
msgstr "¡Se canceló la instalación del paquete!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c: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 "Esta herramienta no pudo instalar los paquetes: %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 "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:1012
+#: ../client/pk-console.c:1028
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "Esta herramienta no pudo eliminar %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c: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 "Esta herramienta no pudo eliminar los paquetes: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1104
msgid "Proceed with additional packages?"
msgstr "¿Proceder con los paquetes adicionales?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1109
msgid "The package removal was canceled!"
msgstr "Se canceló la eliminación de paquetes"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1134
+#: ../client/pk-console.c:1150
#, 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:1165
+#: ../client/pk-console.c:1181
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "Esta herramienta no pudo descargar los paquetes: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c: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 "Esta herramienta no pudo actualizar %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 "¡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: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 "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: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 "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: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 "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:1378
+#: ../client/pk-console.c:1394
#, 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:1386
+#: ../client/pk-console.c:1402
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1408
+#: ../client/pk-console.c:1424
#, c-format
msgid "File already exists: %s"
msgstr "El archivo ya existe: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c: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 "Obteniendo la lista de paquetes"
#. 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 "Esta herramienta no pudo obtener la lista de paquetes: %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 "Falló al guardar en el disco"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1464
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1480
+#: ../client/pk-console.c:1555
#, c-format
msgid "File does not exist: %s"
msgstr "El archivo no existe: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1496
+#: ../client/pk-console.c:1512
msgid "Packages to add"
msgstr "Paquetes para añadir"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1504
+#: ../client/pk-console.c:1520
msgid "Packages to remove"
msgstr "Paquetes para eliminar"
#. 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 "No hay paquetes nuevos para instalar"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1578
+#: ../client/pk-console.c:1594
msgid "To install"
msgstr "Para instalar"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1590
+#: ../client/pk-console.c:1606
msgid "Searching for package: "
msgstr "Buscando el paquete: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1610
msgid "not found."
msgstr "no encontrado."
#. 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 "No se encontró ningún paquete para instalar"
#. TRANSLATORS: installing new packages from package list
#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c: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 "Instalando paquetes"
#. 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 "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:1655
+#: ../client/pk-console.c:1671
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1702
msgid "Error:"
msgstr "Error:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1700
+#: ../client/pk-console.c:1716
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:1716
+#: ../client/pk-console.c:1732
msgid "Message:"
msgstr "Mensaje:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1744
+#: ../client/pk-console.c:1760
msgid "Package files"
msgstr "Archivos del paquete"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1768
msgid "No files"
msgstr "No hay archivos"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1775
+#: ../client/pk-console.c:1791
msgid "Repository signature required"
msgstr "Se requiere la firma del repositorio"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1785
+#: ../client/pk-console.c:1801
msgid "Do you accept this signature?"
msgstr "¿Acepta esta firma?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1805
msgid "The signature was not accepted."
msgstr "No se aceptó la firma."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1823
+#: ../client/pk-console.c:1839
msgid "End user license agreement required"
msgstr "Se requiere un acuerdo de licencia de usuario final"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1830
+#: ../client/pk-console.c:1846
msgid "Do you agree to this license?"
msgstr "¿Está de acuerdo con esta licencia?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1834
+#: ../client/pk-console.c:1850
msgid "The license was refused."
msgstr "Se rechazó la licencia."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1863
+#: ../client/pk-console.c:1879
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:1916
+#: ../client/pk-console.c:1932
msgid "PackageKit Console Interface"
msgstr "Interfaz de consola de PackageKit"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1918
+#: ../client/pk-console.c:1934
msgid "Subcommands:"
msgstr "Subcomandos:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2011
-#: ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2027
+#: ../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 "Mostrar información extra de depuración"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2030
#: ../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:2017
+#: ../client/pk-console.c:2033
msgid "Set the filter, e.g. installed"
msgstr "Establecer el filtro, ej. instalado"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2036
msgid "Exit without waiting for actions to complete"
msgstr "Salir sin esperar que las acciones se completen"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2047
+#: ../client/pk-console.c:2063
msgid "This tool could not connect to system DBUS."
msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2137
+#: ../client/pk-console.c:2153
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:2156
+#: ../client/pk-console.c:2172
msgid "A search type is required, e.g. name"
msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c: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
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:2197
+#: ../client/pk-console.c:2213
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:2203
+#: ../client/pk-console.c:2219
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:2212
+#: ../client/pk-console.c:2228
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:2221
+#: ../client/pk-console.c:2237
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:2229
+#: ../client/pk-console.c:2245
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:2236
+#: ../client/pk-console.c:2252
msgid "Directory not found"
msgstr "Directorio no encontrado"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2244
+#: ../client/pk-console.c:2260
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:2254
+#: ../client/pk-console.c:2270
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:2271
+#: ../client/pk-console.c:2287
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:2280
-#: ../client/pk-console.c:2289
+#: ../client/pk-console.c:2296
+#: ../client/pk-console.c:2305
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:2298
+#: ../client/pk-console.c:2314
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:2312
+#: ../client/pk-console.c:2328
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:2319
+#: ../client/pk-console.c:2335
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:2326
+#: ../client/pk-console.c:2342
msgid "Failed to get the time since this action was last completed"
msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c: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-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:2366
+#: ../client/pk-console.c:2382
msgid "A package provide string is required"
msgstr "Se necesita la cadena de lo que proporciona el paquete"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2393
+#: ../client/pk-console.c:2409
msgid "A list file name to create is required"
msgstr "Se necesita un nombre de archivo de la lista"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c: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 "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:2467
+#: ../client/pk-console.c:2483
#, c-format
msgid "Option '%s' is not supported"
msgstr "La opción «%s» no está soportada"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2496
msgid "Incorrect privileges for this operation"
msgstr "Privilegios incorrectos para esta operación"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2483
+#: ../client/pk-console.c:2499
msgid "Command failed"
msgstr "Falló el comando"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
msgid "Downloading"
msgstr "Descargando"
#. 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 "Descargando paquetes"
#. 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 "Descargando dependencias"
#. 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 "Establezca el nombre del archivo de dependencias para excluir"
#. 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 directorio o archivo de salida (se usará si se omite el directorio actual)"
#. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack.c:196
msgid "The package to be put into the service pack"
msgstr "El paquete será puesto en el paquete de servicio"
#. 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 "Poner todas las actualizaciones disponibles en el paquete de servicio"
#. 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 "No se seleccionó ni la opción --package o --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 "Se seleccionaron ambas opciones."
#. 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 "Se necesita un directorio o nombre de archivo de salida"
#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
#. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:269
+#: ../client/pk-generate-pack.c:275
msgid "The package manager cannot perform this type of operation."
msgstr "El gestor de paquetes no puede realizar este tipo de operación."
#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack.c:282
msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
msgstr "No se pueden crear paquetes de servicio ya que PackageKit no se construyó con soporte para libarchive."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
msgid "If specifying a file, the service pack name must end with"
msgstr "Si especifica un archivo, el nombre del paquete de servicio debe finalizar con"
#. 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 "Ya existe un paquete con ese nombre, ¿desea sobreescribirlo?"
#. 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 se sobreescribió el paquete."
#. 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 "Falló al crear el directorio:"
#. 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 "Falló al abrir la lista de paquetes."
#. 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 "Buscando el nombre de paquete."
#. 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 "Falló al buscar el paquete «%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 "Creando el paquete de servicio..."
#. 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 "Paquete de servicio «%s» creado"
#. 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 "Falló al crear «%s»: %s"
@@ -872,26 +879,21 @@ msgid "Cannot show the list of transactions"
msgstr "No es posible mostrar la lista de transacciones"
#. 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 "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:130
+#: ../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:137
+#: ../client/pk-tools-common.c:138
msgid "Please choose the correct package: "
msgstr "Elija el paquete correcto: "
-#: ../client/pk-tools-common.c:162
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "Introduzca un número de 1 a %i: "
-
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -1047,174 +1049,174 @@ msgid "Failed to find the package %s, or already installed: %s"
msgstr "No se ha podido encontrar el paquete %s, o tal vez ya se encuentre instalado: %s"
#. 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 se instala ningún paquete realmente, solo se indica cuáles serÃan instalados"
#. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
msgid "Do not install dependencies of the core packages"
msgstr "No se instalan dependencias de los paquetes principales"
#. 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 "No se muestra información ni progreso"
#. 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 depuración de errores de PackageKit"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
#, c-format
msgid "ERROR: Specify package names to install."
msgstr "ERROR: Debe especificar los nombres de los paquetes a 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 "Obteniendo lista desde las fuentes"
#. 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 "Se han encontrado %i fuentes activas y %i fuentes deshabilitadas."
#. 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 "Buscando fuentes para depuración"
#. 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 "Se han encontrado %i repositorios deshabilitados para depuración."
#. 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 "Habilitando fuentes para depuració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 "FALLO."
#. 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 "Se han habilitado %i fuentes para depuració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 "Buscando paquetes de depuración."
#. 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 "Falló al buscar el paquete %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 "Fallo al buscar el paquete de depuración %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 "No se han encontrado paquetes 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 "Se han encontrado %i paquetes:"
#. 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 "Buscando paquetes que dependan de esos paquetes."
#. 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 "No se han podido encontrar paquetes dependientes: %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 "Se han encontrado %i paquetes 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 "No son necesarios paquetes 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 "Se han encontrado %i paquetes 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 se instalan paquetes en modo de simulación"
#. 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 "No se han podido instalar paquetes: %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 "Deshabilitando fuentes previamente habilitadas"
#. 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 "No es posible deshabilitar las fuentes para depuración:%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 "Se han deshabilitado %i fuentes para la depuración. "
@@ -1589,6 +1591,11 @@ 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 266f02a217f3537d1d3dadb623097f00b1f9cb5f
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 13:23:02 2009 +0100
glib2: add a PkTaskText implementation for the text tools to use
diff --git a/client/Makefile.am b/client/Makefile.am
index cbbad92..d8cb840 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -67,12 +67,16 @@ PK_GLIB2_LIBS = \
noinst_PROGRAMS = pkcon-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 \
pk-text.c \
pk-text.h \
pk-progress-bar.c \
@@ -163,8 +167,11 @@ pk_self_test_SOURCES = \
egg-string.h \
egg-test.c \
egg-test.h \
+ pk-text.c \
+ pk-text.h \
+ pk-task-text.c \
+ pk-task-text.h \
pk-self-test.c \
- $(shared_SOURCES) \
$(NULL)
pk_self_test_LDADD = \
@@ -172,7 +179,7 @@ pk_self_test_LDADD = \
$(DBUS_LIBS) \
$(SELFTEST_LIBS) \
$(ARCHIVE_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(NULL)
pk_self_test_CFLAGS = -DEGG_TEST $(AM_CFLAGS)
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index a80e5b4..f1e25d8 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -85,29 +85,6 @@ pk_strpad (const gchar *data, guint length)
}
/**
- * pk_package_id_get_printable:
- **/
-static gchar *
-pk_package_id_get_printable (const gchar *package_id)
-{
- gchar **split = NULL;
- gchar *value = NULL;
-
- /* invalid */
- if (package_id == NULL)
- goto out;
-
- /* split */
- split = g_strsplit (package_id, ";", -1);
- if (g_strv_length (split) != 4)
- goto out;
- value = g_strdup_printf ("%s-%s.%s", split[0], split[1], split[2]);
-out:
- g_strfreev (split);
- return value;
-}
-
-/**
* pk_console_package_cb:
**/
static void
@@ -131,7 +108,7 @@ pk_console_package_cb (const PkResultItemPackage *obj, gpointer data)
info_pad = pk_strpad (pk_info_enum_to_text (obj->info_enum), 12);
/* create printable */
- package = pk_package_id_get_printable (obj->package_id);
+ package = pk_package_id_to_printable (obj->package_id);
/* don't pretty print */
if (!is_console) {
@@ -208,7 +185,7 @@ pk_console_transaction_cb (const PkResultItemTransaction *obj, gpointer user_dat
parts = g_strsplit (lines[i], "\t", 3);
/* create printable */
- package = pk_package_id_get_printable (parts[1]);
+ package = pk_package_id_to_printable (parts[1]);
g_print (" - %s %s", parts[0], package);
g_free (package);
g_strfreev (parts);
@@ -332,7 +309,7 @@ pk_console_update_detail_cb (const PkResultItemUpdateDetail *detail, gpointer da
g_print ("%s\n", _("Details about the update:"));
/* create printable */
- package = pk_package_id_get_printable (detail->package_id);
+ package = pk_package_id_to_printable (detail->package_id);
/* TRANSLATORS: details about the update, package name and version */
g_print (" %s: %s\n", _("Package"), package);
@@ -419,7 +396,7 @@ pk_console_require_restart_cb (const PkResultItemRequireRestart *obj, gpointer d
gchar *package = NULL;
/* create printable */
- package = pk_package_id_get_printable (obj->package_id);
+ package = pk_package_id_to_printable (obj->package_id);
if (obj->restart == PK_RESTART_ENUM_SYSTEM) {
/* TRANSLATORS: a package requires the system to be restarted */
@@ -449,7 +426,7 @@ pk_console_details_cb (const PkResultItemDetails *obj, gpointer data)
gchar *package = NULL;
/* create printable */
- package = pk_package_id_get_printable (obj->package_id);
+ package = pk_package_id_to_printable (obj->package_id);
/* TRANSLATORS: This a list of details about the package */
g_print ("%s\n", _("Package description"));
@@ -516,7 +493,7 @@ pk_console_repo_signature_required_cb (const PkResultItemRepoSignatureRequired *
gchar *package = NULL;
/* create printable */
- package = pk_package_id_get_printable (obj->package_id);
+ package = pk_package_id_to_printable (obj->package_id);
/* TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later */
g_print ("%s\n", _("Repository signature required"));
@@ -565,7 +542,7 @@ pk_console_eula_required_cb (const PkResultItemEulaRequired *obj, gpointer data)
gchar *package = NULL;
/* create printable */
- package = pk_package_id_get_printable (obj->package_id);
+ package = pk_package_id_to_printable (obj->package_id);
/* TRANSLATORS: This a request for a EULA */
g_print ("%s\n", _("End user license agreement required"));
@@ -1562,7 +1539,7 @@ pk_console_progress_cb (PkProgress *progress, PkProgressType type, gpointer data
g_object_get (progress,
"package-id", &package_id,
NULL);
- text = pk_package_id_get_printable (package_id);
+ text = pk_package_id_to_printable (package_id);
pk_progress_bar_start (progressbar, text);
g_free (package_id);
g_free (text);
diff --git a/client/pk-self-test.c b/client/pk-self-test.c
index eba7cc5..9c5032a 100644
--- a/client/pk-self-test.c
+++ b/client/pk-self-test.c
@@ -27,6 +27,8 @@
#include "egg-test.h"
#include "egg-debug.h"
+#include "pk-task-text.h"
+
/* prototypes */
void pk_genpack_test (EggTest *test);
@@ -41,6 +43,7 @@ main (int argc, char **argv)
/* tests go here */
//pk_genpack_test (test);
+ pk_task_text_test (test);
return (egg_test_finish (test));
}
diff --git a/client/pk-task-text.c b/client/pk-task-text.c
new file mode 100644
index 0000000..511d252
--- /dev/null
+++ b/client/pk-task-text.c
@@ -0,0 +1,349 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <glib/gi18n.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+#include "pk-task-text.h"
+#include "pk-text.h"
+
+static void pk_task_text_finalize (GObject *object);
+
+#define PK_TASK_TEXT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_TASK_TEXT, PkTaskTextPrivate))
+
+/**
+ * PkTaskTextPrivate:
+ *
+ * Private #PkTaskText data
+ **/
+struct _PkTaskTextPrivate
+{
+ gpointer user_data;
+};
+
+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)
+{
+ gboolean ret;
+ PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* ask the user */
+ ret = pk_console_get_prompt (_("Do you want to allow installing of unsigned software?"), FALSE);
+ if (ret) {
+ pk_task_user_accepted (task, request);
+ } else {
+ g_print ("%s\n", _("The unsigned software will not be installed."));
+ pk_task_user_declined (task, request);
+ }
+}
+
+/**
+ * pk_task_text_key_question:
+ **/
+static void
+dkp_task_text_key_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ gboolean ret;
+ GPtrArray *array;
+ gchar *package = NULL;
+ PkResultItemRepoSignatureRequired *item;
+ PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ array = pk_results_get_repo_signature_required_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+
+ /* create printable */
+ package = pk_package_id_to_printable (item->package_id);
+
+ g_print ("%s\n", _("Software source signature required"));
+ g_print (" %s: %s\n", _("Package"), package);
+ g_print (" %s: %s\n", _("Software source name"), item->repository_name);
+ g_print (" %s: %s\n", _("Key URL"), item->key_url);
+ g_print (" %s: %s\n", _("Key user"), item->key_userid);
+ g_print (" %s: %s\n", _("Key ID"), item->key_id);
+ g_print (" %s: %s\n", _("Key fingerprint"), item->key_fingerprint);
+ g_print (" %s: %s\n", _("Key Timestamp"), item->key_timestamp);
+
+ g_free (package);
+ }
+
+ /* ask the user */
+ ret = pk_console_get_prompt (_("Do you accept this signature?"), FALSE);
+ if (ret) {
+ pk_task_user_accepted (task, request);
+ } else {
+ g_print ("%s\n", _("The signature was not accepted."));
+ pk_task_user_declined (task, request);
+ }
+
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_text_eula_question:
+ **/
+static void
+dkp_task_text_eula_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ gboolean ret;
+ gchar *package = NULL;
+ GPtrArray *array;
+ PkResultItemEulaRequired *item;
+ PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ array = pk_results_get_eula_required_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+
+ /* create printable */
+ package = pk_package_id_to_printable (item->package_id);
+
+ g_print ("%s\n", _("End user licence agreement required"));
+ g_print (" %s: %s\n", _("EULA ID"), item->eula_id);
+ g_print (" %s: %s\n", _("Package"), package);
+ g_print (" %s: %s\n", _("Vendor"), item->vendor_name);
+ g_print (" %s: %s\n", _("Agreement"), item->license_agreement);
+
+ g_free (package);
+ }
+
+ /* ask the user */
+ ret = pk_console_get_prompt (_("Do you accept this agreement?"), FALSE);
+ if (ret) {
+ pk_task_user_accepted (task, request);
+ } else {
+ g_print ("%s\n", _("The agreement was not accepted."));
+ pk_task_user_declined (task, request);
+ }
+
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_text_media_change_question:
+ **/
+static void
+dkp_task_text_media_change_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ gboolean ret;
+ GPtrArray *array;
+ PkResultItemMediaChangeRequired *item;
+ PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ array = pk_results_get_media_change_required_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ g_print ("%s\n", _("Media change required"));
+ g_print (" %s: %s\n", _("Media type"), pk_media_type_enum_to_text (item->media_type));
+ g_print (" %s: %s\n", _("Media ID"), item->media_id);
+ g_print (" %s: %s\n", _("Text"), item->media_text);
+ }
+
+ /* ask the user */
+ ret = pk_console_get_prompt (_("Please insert the correct media"), FALSE);
+ if (ret) {
+ pk_task_user_accepted (task, request);
+ } else {
+ g_print ("%s\n", _("The correct media was not inserted."));
+ pk_task_user_declined (task, request);
+ }
+
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_text_class_init:
+ **/
+static void
+pk_task_text_class_init (PkTaskTextClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ PkTaskClass *task_class = PK_TASK_CLASS (klass);
+
+ object_class->finalize = pk_task_text_finalize;
+ task_class->untrusted_question = dkp_task_text_untrusted_question;
+ task_class->key_question = dkp_task_text_key_question;
+ task_class->eula_question = dkp_task_text_eula_question;
+ task_class->media_change_question = dkp_task_text_media_change_question;
+
+ g_type_class_add_private (klass, sizeof (PkTaskTextPrivate));
+}
+
+/**
+ * pk_task_text_init:
+ * @task_text: This class instance
+ **/
+static void
+pk_task_text_init (PkTaskText *task)
+{
+ task->priv = PK_TASK_TEXT_GET_PRIVATE (task);
+ task->priv->user_data = NULL;
+}
+
+/**
+ * pk_task_text_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_task_text_finalize (GObject *object)
+{
+ PkTaskText *task = PK_TASK_TEXT (object);
+ task->priv->user_data = NULL;
+ G_OBJECT_CLASS (pk_task_text_parent_class)->finalize (object);
+}
+
+/**
+ * pk_task_text_new:
+ *
+ * Return value: a new PkTaskText object.
+ **/
+PkTaskText *
+pk_task_text_new (void)
+{
+ PkTaskText *task;
+ task = g_object_new (PK_TYPE_TASK_TEXT, NULL);
+ return PK_TASK_TEXT (task);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static void
+pk_task_text_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+ PkTaskText *task = PK_TASK_TEXT (object);
+ GError *error = NULL;
+ const PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ GPtrArray *packages;
+ const PkResultItemPackage *item;
+ guint i;
+
+ /* get the results */
+ results = pk_task_generic_finish (PK_TASK (task), res, &error);
+ if (results == NULL) {
+ egg_test_failed (test, "failed to resolve: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+ egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+
+ packages = pk_results_get_package_array (results);
+ if (packages == NULL)
+ egg_test_failed (test, "no packages!");
+
+ /* list, just for shits and giggles */
+ for (i=0; i<packages->len; i++) {
+ item = g_ptr_array_index (packages, i);
+ egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+ }
+
+ if (packages->len != 5)
+ egg_test_failed (test, "invalid number of packages: %i", packages->len);
+
+ g_ptr_array_unref (packages);
+
+ egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+ egg_test_loop_quit (test);
+}
+
+static void
+pk_task_text_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *test)
+{
+ PkStatusEnum status;
+ if (type == PK_PROGRESS_TYPE_STATUS) {
+ g_object_get (progress,
+ "status", &status,
+ NULL);
+ egg_debug ("now %s", pk_status_enum_to_text (status));
+ }
+}
+
+void
+pk_task_text_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ PkTaskText *task;
+ gchar **package_ids;
+
+ if (!egg_test_start (test, "PkTaskText"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get task_text");
+ task = pk_task_text_new ();
+ egg_test_assert (test, task != NULL);
+
+ /* For testing, you will need to manually do:
+ pkcon repo-set-data dummy use-gpg 1
+ pkcon repo-set-data dummy use-eula 1
+ pkcon repo-set-data dummy use-media 1
+ */
+
+ /************************************************************/
+ egg_test_title (test, "install package");
+ package_ids = g_strsplit ("vips-doc;7.12.4-2.fc8;noarch;linva", ",", -1);
+ pk_task_install_packages_async (PK_TASK (task), package_ids, NULL,
+ (PkProgressCallback) pk_task_text_test_progress_cb, test,
+ (GAsyncReadyCallback) pk_task_text_test_install_packages_cb, test);
+ g_strfreev (package_ids);
+ egg_test_loop_wait (test, 150000);
+ egg_test_success (test, "installed in %i", egg_test_elapsed (test));
+
+ g_object_unref (task);
+ egg_test_end (test);
+}
+#endif
+
diff --git a/client/pk-task-text.h b/client/pk-task-text.h
new file mode 100644
index 0000000..3ec72c2
--- /dev/null
+++ b/client/pk-task-text.h
@@ -0,0 +1,60 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask_text: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PK_TASK_TEXT_H
+#define __PK_TASK_TEXT_H
+
+#include <glib-object.h>
+#include <packagekit-glib2/packagekit.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_TASK_TEXT (pk_task_text_get_type ())
+#define PK_TASK_TEXT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_TASK_TEXT, PkTaskText))
+#define PK_TASK_TEXT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_TASK_TEXT, PkTaskTextClass))
+#define PK_IS_TASK_TEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_TASK_TEXT))
+#define PK_IS_TASK_TEXT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_TASK_TEXT))
+#define PK_TASK_TEXT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_TASK_TEXT, PkTaskTextClass))
+
+typedef struct _PkTaskTextPrivate PkTaskTextPrivate;
+typedef struct _PkTaskText PkTaskText;
+typedef struct _PkTaskTextClass PkTaskTextClass;
+
+struct _PkTaskText
+{
+ PkTask parent;
+ PkTaskTextPrivate *priv;
+};
+
+struct _PkTaskTextClass
+{
+ PkTaskClass parent_class;
+};
+
+GQuark pk_task_text_error_quark (void);
+GType pk_task_text_get_type (void);
+PkTaskText *pk_task_text_new (void);
+void pk_task_text_test (gpointer user_data);
+
+G_END_DECLS
+
+#endif /* __PK_TASK_TEXT_H */
+
commit 59041064e8f878b4f4e43c66ec3dfcaf82d131c2
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 13:19:15 2009 +0100
bugfix: detect the new libnm-glib name as well as the old libnm_glib
diff --git a/configure.ac b/configure.ac
index 1b2e180..209ab12 100644
--- a/configure.ac
+++ b/configure.ac
@@ -295,7 +295,11 @@ AC_ARG_ENABLE(networkmanager, AC_HELP_STRING([--disable-networkmanager],
[Disable NetworkManager support]),
enable_networkmanager=$enableval)
if test x$enable_networkmanager != xno; then
- PKG_CHECK_MODULES(LIBNM, libnm_glib >= $LIBNM_GLIB_REQUIRED, PK_BUILD_NETWORKMANAGER="yes", PK_BUILD_NETWORKMANAGER="no")
+ PKG_CHECK_MODULES(LIBNM, libnm-glib >= $LIBNM_GLIB_REQUIRED, PK_BUILD_NETWORKMANAGER="yes", PK_BUILD_NETWORKMANAGER="no")
+ # look for the old name for the library too
+ if test "x$PK_BUILD_NETWORKMANAGER" = "xno"; then
+ PKG_CHECK_MODULES(LIBNM, libnm_glib >= $LIBNM_GLIB_REQUIRED, PK_BUILD_NETWORKMANAGER="yes", PK_BUILD_NETWORKMANAGER="no")
+ fi
if test "x$PK_BUILD_NETWORKMANAGER" = "xyes"; then
networking_apis="${networking_apis},NetworkManager"
AC_DEFINE(PK_BUILD_NETWORKMANAGER, 1, [define if NetworkManager is installed])
commit bb881b39fe7cffc16b9a5fc03cf0a75abc00c492
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 13:01:03 2009 +0100
glib2: handle EULAs and repo-signatures in PkTask too
diff --git a/lib/packagekit-glib2/pk-task-wrapper.c b/lib/packagekit-glib2/pk-task-wrapper.c
index d63d6c9..c6d2e1e 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.c
+++ b/lib/packagekit-glib2/pk-task-wrapper.c
@@ -21,12 +21,13 @@
#include "config.h"
-#include <packagekit-glib2/pk-task-wrapper.h>
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-results.h>
#include "egg-debug.h"
+#include "pk-task-wrapper.h"
+
static void pk_task_wrapper_finalize (GObject *object);
#define PK_TASK_WRAPPER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_TASK_WRAPPER, PkTaskWrapperPrivate))
@@ -57,7 +58,7 @@ dkp_task_wrapper_untrusted_question (PkTask *task, guint request, const PkResult
g_print ("UNTRUSTED\n");
/* just accept without asking */
- pk_task_user_acceptance (task, request);
+ pk_task_user_accepted (task, request);
}
/**
@@ -89,7 +90,7 @@ dkp_task_wrapper_key_question (PkTask *task, guint request, const PkResults *res
}
/* just accept without asking */
- pk_task_user_acceptance (task, request);
+ pk_task_user_accepted (task, request);
g_ptr_array_unref (array);
}
@@ -120,7 +121,7 @@ dkp_task_wrapper_eula_question (PkTask *task, guint request, const PkResults *re
}
/* just accept without asking */
- pk_task_user_acceptance (task, request);
+ pk_task_user_accepted (task, request);
g_ptr_array_unref (array);
}
@@ -150,7 +151,7 @@ dkp_task_wrapper_media_change_question (PkTask *task, guint request, const PkRes
}
/* just accept without asking */
- pk_task_user_acceptance (task, request);
+ pk_task_user_accepted (task, request);
g_ptr_array_unref (array);
}
@@ -286,7 +287,7 @@ pk_task_wrapper_test (gpointer user_data)
/************************************************************/
egg_test_title (test, "install package");
- package_ids = g_strsplit ("glib2;2.14.0;i386;fedora", ",", -1);
+ package_ids = g_strsplit ("vips-doc;7.12.4-2.fc8;noarch;linva", ",", -1);
pk_task_install_packages_async (PK_TASK (task), package_ids, NULL,
(PkProgressCallback) pk_task_wrapper_test_progress_cb, test,
(GAsyncReadyCallback) pk_task_wrapper_test_install_packages_cb, test);
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 3af390a..6708f9e 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -54,7 +54,7 @@ typedef struct {
gboolean only_trusted;
gchar **package_ids;
GSimpleAsyncResult *res;
- const PkResults *results;
+ PkResults *results;
gboolean ret;
PkTask *task;
GCancellable *cancellable;
@@ -132,6 +132,8 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
g_ptr_array_remove (state->task->priv->array, state);
/* deallocate */
+ if (state->results != NULL)
+ g_object_unref (state->results);
g_strfreev (state->package_ids);
g_object_unref (state->res);
g_slice_free (PkTaskState, state);
@@ -156,29 +158,211 @@ pk_task_do_async_action (PkTaskState *state)
}
/**
- * pk_task_user_acceptance_idle_cb:
+ * pk_task_install_signatures_ready_cb:
+ **/
+static void
+pk_task_install_signatures_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
+{
+ PkTask *task = PK_TASK (source_object);
+ GError *error = NULL;
+ const PkResults *results;
+
+ /* old results no longer valid */
+ if (state->results != NULL)
+ g_object_unref (state->results);
+
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
+ if (results == NULL) {
+ egg_warning ("failed to install signature: %s", error->message);
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* we own a copy now */
+ state->results = g_object_ref (G_OBJECT(results));
+
+ /* get exit code */
+ state->exit_enum = pk_results_get_exit_code (state->results);
+
+ /* need untrusted */
+ if (state->exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "failed to install signature");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* now try the action again */
+ pk_task_do_async_action (state);
+out:
+ return;
+}
+
+/**
+ * pk_task_install_signatures:
+ **/
+static void
+pk_task_install_signatures (PkTaskState *state)
+{
+ GError *error = NULL;
+ GPtrArray *array;
+ const PkResultItemRepoSignatureRequired *item;
+
+ /* get results */
+ array = pk_results_get_repo_signature_required_array (state->results);
+ if (array == NULL)
+ egg_error ("failed to get signatures, fatal error");
+
+ /* did we get no results? */
+ if (array->len == 0) {
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "no signatures to install");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* did we get more than result? */
+ if (array->len > 1) {
+ /* TODO: support more than one signature */
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "more than one signature to install");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get first item of data */
+ item = g_ptr_array_index (array, 0);
+
+ /* do new async method */
+ pk_client_install_signature_async (PK_CLIENT(state->task), item->type, item->key_id, item->package_id,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_install_signatures_ready_cb, state);
+out:
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_accept_eulas_ready_cb:
+ **/
+static void
+pk_task_accept_eulas_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
+{
+ PkTask *task = PK_TASK (source_object);
+ GError *error = NULL;
+ const PkResults *results;
+
+ /* old results no longer valid */
+ if (state->results != NULL)
+ g_object_unref (state->results);
+
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
+ if (results == NULL) {
+ egg_warning ("failed to accept eula: %s", error->message);
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* we own a copy now */
+ state->results = g_object_ref (G_OBJECT(results));
+
+ /* get exit code */
+ state->exit_enum = pk_results_get_exit_code (state->results);
+
+ /* need untrusted */
+ if (state->exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "failed to accept eula");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* now try the action again */
+ pk_task_do_async_action (state);
+out:
+ return;
+}
+
+/**
+ * pk_task_accept_eulas:
+ **/
+static void
+pk_task_accept_eulas (PkTaskState *state)
+{
+ GError *error = NULL;
+ GPtrArray *array;
+ const PkResultItemEulaRequired *item;
+
+ /* get results */
+ array = pk_results_get_eula_required_array (state->results);
+ if (array == NULL)
+ egg_error ("failed to get eulas, fatal error");
+
+ /* did we get no results? */
+ if (array->len == 0) {
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "no eulas to accept");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* did we get more than result? */
+ if (array->len > 1) {
+ /* TODO: support more than one eula */
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "more than one eula to accept");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get first item of data */
+ item = g_ptr_array_index (array, 0);
+
+ /* do new async method */
+ pk_client_accept_eula_async (PK_CLIENT(state->task), item->eula_id,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_accept_eulas_ready_cb, state);
+out:
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_user_accepted_idle_cb:
**/
static gboolean
-pk_task_user_acceptance_idle_cb (PkTaskState *state)
+pk_task_user_accepted_idle_cb (PkTaskState *state)
{
- if (state->exit_enum == PK_EXIT_ENUM_KEY_REQUIRED)
- egg_error ("need to do install-sig");
- if (state->exit_enum == PK_EXIT_ENUM_EULA_REQUIRED)
- egg_error ("need to do accept-eula");
+ /* this needs another step in the dance */
+ if (state->exit_enum == PK_EXIT_ENUM_KEY_REQUIRED) {
+ egg_debug ("need to do install-sig");
+ pk_task_install_signatures (state);
+ goto out;
+ }
+
+ /* this needs another step in the dance */
+ if (state->exit_enum == PK_EXIT_ENUM_EULA_REQUIRED) {
+ egg_debug ("need to do accept-eula");
+ pk_task_accept_eulas (state);
+ goto out;
+ }
/* doing task */
egg_debug ("continuing with request %i", state->request);
pk_task_do_async_action (state);
+out:
/* never repeat */
return FALSE;
}
/**
- * pk_task_user_acceptance:
+ * pk_task_user_accepted:
**/
gboolean
-pk_task_user_acceptance (PkTask *task, guint request)
+pk_task_user_accepted (PkTask *task, guint request)
{
PkTaskState *state;
@@ -189,7 +373,44 @@ pk_task_user_acceptance (PkTask *task, guint request)
return FALSE;
}
- g_idle_add ((GSourceFunc) pk_task_user_acceptance_idle_cb, state);
+ g_idle_add ((GSourceFunc) pk_task_user_accepted_idle_cb, state);
+ return TRUE;
+}
+
+/**
+ * pk_task_user_declined_idle_cb:
+ **/
+static gboolean
+pk_task_user_declined_idle_cb (PkTaskState *state)
+{
+ GError *error;
+
+ /* doing task */
+ egg_debug ("declined request %i", state->request);
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "user declined interaction");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+
+ /* never repeat */
+ return FALSE;
+}
+
+/**
+ * pk_task_user_declined:
+ **/
+gboolean
+pk_task_user_declined (PkTask *task, guint request)
+{
+ PkTaskState *state;
+
+ /* get the not-yet-completed request */
+ state = pk_task_find_by_request (task, request);
+ if (state == NULL) {
+ egg_warning ("request %i not found", request);
+ return FALSE;
+ }
+
+ g_idle_add ((GSourceFunc) pk_task_user_declined_idle_cb, state);
return TRUE;
}
@@ -202,16 +423,24 @@ 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;
+
+ /* old results no longer valid */
+ if (state->results != NULL)
+ g_object_unref (state->results);
/* get the results */
- state->results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
- if (state->results == NULL) {
+ results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
+ if (results == NULL) {
egg_warning ("failed to resolve: %s", error->message);
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
}
+ /* we own a copy now */
+ state->results = g_object_ref (G_OBJECT(results));
+
/* get exit code */
state->exit_enum = pk_results_get_exit_code (state->results);
@@ -221,7 +450,8 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
/* no support */
if (klass->untrusted_question == NULL) {
- error = g_error_new (1, 0, "could not do untrusted question as no klass support");
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NOT_SUPPORTED,
+ "could not do untrusted question as no klass support");
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
@@ -236,7 +466,8 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
if (state->exit_enum == PK_EXIT_ENUM_KEY_REQUIRED) {
/* no support */
if (klass->key_question == NULL) {
- error = g_error_new (1, 0, "could not do key question as no klass support");
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NOT_SUPPORTED,
+ "could not do key question as no klass support");
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
@@ -251,7 +482,8 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
if (state->exit_enum == PK_EXIT_ENUM_EULA_REQUIRED) {
/* no support */
if (klass->eula_question == NULL) {
- error = g_error_new (1, 0, "could not do eula question as no klass support");
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NOT_SUPPORTED,
+ "could not do eula question as no klass support");
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
@@ -266,7 +498,8 @@ pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state)
if (state->exit_enum == PK_EXIT_ENUM_MEDIA_CHANGE_REQUIRED) {
/* no support */
if (klass->media_change_question == NULL) {
- error = g_error_new (1, 0, "could not do media change question as no klass support");
+ error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NOT_SUPPORTED,
+ "could not do media change question as no klass support");
pk_task_generic_state_finish (state, error);
g_error_free (error);
goto out;
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index f529f36..57a2efd 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -102,7 +102,9 @@ void pk_task_install_packages_async (PkTask *task,
* pk_task_remove_packages_async
* pk_task_update_packages_async
*/
-gboolean pk_task_user_acceptance (PkTask *task,
+gboolean pk_task_user_accepted (PkTask *task,
+ guint request);
+gboolean pk_task_user_declined (PkTask *task,
guint request);
G_END_DECLS
commit 08556da40284519a912f2f0a7c354015d40a3434
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 12:21:53 2009 +0100
pkcon: remove the trailing newline from fgetc so multiple requests work
diff --git a/client/pk-text.c b/client/pk-text.c
index 8793ec9..27d5b85 100644
--- a/client/pk-text.c
+++ b/client/pk-text.c
@@ -59,6 +59,7 @@ gboolean
pk_console_get_prompt (const gchar *question, gboolean defaultyes)
{
gchar answer = '\0';
+ gboolean ret = FALSE;
/* pretty print */
g_print ("%s", question);
@@ -69,23 +70,31 @@ pk_console_get_prompt (const gchar *question, gboolean defaultyes)
do {
/* ITS4: ignore, we are copying into the same variable, not a string */
- answer = (gchar) getchar();
+ answer = (gchar) fgetc (stdin);
/* positive */
- if (answer == 'y' || answer == 'Y')
- return TRUE;
+ if (answer == 'y' || answer == 'Y') {
+ ret = TRUE;
+ break;
+ }
/* negative */
if (answer == 'n' || answer == 'N')
- return FALSE;
+ break;
/* default choice */
- if (answer == '\n' && defaultyes)
- return TRUE;
+ if (answer == '\n' && defaultyes) {
+ ret = TRUE;
+ break;
+ }
if (answer == '\n' && !defaultyes)
- return FALSE;
+ break;
} while (TRUE);
- /* keep GCC happy */
- return FALSE;
+ /* remove the trailing \n */
+ answer = (gchar) fgetc (stdin);
+ if (answer != '\n')
+ ungetc (answer, stdin);
+
+ return ret;
}
commit 3b833d4d494717028919bc910ee375d9c837ccb0
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 11:44:13 2009 +0100
glib2: add some of the pk_package_id_x helpers from glib1
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index e8d6af2..9e34f70 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -65,6 +65,8 @@ libpackagekit_glib2_la_SOURCES = \
pk-marshal.h \
pk-package.c \
pk-package.h \
+ pk-package-id.c \
+ pk-package-id.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 ef83613..d1baec7 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -29,6 +29,7 @@
#include <packagekit-glib2/pk-control.h>
#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-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
new file mode 100644
index 0000000..2424376
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package-id.c
@@ -0,0 +1,309 @@
+/* -*- 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.
+ */
+
+/**
+ * SECTION:pk-package-id
+ * @short_description: Functionality to read a PackageID
+ */
+
+#include "config.h"
+
+#include "egg-debug.h"
+
+#include <packagekit-glib2/pk-package-id.h>
+
+/**
+ * pk_package_id_split:
+ * @package_id: the ; delimited PackageID to split
+ *
+ * Splits a PackageID into the correct number of parts, checking the correct
+ * number of delimiters are present.
+ *
+ * Return value: a GStrv or %NULL if invalid, use g_strfreev() to free
+ **/
+gchar **
+pk_package_id_split (const gchar *package_id)
+{
+ gchar **sections = NULL;
+
+ if (package_id == NULL)
+ goto out;
+
+ /* split by delimeter ';' */
+ sections = g_strsplit (package_id, ";", -1);
+ if (g_strv_length (sections) != 4)
+ goto out;
+
+ /* name has to be valid */
+ if (sections[0][0] != '\0')
+ return sections;
+out:
+ g_strfreev (sections);
+ return NULL;
+}
+
+/**
+ * pk_package_id_check:
+ * @package_id: the PackageID to check
+ *
+ * Return value: %TRUE if the PackageID was well formed.
+ **/
+gboolean
+pk_package_id_check (const gchar *package_id)
+{
+ gchar **sections;
+ gboolean ret;
+
+ /* NULL check */
+ if (package_id == NULL)
+ return FALSE;
+
+ /* UTF8 */
+ ret = g_utf8_validate (package_id, -1, NULL);
+ if (!ret) {
+ egg_warning ("invalid UTF8!");
+ return FALSE;
+ }
+
+ /* correct number of sections */
+ sections = pk_package_id_split (package_id);
+ if (sections == NULL)
+ return FALSE;
+
+ /* all okay */
+ g_strfreev (sections);
+ return TRUE;
+}
+
+/**
+ * pk_package_id_build:
+ * @name: the package name
+ * @version: the package version
+ * @arch: the package architecture
+ * @data: the package extra data
+ *
+ * Return value: returns a string to form the PackageID.
+ **/
+gchar *
+pk_package_id_build (const gchar *name, const gchar *version,
+ const gchar *arch, const gchar *data)
+{
+ g_return_val_if_fail (name != NULL, NULL);
+ return g_strdup_printf ("%s;%s;%s;%s", name,
+ version != NULL ? version : "",
+ arch != NULL ? arch : "",
+ data != NULL ? data : "");
+}
+
+/**
+ * pk_arch_base_ix86:
+ **/
+static gboolean
+pk_arch_base_ix86 (const gchar *arch)
+{
+ if (g_strcmp0 (arch, "i386") == 0 ||
+ g_strcmp0 (arch, "i486") == 0 ||
+ g_strcmp0 (arch, "i586") == 0 ||
+ g_strcmp0 (arch, "i686") == 0)
+ return TRUE;
+ return FALSE;
+}
+
+/**
+ * pk_package_id_equal_fuzzy_arch_section:
+ **/
+static gboolean
+pk_package_id_equal_fuzzy_arch_section (const gchar *arch1, const gchar *arch2)
+{
+ if (g_strcmp0 (arch1, arch2) == 0)
+ return TRUE;
+ if (pk_arch_base_ix86 (arch1) && pk_arch_base_ix86 (arch2))
+ return TRUE;
+ return FALSE;
+}
+
+/**
+ * pk_package_id_equal_fuzzy_arch:
+ * @package_id1: the first PackageID
+ * @package_id2: the second PackageID
+ *
+ * Only compare the name, version, and arch, where the architecture will fuzzy
+ * match with i*86.
+ *
+ * Return value: %TRUE if the PackageIDs can be considered equal.
+ **/
+gboolean
+pk_package_id_equal_fuzzy_arch (const gchar *package_id1, const gchar *package_id2)
+{
+ gchar **sections1;
+ gchar **sections2;
+ gboolean ret = FALSE;
+
+ sections1 = pk_package_id_split (package_id1);
+ sections2 = pk_package_id_split (package_id2);
+ if (g_strcmp0 (sections1[0], sections2[0]) == 0 &&
+ g_strcmp0 (sections1[1], sections2[1]) == 0 &&
+ pk_package_id_equal_fuzzy_arch_section (sections1[2], sections2[2]))
+ ret = TRUE;
+
+ g_strfreev (sections1);
+ g_strfreev (sections2);
+ return ret;
+}
+
+/**
+ * pk_package_id_to_printable:
+ * @package_id: the PackageID
+ *
+ * Formats the PackageID to be printable to the user.
+ *
+ * Return value: the name-version.arch formatted string, use g_free() to free.
+ **/
+gchar *
+pk_package_id_to_printable (const gchar *package_id)
+{
+ gchar **split = NULL;
+ gchar *value = NULL;
+
+ /* invalid */
+ if (package_id == NULL)
+ goto out;
+
+ /* split */
+ split = pk_package_id_split (package_id);
+ if (split == NULL)
+ goto out;
+
+ /* form name-version.arch */
+ value = g_strdup_printf ("%s-%s.%s", split[0], split[1], split[2]);
+out:
+ g_strfreev (split);
+ return value;
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_package_id_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ gboolean ret;
+ gchar *text;
+ gchar **sections;
+
+ if (!egg_test_start (test, "PkPackageId"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "check not valid - NULL");
+ ret = pk_package_id_check (NULL);
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "check not valid - no name");
+ ret = pk_package_id_check (";0.0.1;i386;fedora");
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "check not valid - invalid");
+ ret = pk_package_id_check ("moo;0.0.1;i386");
+ egg_test_assert (test, !ret);
+
+ /************************************************************/
+ egg_test_title (test, "check valid");
+ ret = pk_package_id_check ("moo;0.0.1;i386;fedora");
+ egg_test_assert (test, ret);
+
+ /************************************************************/
+ egg_test_title (test, "id build");
+ text = pk_package_id_build ("moo", "0.0.1", "i386", "fedora");
+ if (g_strcmp0 (text, "moo;0.0.1;i386;fedora") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, NULL);
+ g_free (text);
+
+ egg_test_title (test, "id build partial");
+ text = pk_package_id_build ("moo", NULL, NULL, NULL);
+ if (g_strcmp0 (text, "moo;;;") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "got '%s', expected '%s'", text, "moo;;;");
+ g_free (text);
+
+ /************************************************************/
+ egg_test_title (test, "test printable");
+ text = pk_package_id_to_printable ("moo;0.0.1;i386;fedora");
+ if (g_strcmp0 (text, "moo-0.0.1.i386") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "printable is '%s'", text);
+ g_free (text);
+
+ /************************************************************/
+ egg_test_title (test, "test on real packageid");
+ sections = pk_package_id_split ("kde-i18n-csb;4:3.5.8~pre20071001-0ubuntu1;all;");
+ if (sections != NULL &&
+ g_strcmp0 (sections[0], "kde-i18n-csb") == 0 &&
+ g_strcmp0 (sections[1], "4:3.5.8~pre20071001-0ubuntu1") == 0 &&
+ g_strcmp0 (sections[2], "all") == 0 &&
+ g_strcmp0 (sections[3], "") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "got %s, %s, %s, %s", sections[0], sections[1], sections[2], sections[3]);
+ g_strfreev (sections);
+
+ /************************************************************/
+ egg_test_title (test, "test on short packageid");
+ sections = pk_package_id_split ("kde-i18n-csb;4:3.5.8~pre20071001-0ubuntu1;;");
+ if (sections != NULL &&
+ g_strcmp0 (sections[0], "kde-i18n-csb") == 0 &&
+ g_strcmp0 (sections[1], "4:3.5.8~pre20071001-0ubuntu1") == 0 &&
+ g_strcmp0 (sections[2], "") == 0 &&
+ g_strcmp0 (sections[3], "") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "got %s, %s, %s, %s", sections[0], sections[1], sections[2], sections[3]);
+ g_strfreev (sections);
+
+ /************************************************************/
+ egg_test_title (test, "test fail under");
+ sections = pk_package_id_split ("foo;moo");
+ egg_test_assert (test, sections == NULL);
+
+ /************************************************************/
+ egg_test_title (test, "test fail over");
+ sections = pk_package_id_split ("foo;moo;dave;clive;dan");
+ egg_test_assert (test, sections == NULL);
+
+ /************************************************************/
+ egg_test_title (test, "test fail missing first");
+ sections = pk_package_id_split (";0.1.2;i386;data");
+ egg_test_assert (test, sections == NULL);
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-package-id.h b/lib/packagekit-glib2/pk-package-id.h
new file mode 100644
index 0000000..0bb2e0d
--- /dev/null
+++ b/lib/packagekit-glib2/pk-package-id.h
@@ -0,0 +1,46 @@
+/* -*- 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_PACKAGE_ID_H
+#define __PK_PACKAGE_ID_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+void pk_package_id_test (gpointer user_data);
+gchar *pk_package_id_build (const gchar *name,
+ const gchar *version,
+ const gchar *arch,
+ const gchar *data);
+gboolean pk_package_id_check (const gchar *package_id);
+gchar **pk_package_id_split (const gchar *package_id);
+gchar *pk_package_id_to_printable (const gchar *package_id);
+gboolean pk_package_id_equal_fuzzy_arch (const gchar *package_id1,
+ const gchar *package_id2);
+G_END_DECLS
+
+#endif /* __PK_PACKAGE_ID_H */
+
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 7c103cb..9ccf59d 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -31,6 +31,8 @@
#include "pk-control.h"
#include "pk-control-sync.h"
#include "pk-enum.h"
+#include "pk-package.h"
+#include "pk-package-id.h"
#include "pk-package-sack.h"
#include "pk-results.h"
#include "pk-task.h"
@@ -51,6 +53,7 @@ main (int argc, char **argv)
pk_common_test (test);
pk_enum_test (test);
pk_bitfield_test (test);
+ pk_package_id_test (test);
pk_progress_test (test);
pk_results_test (test);
pk_package_test (test);
commit 0bd29f2054f0c086235834aa35feb54bd48f99f8
Author: rajesh <rajesh at fedoraproject.org>
Date: Thu Sep 3 10:20:35 2009 +0000
Sending translation for Hindi
diff --git a/po/hi.po b/po/hi.po
index a008737..4fdcf2e 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -1,21 +1,21 @@
-# translation of packagekit.master.PackageKit.po to Hindi
+# translation of packagekit.master.po to Hindi
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Rajesh Ranjan <rajesh672 at gmail.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: packagekit.master.PackageKit\n"
+"Project-Id-Version: packagekit.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-05-27 16:31+0530\n"
+"POT-Creation-Date: 2009-09-02 02:37+0000\n"
+"PO-Revision-Date: 2009-09-03 15:50+0530\n"
"Last-Translator: Rajesh Ranjan <rajesh672 at gmail.com>\n"
"Language-Team: Hindi <hindi.sf.net>\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"
#. TRANSLATORS: this is an atomic transaction
@@ -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 "सहà¥"
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
msgid "False"
msgstr "à¤à¤²à¤¤"
@@ -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] "पà¥à¤à¥à¤"
+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 "बà¤à¤à¤¿à¤²à¤¾"
#. 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 "पà¥à¤à¥à¤à¤à¤¿à¤ à¤à¤à¤¸à¥à¤² à¤
à¤à¤¤à¤°à¤«à¤²à¤"
#. 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 "फ़िलà¥à¤à¤° सà¥à¤ à¤à¤°à¥à¤, à¤à¤¦à¤¾. सà¤à¤¸à¥à¤¥à¤¾à¤ªà¤¿à¤¤"
#. 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 "à¤à¤à¤¤à¤µà¥à¤¯ निरà¥à¤¦à¥à¤¶à¤¿à¤à¤¾ à¤à¤° फिर डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¨à¥ à¤à¥ लिठसà¤à¤à¥à¤² नाम à¤à¤°à¥à¤°à¥ हà¥"
#. 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 "à¤à¤®à¤¾à¤à¤¡ à¤
सफल"
@@ -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
@@ -812,7 +851,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
@@ -892,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
@@ -982,49 +1019,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 "पà¥à¤à¥à¤à¤à¤¿à¤ à¤à¤à¤¸à¥à¤² à¤
à¤à¤¤à¤°à¤«à¤²à¤"
+msgstr "पà¥à¤à¥à¤à¤à¤¿à¤ डिबà¤à¤à¤à¤«à¥ सà¤à¤¸à¥à¤¥à¤¾à¤ªà¤"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#, 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
@@ -1036,31 +1070,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 निषà¥à¤à¥à¤°à¤¿à¤¯ डिबà¤à¤à¤à¤«à¥ रिपà¥à¤ पाया."
#. 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
@@ -1069,199 +1103,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 ढà¥à¤à¤¢à¤¼à¤¨à¥ मà¥à¤ विफल: %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"
@@ -1290,10 +1314,8 @@ msgid "Authentication is required to accept a EULA"
msgstr "EULA सà¥à¤µà¥à¤à¤¾à¤° à¤à¤°à¤¨à¥ à¤à¥ लिठपà¥à¤°à¤®à¤¾à¤£à¥à¤à¤°à¤£ à¤à¤°à¥à¤°à¥ हà¥"
#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-"à¤à¥à¤ à¤à¤¾à¤°à¥à¤¯ à¤
सà¥à¤µà¥à¤à¤¾à¤° à¤à¤°à¤¨à¥ à¤à¥ लिठपà¥à¤°à¤®à¤¾à¤£à¥à¤à¤°à¤£ à¤à¤°à¥à¤°à¥ हॠà¤à¥ à¤à¤ªà¤à¥ दà¥à¤µà¤¾à¤°à¤¾ à¤à¤°à¤à¤ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥"
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "à¤à¥à¤ à¤à¤¾à¤°à¥à¤¯ à¤
सà¥à¤µà¥à¤à¤¾à¤° à¤à¤°à¤¨à¥ à¤à¥ लिठपà¥à¤°à¤®à¤¾à¤£à¥à¤à¤°à¤£ à¤à¤°à¥à¤°à¥ हॠà¤à¥ à¤à¤ªà¤à¥ दà¥à¤µà¤¾à¤°à¤¾ à¤à¤°à¤à¤ नहà¥à¤ à¤à¤¿à¤¯à¤¾ à¤à¤¯à¤¾ हà¥"
#: ../policy/org.freedesktop.packagekit.policy.in.h:10
msgid "Authentication is required to change software source parameters"
@@ -1303,8 +1325,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 +1340,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 +1416,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 +1537,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 b55c038aaa09d64a22bd76893caa936f608a7ee6
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date: Thu Sep 3 12:05:04 2009 +0200
ports: implement vuxml for get-update-detail
diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index ea4a92a..b6e1f24 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -461,6 +461,56 @@ def refresh_cache(force)
percentage(100)
end
+# (security/vxquery)
+VXQUERY = "#{PREFIX}/bin/vxquery"
+
+# http://www.vuxml.org
+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
+end
+
+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)
+ require 'rexml/document'
+ vuxml = `#{VXQUERY} -t 'vuxml' #{vulnxml} '#{name}'`
+ doc = REXML::Document.new vuxml
+ doc.root.each_element('//vuln') do |vuln|
+ match = false
+ vuln.each_element('affects/package') do |package|
+ package.elements['name'].each do |element|
+ if element == name
+ match = true
+ break
+ end
+ end
+ next unless match
+ if oldversion and newversion
+ match = false
+ package.elements['range'].each do |element|
+ if _match_range(element, oldversion) and
+ not _match_range(element, newversion)
+ match = true
+ break
+ end
+ end
+ end
+ end
+ vulns << vuln if match
+ end
+ end
+ return vulns
+end
+
def get_updates(filters)
status(STATUS_DEP_RESOLVE)
filterlist = filters.split(';')
@@ -543,7 +593,30 @@ def get_update_detail(package_ids)
issued = ''
updated = ''
- # TODO: http://www.vuxml.org
+ vulns = _vuxml(pkg.name, oldpkg.version, pkg.version)
+ vulns.each do |vuln|
+ if topic = vuln.elements['topic']
+ description += topic.text
+ end
+ if vid = vuln.attributes["vid"]
+ vendor_urls << "http://vuxml.freebsd.org/#{vid}.html"
+ end
+ vuln.each_element('references/cvename') do |cve|
+ cve_urls << "http://cve.mitre.org/cgi-bin/cvename.cgi?name=#{cve.text}"
+ end
+ vuln.each_element('references/url') do |element|
+ url = element.text.chomp
+ if url.match(/bugzilla/)
+ bugzilla_urls << url
+ end
+ end
+ if date = vuln.elements['dates/entry']
+ issued = date.text
+ end
+ if date = vuln.elements['dates/modified']
+ updated = date.text
+ end
+ end
vendor_urls = vendor_urls.join(';')
bugzilla_urls = bugzilla_urls.join(';')
commit 116243028c4f7e0cb1d1448d081c9152770659f6
Merge: 373ef03... 319ea84...
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 11:03:26 2009 +0100
Merge branch 'master' into client-glib2
commit 319ea84e25ccc10013f477949f89fc2499b2a078
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 11:02:32 2009 +0100
trivial: fix up a few vim-tags
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index aa8325e..2c73420 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offsack: 8 -*-
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
*
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index 6d826cc..9c58d0a 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offsack: 8 -*-
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
*
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index e306668..7c103cb 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -47,7 +47,6 @@ main (int argc, char **argv)
egg_debug_init (TRUE);
/* tests go here */
-#if 0
egg_string_test (test);
pk_common_test (test);
pk_enum_test (test);
@@ -59,7 +58,6 @@ main (int argc, char **argv)
pk_control_sync_test (test);
pk_client_test (test);
pk_package_sack_test (test);
-#endif
pk_task_test (test);
pk_task_wrapper_test (test);
diff --git a/lib/packagekit-glib2/pk-task-wrapper.h b/lib/packagekit-glib2/pk-task-wrapper.h
index 2a365d2..9d0887d 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.h
+++ b/lib/packagekit-glib2/pk-task-wrapper.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask_wrapper: 8 -*-
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
*
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 751ea6d..3af390a 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask: 8 -*-
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
*
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index ab61e1c..f529f36 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask: 8 -*-
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
*
commit 373ef0333acf08af7606c58636f6cae759ec280c
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 11:00:52 2009 +0100
glib2: make pkcon-test use PkTask
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 179897c..a80e5b4 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -46,7 +46,7 @@ static PkBitfield roles;
static gboolean is_console = FALSE;
static gboolean nowait = FALSE;
static PkControlSync *control = NULL;
-static PkClient *client = NULL;
+static PkTask *task = NULL;
PkProgressBar *progressbar = NULL;
/**
@@ -484,7 +484,7 @@ pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
PkRoleEnum role;
/* don't print if we are DownloadPackages */
- pk_client_get_role (client, &role, NULL, NULL);
+ pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
if (role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
egg_debug ("ignoring ::files");
return;
@@ -615,7 +615,7 @@ pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
gboolean ret;
GError *error = NULL;
- pk_client_get_role (client, &role, NULL, NULL);
+ pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
role_text = pk_role_enum_to_text (role);
time_s = (gfloat) runtime / 1000.0;
@@ -647,8 +647,8 @@ pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
egg_debug ("need to handle untrusted");
/* retry new action with untrusted */
- pk_client_set_only_trusted (client, FALSE);
- ret = pk_client_requeue (client, &error);
+ pk_client_set_only_trusted (PK_CLIENT(task), FALSE);
+ ret = pk_client_requeue (PK_CLIENT(task), &error);
if (!ret) {
egg_warning ("Failed to requeue: %s", error->message);
g_error_free (error);
@@ -774,7 +774,7 @@ pk_console_install_stuff (gchar **packages, GError **error)
break;
}
/* try and find a package */
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages[i], &error_local);
+ 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);
@@ -844,7 +844,7 @@ pk_console_install_stuff (gchar **packages, GError **error)
}
/* reset */
- ret = pk_client_reset (client, &error_local);
+ ret = pk_client_reset (PK_CLIENT(task), &error_local);
if (!ret) {
/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
@@ -852,7 +852,7 @@ pk_console_install_stuff (gchar **packages, GError **error)
goto out;
}
- ret = pk_client_install_packages (client, TRUE, package_ids, &error_local);
+ 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);
@@ -912,7 +912,7 @@ pk_console_install_stuff (gchar **packages, GError **error)
}
}
- ret = pk_client_install_files (client, TRUE, files, &error_local);
+ 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);
@@ -941,10 +941,10 @@ pk_console_remove_only (gchar **package_ids, gboolean force, GError **error)
gboolean ret;
egg_debug ("remove+ %s", package_ids[0]);
- ret = pk_client_reset (client, error);
+ ret = pk_client_reset (PK_CLIENT(task), error);
if (!ret)
return ret;
- return pk_client_remove_packages (client, package_ids, force, FALSE, error);
+ return pk_client_remove_packages (PK_CLIENT(task), package_ids, force, FALSE, error);
}
/**
@@ -968,7 +968,7 @@ pk_console_remove_packages (gchar **packages, GError **error)
list = pk_package_list_new ();
length = g_strv_length (packages);
for (i=2; i<length; i++) {
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages[i], &error_local);
+ 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);
@@ -991,7 +991,7 @@ pk_console_remove_packages (gchar **packages, GError **error)
/* are we dumb and can't check for requires? */
if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES)) {
/* no, just try to remove it without deps */
- ret = pk_console_remove_only (client, package_ids, FALSE, &error_local);
+ 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);
@@ -1029,7 +1029,7 @@ pk_console_remove_packages (gchar **packages, GError **error)
length = pk_package_list_get_size (list);
if (length == 0) {
egg_debug ("no requires");
- ret = pk_console_remove_only (client, package_ids, FALSE, &error_local);
+ 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);
@@ -1055,7 +1055,7 @@ pk_console_remove_packages (gchar **packages, GError **error)
}
/* remove all the stuff */
- ret = pk_console_remove_only (client, package_ids, TRUE, &error_local);
+ ret = pk_console_remove_only (PK_CLIENT(task), package_ids, TRUE, &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);
@@ -1087,7 +1087,7 @@ pk_console_download_packages (gchar **packages, const gchar *directory, GError *
array_packages = g_ptr_array_new ();
length = g_strv_length (packages);
for (i=3; i<length; i++) {
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), packages[i], &error_local);
+ 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]);
@@ -1110,7 +1110,7 @@ pk_console_download_packages (gchar **packages, const gchar *directory, GError *
package_ids = pk_ptr_array_to_strv (array_packages);
/* reset */
- ret = pk_client_reset (client, &error_local);
+ ret = pk_client_reset (PK_CLIENT(task), &error_local);
if (!ret) {
/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
@@ -1118,7 +1118,7 @@ pk_console_download_packages (gchar **packages, const gchar *directory, GError *
goto out;
}
- ret = pk_client_download_packages (client, package_ids, directory, error);
+ 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);
@@ -1150,7 +1150,7 @@ pk_console_update_package (const gchar *package, GError **error)
PkPackageSack *list_single;
list = pk_package_list_new ();
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &error_local);
+ 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);
@@ -1162,7 +1162,7 @@ pk_console_update_package (const gchar *package, GError **error)
/* are we dumb and can't simulate? */
if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES)) {
/* no, just try to update it without deps */
- ret = pk_client_update_packages (client, TRUE, package_ids, error);
+ ret = pk_client_update_packages (PK_CLIENT(task), TRUE, package_ids, error);
if (!ret) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
@@ -1214,7 +1214,7 @@ pk_console_update_package (const gchar *package, GError **error)
}
}
- ret = pk_client_update_packages (client, TRUE, package_ids, error);
+ ret = pk_client_update_packages (PK_CLIENT(task), TRUE, package_ids, error);
if (!ret) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
@@ -1238,7 +1238,7 @@ pk_console_get_requires (PkBitfield filters, const gchar *package, GError **erro
gchar **package_ids;
GError *error_local = NULL;
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
+ package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), 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 get the requirements for %s: %s"), package, error_local->message);
@@ -1246,7 +1246,7 @@ pk_console_get_requires (PkBitfield filters, const gchar *package, GError **erro
return FALSE;
}
package_ids = pk_package_ids_from_id (package_id);
- ret = pk_client_get_requires (client, filters, package_ids, TRUE, &error_local);
+ 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);
@@ -1268,7 +1268,7 @@ pk_console_get_depends (PkBitfield filters, const gchar *package, GError **error
gchar **package_ids;
GError *error_local = NULL;
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
+ package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
if (package_id == 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);
@@ -1276,7 +1276,7 @@ pk_console_get_depends (PkBitfield filters, const gchar *package, GError **error
return FALSE;
}
package_ids = pk_package_ids_from_id (package_id);
- ret = pk_client_get_depends (client, filters, package_ids, FALSE, &error_local);
+ 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);
@@ -1298,7 +1298,7 @@ pk_console_get_details (const gchar *package, GError **error)
gchar **package_ids;
GError *error_local = NULL;
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
+ package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
if (package_id == 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);
@@ -1306,7 +1306,7 @@ pk_console_get_details (const gchar *package, GError **error)
return FALSE;
}
package_ids = pk_package_ids_from_id (package_id);
- ret = pk_client_get_details (client, package_ids, &error_local);
+ 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);
@@ -1328,7 +1328,7 @@ pk_console_get_files (const gchar *package, GError **error)
gchar **package_ids;
GError *error_local = NULL;
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
+ package_id = pk_console_perhaps_resolve (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &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, _("This tool could not find the files for %s: %s"), package, error_local->message);
@@ -1336,7 +1336,7 @@ pk_console_get_files (const gchar *package, GError **error)
return FALSE;
}
package_ids = pk_package_ids_from_id (package_id);
- ret = pk_client_get_files (client, package_ids, error);
+ 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);
@@ -1358,7 +1358,7 @@ pk_console_get_update_detail (const gchar *package, GError **error)
gchar **package_ids;
GError *error_local = NULL;
- package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &error_local);
+ 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: 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);
@@ -1366,7 +1366,7 @@ pk_console_get_update_detail (const gchar *package, GError **error)
return FALSE;
}
package_ids = pk_package_ids_from_id (package_id);
- ret = pk_client_get_update_detail (client, package_ids, &error_local);
+ 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);
@@ -1385,7 +1385,7 @@ pk_console_error_code_cb (PkErrorCodeEnum error_code, const gchar *details, gpoi
{
PkRoleEnum role;
- pk_client_get_role (client, &role, NULL, NULL);
+ pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
/* handled */
if (need_requeue) {
@@ -1433,9 +1433,9 @@ pk_console_sigint_handler (int sig)
#if 0
/* cancel any tasks */
- pk_client_get_role (client, &role, NULL, NULL);
+ pk_client_get_role (PK_CLIENT(task), &role, NULL, NULL);
if (role != PK_ROLE_ENUM_UNKNOWN) {
- ret = pk_client_cancel (client, &error);
+ ret = pk_client_cancel (PK_CLIENT(task), &error);
if (!ret) {
egg_warning ("failed to cancel normal client: %s", error->message);
g_error_free (error);
@@ -1594,7 +1594,7 @@ pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
{
// PkClient *client = PK_CLIENT (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results;
PkExitEnum exit_enum;
const PkResultItemErrorCode *error_item;
GPtrArray *array;
@@ -1603,7 +1603,7 @@ pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
pk_progress_bar_end (progressbar);
/* get the results */
- results = pk_client_generic_finish (client, res, &error);
+ 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);
@@ -1776,7 +1776,7 @@ main (int argc, char *argv[])
G_CALLBACK (pk_connection_changed_cb), loop);
/* create transactions */
- client = pk_client_new ();
+ task = pk_task_new ();
/* check filter */
if (filter != NULL) {
@@ -1815,7 +1815,7 @@ main (int argc, char *argv[])
}
// pk_progress_bar_start (progressbar, _("Searching"));
/* fire off an async request */
- pk_client_search_name_async (client, filters, details, NULL,
+ pk_client_search_name_async (PK_CLIENT(task), filters, details, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1827,7 +1827,7 @@ main (int argc, char *argv[])
goto out;
}
/* fire off an async request */
- pk_client_search_details_async (client, filters, details, NULL,
+ pk_client_search_details_async (PK_CLIENT(task), filters, details, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1839,7 +1839,7 @@ main (int argc, char *argv[])
goto out;
}
/* fire off an async request */
- pk_client_search_group_async (client, filters, details, NULL,
+ pk_client_search_group_async (PK_CLIENT(task), filters, details, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1851,7 +1851,7 @@ main (int argc, char *argv[])
goto out;
}
/* fire off an async request */
- pk_client_search_file_async (client, filters, details, NULL,
+ pk_client_search_file_async (PK_CLIENT(task), filters, details, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else {
@@ -1867,7 +1867,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_install_stuff (client, argv, &error);
+ ret = pk_console_install_stuff (PK_CLIENT(task), argv, &error);
#endif
} else if (strcmp (mode, "install-sig") == 0) {
@@ -1877,7 +1877,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_install_signature_async (client, PK_SIGTYPE_ENUM_GPG, details, parameter, NULL,
+ pk_client_install_signature_async (PK_CLIENT(task), PK_SIGTYPE_ENUM_GPG, details, parameter, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
#if 0
@@ -1888,7 +1888,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_remove_packages (client, argv, &error);
+ ret = pk_console_remove_packages (PK_CLIENT(task), argv, &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 */
@@ -1903,7 +1903,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_FILE_NOT_FOUND;
goto out;
}
- ret = pk_console_download_packages (client, argv, value, &error);
+ ret = pk_console_download_packages (PK_CLIENT(task), argv, value, &error);
#endif
} else if (strcmp (mode, "accept-eula") == 0) {
if (value == NULL) {
@@ -1912,7 +1912,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_accept_eula_async (client, value, NULL,
+ pk_client_accept_eula_async (PK_CLIENT(task), value, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1924,18 +1924,18 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_rollback_async (client, value, NULL,
+ pk_client_rollback_async (PK_CLIENT(task), value, NULL,
(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 (client, TRUE, NULL,
+ pk_client_update_system_async (PK_CLIENT(task), TRUE, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else {
- ret = pk_console_update_package (client, value, &error);
+ ret = pk_console_update_package (PK_CLIENT(task), value, &error);
}
#endif
@@ -1946,7 +1946,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_resolve_async (client, filters, argv+2, NULL,
+ pk_client_resolve_async (PK_CLIENT(task), filters, argv+2, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1957,7 +1957,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_repo_enable_async (client, value, TRUE, NULL,
+ pk_client_repo_enable_async (PK_CLIENT(task), value, TRUE, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1968,7 +1968,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_repo_enable_async (client, value, FALSE, NULL,
+ pk_client_repo_enable_async (PK_CLIENT(task), value, FALSE, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -1979,12 +1979,12 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_repo_set_data_async (client, value, details, parameter, NULL,
+ pk_client_repo_set_data_async (PK_CLIENT(task), value, details, parameter, NULL,
(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 (client, filters, NULL,
+ 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
@@ -2020,10 +2020,10 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_depends (client, filters, value, &error);
+ ret = pk_console_get_depends (PK_CLIENT(task), filters, value, &error);
#endif
} else if (strcmp (mode, "get-distro-upgrades") == 0) {
- pk_client_get_distro_upgrades_async (client, NULL,
+ pk_client_get_distro_upgrades_async (PK_CLIENT(task), NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -2035,7 +2035,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_update_detail (client, value, &error);
+ ret = pk_console_get_update_detail (PK_CLIENT(task), value, &error);
} else if (strcmp (mode, "get-requires") == 0) {
if (value == NULL) {
@@ -2044,7 +2044,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_requires (client, filters, value, &error);
+ ret = pk_console_get_requires (PK_CLIENT(task), filters, value, &error);
#endif
} else if (strcmp (mode, "what-provides") == 0) {
@@ -2054,7 +2054,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- pk_client_what_provides_async (client, filters, PK_PROVIDES_ENUM_CODEC, value, NULL,
+ pk_client_what_provides_async (PK_CLIENT(task), filters, PK_PROVIDES_ENUM_CODEC, value, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
#if 0
@@ -2065,7 +2065,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_details (client, value, &error);
+ ret = pk_console_get_details (PK_CLIENT(task), value, &error);
} else if (strcmp (mode, "get-files") == 0) {
if (value == NULL) {
@@ -2074,7 +2074,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_files (client, value, &error);
+ ret = pk_console_get_files (PK_CLIENT(task), value, &error);
} else if (strcmp (mode, "list-create") == 0) {
if (value == NULL) {
@@ -2083,7 +2083,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_list_create (client, value, &error);
+ ret = pk_console_list_create (PK_CLIENT(task), value, &error);
} else if (strcmp (mode, "list-diff") == 0) {
if (value == NULL) {
@@ -2092,7 +2092,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_list_diff (client, value, &error);
+ ret = pk_console_list_diff (PK_CLIENT(task), value, &error);
} else if (strcmp (mode, "list-install") == 0) {
if (value == NULL) {
@@ -2101,20 +2101,20 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_list_install (client, value, &error);
+ ret = pk_console_list_install (PK_CLIENT(task), value, &error);
#endif
} else if (strcmp (mode, "get-updates") == 0) {
- pk_client_get_updates_async (client, filters, NULL,
+ pk_client_get_updates_async (PK_CLIENT(task), filters, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "get-categories") == 0) {
- pk_client_get_categories_async (client, NULL,
+ pk_client_get_categories_async (PK_CLIENT(task), NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "get-packages") == 0) {
- pk_client_get_packages_async (client, filters, NULL,
+ pk_client_get_packages_async (PK_CLIENT(task), filters, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
#if 0
@@ -2145,14 +2145,14 @@ main (int argc, char *argv[])
ret = TRUE;
#endif
} else if (strcmp (mode, "get-transactions") == 0) {
- pk_client_get_old_transactions_async (client, 10, NULL,
+ pk_client_get_old_transactions_async (PK_CLIENT(task), 10, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "refresh") == 0) {
/* special case - this takes a long time, and doesn't do packages */
// pk_console_start_bar ("refresh-cache");
- pk_client_refresh_cache_async (client, FALSE, NULL,
+ pk_client_refresh_cache_async (PK_CLIENT(task), FALSE, NULL,
(PkProgressCallback) pk_console_progress_cb, NULL,
(GAsyncReadyCallback) pk_console_finished_cb, NULL);
@@ -2180,9 +2180,7 @@ out:
g_free (summary);
g_object_unref (progressbar);
g_object_unref (control);
-// g_object_unref (client);
-// g_object_unref (client_sync);
- g_object_unref (client);
+ g_object_unref (task);
out_last:
return retval;
}
commit 5f914dfdb22226ade7da067558895fea2356e1f5
Merge: e27cc04... 066a0e0...
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 10:54:26 2009 +0100
Merge branch 'master' into client-glib2
commit 066a0e066207e82a6a778bf92d58bc029c5d47c0
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 10:50:08 2009 +0100
glib2: Add better examples to the PkTaskWrapper
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 4f06f80..20a769d 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1124,7 +1124,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
*
* Return value: the #PkResults, or %NULL
**/
-PkResults *
+const PkResults *
pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
{
GSimpleAsyncResult *simple;
@@ -3115,7 +3115,7 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
{
PkClient *client = PK_CLIENT (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results = NULL;
PkExitEnum exit_enum;
GPtrArray *packages;
const PkResultItemPackage *item;
@@ -3157,7 +3157,7 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
{
PkClient *client = PK_CLIENT (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results = NULL;
PkExitEnum exit_enum;
GPtrArray *details;
const PkResultItemDetails *item;
@@ -3199,7 +3199,7 @@ pk_client_test_get_updates_cb (GObject *object, GAsyncResult *res, EggTest *test
{
PkClient *client = PK_CLIENT (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results = NULL;
PkExitEnum exit_enum;
PkPackageSack *sack;
guint size;
@@ -3236,7 +3236,7 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
{
PkClient *client = PK_CLIENT (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results = NULL;
PkExitEnum exit_enum;
const PkResultItemErrorCode *error_item;
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index eed293d..bc81d9d 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 */
-PkResults *pk_client_generic_finish (PkClient *client,
+const PkResults *pk_client_generic_finish (PkClient *client,
GAsyncResult *res,
GError **error);
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index c9fc53e..2c0f382 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -699,7 +699,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 (PkResults *results)
+pk_results_get_exit_code (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), PK_EXIT_ENUM_UNKNOWN);
return results->priv->exit_enum;
@@ -729,7 +729,7 @@ pk_results_get_package_array (const PkResults *results)
* Return value: A #PkPackageSack of data.
**/
PkPackageSack *
-pk_results_get_package_sack (PkResults *results)
+pk_results_get_package_sack (const PkResults *results)
{
PkPackage *package;
PkPackageSack *sack;
@@ -957,7 +957,7 @@ pk_results_get_error_code_array (const PkResults *results)
* Return value: A #PkResultItemErrorCode, or %NULL
**/
const PkResultItemErrorCode *
-pk_results_get_error_code (PkResults *results)
+pk_results_get_error_code (const PkResults *results)
{
GPtrArray *array;
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 46d7f54..949ab52 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -342,9 +342,9 @@ gboolean pk_results_add_message (PkResults *results,
const gchar *details);
/* get single data */
-PkExitEnum pk_results_get_exit_code (PkResults *results);
-PkPackageSack *pk_results_get_package_sack (PkResults *results);
-const PkResultItemErrorCode *pk_results_get_error_code (PkResults *results);
+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);
/* get array objects */
GPtrArray *pk_results_get_package_array (const PkResults *results);
diff --git a/lib/packagekit-glib2/pk-task-wrapper.c b/lib/packagekit-glib2/pk-task-wrapper.c
index edad583..d63d6c9 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.c
+++ b/lib/packagekit-glib2/pk-task-wrapper.c
@@ -22,7 +22,6 @@
#include "config.h"
#include <packagekit-glib2/pk-task-wrapper.h>
-//#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-results.h>
@@ -80,6 +79,13 @@ dkp_task_wrapper_key_question (PkTask *task, guint request, const PkResults *res
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
g_print ("KEY:\n");
+ g_print (" Package: %s\n", item->package_id);
+ g_print (" Name: %s\n", item->repository_name);
+ g_print (" URL: %s\n", item->key_url);
+ g_print (" User: %s\n", item->key_userid);
+ g_print (" ID: %s\n", item->key_id);
+ g_print (" Fingerprint: %s\n", item->key_fingerprint);
+ g_print (" Timestamp: %s\n", item->key_timestamp);
}
/* just accept without asking */
@@ -107,6 +113,10 @@ dkp_task_wrapper_eula_question (PkTask *task, guint request, const PkResults *re
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
g_print ("EULA:\n");
+ g_print (" Eula ID: %s\n", item->eula_id);
+ g_print (" Package: %s\n", item->package_id);
+ g_print (" Vendor: %s\n", item->vendor_name);
+ g_print (" Agreement: %s\n", item->license_agreement);
}
/* just accept without asking */
@@ -134,6 +144,9 @@ dkp_task_wrapper_media_change_question (PkTask *task, guint request, const PkRes
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
g_print ("MEDIA CHANGE:\n");
+ g_print (" Media type: %s\n", pk_media_type_enum_to_text (item->media_type));
+ g_print (" ID: %s\n", item->media_id);
+ g_print (" Text: %s\n", item->media_text);
}
/* just accept without asking */
@@ -207,7 +220,7 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
{
PkTaskWrapper *task = PK_TASK_WRAPPER (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results = NULL;
PkExitEnum exit_enum;
GPtrArray *packages;
const PkResultItemPackage *item;
diff --git a/lib/packagekit-glib2/pk-task-wrapper.h b/lib/packagekit-glib2/pk-task-wrapper.h
index b64d535..2a365d2 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.h
+++ b/lib/packagekit-glib2/pk-task-wrapper.h
@@ -23,7 +23,6 @@
#define __PK_TASK_WRAPPER_H
#include <glib-object.h>
-//#include <gio/gio.h>
#include <packagekit-glib2/pk-task.h>
G_BEGIN_DECLS
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 14b58cc..751ea6d 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -54,7 +54,7 @@ typedef struct {
gboolean only_trusted;
gchar **package_ids;
GSimpleAsyncResult *res;
- PkResults *results;
+ const PkResults *results;
gboolean ret;
PkTask *task;
GCancellable *cancellable;
@@ -118,7 +118,7 @@ pk_task_generic_state_finish (PkTaskState *state, const GError *error)
/* get result */
if (state->ret) {
- g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref (state->results), g_object_unref);
+ g_simple_async_result_set_op_res_gpointer (state->res, g_object_ref ((GObject*) state->results), g_object_unref);
} else {
/* FIXME: change g_simple_async_result_set_from_error() to accept const GError */
g_simple_async_result_set_from_error (state->res, (GError*) error);
@@ -342,7 +342,7 @@ pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable
*
* Return value: %TRUE for success
**/
-PkResults *
+const PkResults *
pk_task_generic_finish (PkTask *task, GAsyncResult *res, GError **error)
{
GSimpleAsyncResult *simple;
@@ -416,7 +416,7 @@ pk_task_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *t
{
PkTask *task = PK_TASK (object);
GError *error = NULL;
- PkResults *results = NULL;
+ const PkResults *results = NULL;
/* get the results */
results = pk_task_generic_finish (task, res, &error);
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 82d6936..ab61e1c 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -87,7 +87,7 @@ GType pk_task_get_type (void);
PkTask *pk_task_new (void);
void pk_task_test (gpointer user_data);
-PkResults *pk_task_generic_finish (PkTask *task,
+const PkResults *pk_task_generic_finish (PkTask *task,
GAsyncResult *res,
GError **error);
commit 3e452314d0040fe75488285783bedf9bbc0b3567
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Sep 3 10:37:06 2009 +0100
Add PkTaskWrapper to just test the PkTask functionality
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 4b1abb2..e8d6af2 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -102,6 +102,8 @@ pk_self_test_SOURCES = \
$(libpackagekit_glib2_la_SOURCES) \
egg-test.h \
egg-test.c \
+ pk-task-wrapper.c \
+ pk-task-wrapper.h \
pk-self-test.c \
$(NULL)
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 962a65c..aa8325e 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -729,7 +729,6 @@ pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *ca
/**
* pk_package_sack_class_init:
- * @klass: The PkPackageSackClass
**/
static void
pk_package_sack_class_init (PkPackageSackClass *klass)
@@ -757,7 +756,6 @@ pk_package_sack_class_init (PkPackageSackClass *klass)
/**
* pk_package_sack_init:
- * @sack: This class instance
**/
static void
pk_package_sack_init (PkPackageSack *sack)
@@ -772,7 +770,6 @@ pk_package_sack_init (PkPackageSack *sack)
/**
* pk_package_sack_finalize:
- * @object: The object to finalize
**/
static void
pk_package_sack_finalize (GObject *object)
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 18cd64a..e306668 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -34,6 +34,7 @@
#include "pk-package-sack.h"
#include "pk-results.h"
#include "pk-task.h"
+#include "pk-task-wrapper.h"
#include "pk-version.h"
int
@@ -46,6 +47,7 @@ main (int argc, char **argv)
egg_debug_init (TRUE);
/* tests go here */
+#if 0
egg_string_test (test);
pk_common_test (test);
pk_enum_test (test);
@@ -57,7 +59,9 @@ main (int argc, char **argv)
pk_control_sync_test (test);
pk_client_test (test);
pk_package_sack_test (test);
+#endif
pk_task_test (test);
+ pk_task_wrapper_test (test);
return (egg_test_finish (test));
}
diff --git a/lib/packagekit-glib2/pk-task-wrapper.c b/lib/packagekit-glib2/pk-task-wrapper.c
new file mode 100644
index 0000000..edad583
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task-wrapper.c
@@ -0,0 +1,288 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <packagekit-glib2/pk-task-wrapper.h>
+//#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-results.h>
+
+#include "egg-debug.h"
+
+static void pk_task_wrapper_finalize (GObject *object);
+
+#define PK_TASK_WRAPPER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_TASK_WRAPPER, PkTaskWrapperPrivate))
+
+/**
+ * PkTaskWrapperPrivate:
+ *
+ * Private #PkTaskWrapper data
+ **/
+struct _PkTaskWrapperPrivate
+{
+ gpointer user_data;
+};
+
+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)
+{
+ PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ g_print ("UNTRUSTED\n");
+
+ /* just accept without asking */
+ pk_task_user_acceptance (task, request);
+}
+
+/**
+ * pk_task_wrapper_key_question:
+ **/
+static void
+dkp_task_wrapper_key_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ GPtrArray *array;
+ PkResultItemRepoSignatureRequired *item;
+ PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ array = pk_results_get_repo_signature_required_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ g_print ("KEY:\n");
+ }
+
+ /* just accept without asking */
+ pk_task_user_acceptance (task, request);
+
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_wrapper_eula_question:
+ **/
+static void
+dkp_task_wrapper_eula_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ GPtrArray *array;
+ PkResultItemEulaRequired *item;
+ PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ array = pk_results_get_eula_required_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ g_print ("EULA:\n");
+ }
+
+ /* just accept without asking */
+ pk_task_user_acceptance (task, request);
+
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_wrapper_media_change_question:
+ **/
+static void
+dkp_task_wrapper_media_change_question (PkTask *task, guint request, const PkResults *results)
+{
+ guint i;
+ GPtrArray *array;
+ PkResultItemMediaChangeRequired *item;
+ PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* get data */
+ array = pk_results_get_media_change_required_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ g_print ("MEDIA CHANGE:\n");
+ }
+
+ /* just accept without asking */
+ pk_task_user_acceptance (task, request);
+
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_task_wrapper_class_init:
+ **/
+static void
+pk_task_wrapper_class_init (PkTaskWrapperClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ PkTaskClass *task_class = PK_TASK_CLASS (klass);
+
+ object_class->finalize = pk_task_wrapper_finalize;
+ task_class->untrusted_question = dkp_task_wrapper_untrusted_question;
+ task_class->key_question = dkp_task_wrapper_key_question;
+ task_class->eula_question = dkp_task_wrapper_eula_question;
+ task_class->media_change_question = dkp_task_wrapper_media_change_question;
+
+ g_type_class_add_private (klass, sizeof (PkTaskWrapperPrivate));
+}
+
+/**
+ * pk_task_wrapper_init:
+ * @task_wrapper: This class instance
+ **/
+static void
+pk_task_wrapper_init (PkTaskWrapper *task)
+{
+ task->priv = PK_TASK_WRAPPER_GET_PRIVATE (task);
+ task->priv->user_data = NULL;
+}
+
+/**
+ * pk_task_wrapper_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_task_wrapper_finalize (GObject *object)
+{
+ PkTaskWrapper *task = PK_TASK_WRAPPER (object);
+ task->priv->user_data = NULL;
+ G_OBJECT_CLASS (pk_task_wrapper_parent_class)->finalize (object);
+}
+
+/**
+ * pk_task_wrapper_new:
+ *
+ * Return value: a new PkTaskWrapper object.
+ **/
+PkTaskWrapper *
+pk_task_wrapper_new (void)
+{
+ PkTaskWrapper *task;
+ task = g_object_new (PK_TYPE_TASK_WRAPPER, NULL);
+ return PK_TASK_WRAPPER (task);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static void
+pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+ PkTaskWrapper *task = PK_TASK_WRAPPER (object);
+ GError *error = NULL;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ GPtrArray *packages;
+ const PkResultItemPackage *item;
+ guint i;
+
+ /* get the results */
+ results = pk_task_generic_finish (PK_TASK (task), res, &error);
+ if (results == NULL) {
+ egg_test_failed (test, "failed to resolve: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+ egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+
+ packages = pk_results_get_package_array (results);
+ if (packages == NULL)
+ egg_test_failed (test, "no packages!");
+
+ /* list, just for shits and giggles */
+ for (i=0; i<packages->len; i++) {
+ item = g_ptr_array_index (packages, i);
+ egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+ }
+
+ if (packages->len != 5)
+ egg_test_failed (test, "invalid number of packages: %i", packages->len);
+
+ g_ptr_array_unref (packages);
+
+ egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+ egg_test_loop_quit (test);
+}
+
+static void
+pk_task_wrapper_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *test)
+{
+ PkStatusEnum status;
+ if (type == PK_PROGRESS_TYPE_STATUS) {
+ g_object_get (progress,
+ "status", &status,
+ NULL);
+ egg_debug ("now %s", pk_status_enum_to_text (status));
+ }
+}
+
+void
+pk_task_wrapper_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ PkTaskWrapper *task;
+ gchar **package_ids;
+
+ if (!egg_test_start (test, "PkTaskWrapper"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get task_wrapper");
+ task = pk_task_wrapper_new ();
+ egg_test_assert (test, task != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "install package");
+ package_ids = g_strsplit ("glib2;2.14.0;i386;fedora", ",", -1);
+ pk_task_install_packages_async (PK_TASK (task), package_ids, NULL,
+ (PkProgressCallback) pk_task_wrapper_test_progress_cb, test,
+ (GAsyncReadyCallback) pk_task_wrapper_test_install_packages_cb, test);
+ g_strfreev (package_ids);
+ egg_test_loop_wait (test, 150000);
+ egg_test_success (test, "installed in %i", egg_test_elapsed (test));
+
+ g_object_unref (task);
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-task-wrapper.h b/lib/packagekit-glib2/pk-task-wrapper.h
new file mode 100644
index 0000000..b64d535
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task-wrapper.h
@@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask_wrapper: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PK_TASK_WRAPPER_H
+#define __PK_TASK_WRAPPER_H
+
+#include <glib-object.h>
+//#include <gio/gio.h>
+#include <packagekit-glib2/pk-task.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_TASK_WRAPPER (pk_task_wrapper_get_type ())
+#define PK_TASK_WRAPPER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_TASK_WRAPPER, PkTaskWrapper))
+#define PK_TASK_WRAPPER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_TASK_WRAPPER, PkTaskWrapperClass))
+#define PK_IS_TASK_WRAPPER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_TASK_WRAPPER))
+#define PK_IS_TASK_WRAPPER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_TASK_WRAPPER))
+#define PK_TASK_WRAPPER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_TASK_WRAPPER, PkTaskWrapperClass))
+
+typedef struct _PkTaskWrapperPrivate PkTaskWrapperPrivate;
+typedef struct _PkTaskWrapper PkTaskWrapper;
+typedef struct _PkTaskWrapperClass PkTaskWrapperClass;
+
+struct _PkTaskWrapper
+{
+ PkTask parent;
+ PkTaskWrapperPrivate *priv;
+};
+
+struct _PkTaskWrapperClass
+{
+ PkTaskClass parent_class;
+};
+
+GQuark pk_task_wrapper_error_quark (void);
+GType pk_task_wrapper_get_type (void);
+PkTaskWrapper *pk_task_wrapper_new (void);
+void pk_task_wrapper_test (gpointer user_data);
+
+G_END_DECLS
+
+#endif /* __PK_TASK_WRAPPER_H */
+
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index c3c64e4..14b58cc 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -21,26 +21,6 @@
#include "config.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <locale.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <sys/wait.h>
-#include <fcntl.h>
-
-#include <glib/gi18n.h>
-#include <glib/gprintf.h>
-#include <dbus/dbus-glib.h>
-
#include <packagekit-glib2/pk-task.h>
#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-enum.h>
@@ -381,7 +361,6 @@ pk_task_generic_finish (PkTask *task, GAsyncResult *res, GError **error)
/**
* pk_task_class_init:
- * @klass: The PkTaskClass
**/
static void
pk_task_class_init (PkTaskClass *klass)
@@ -394,7 +373,6 @@ pk_task_class_init (PkTaskClass *klass)
/**
* pk_task_init:
- * @task: This class instance
**/
static void
pk_task_init (PkTask *task)
@@ -405,7 +383,6 @@ pk_task_init (PkTask *task)
/**
* pk_task_finalize:
- * @object: The object to finalize
**/
static void
pk_task_finalize (GObject *object)
@@ -440,39 +417,22 @@ pk_task_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *t
PkTask *task = PK_TASK (object);
GError *error = NULL;
PkResults *results = NULL;
- PkExitEnum exit_enum;
- GPtrArray *packages;
- const PkResultItemPackage *item;
- guint i;
/* get the results */
results = pk_task_generic_finish (task, res, &error);
- if (results == NULL) {
- egg_test_failed (test, "failed to resolve: %s", error->message);
- g_error_free (error);
+ if (results != NULL) {
+ egg_test_failed (test, "finish should fail!");
return;
}
- exit_enum = pk_results_get_exit_code (results);
- if (exit_enum != PK_EXIT_ENUM_SUCCESS)
- egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
-
- packages = pk_results_get_package_array (results);
- if (packages == NULL)
- egg_test_failed (test, "no packages!");
-
- /* list, just for shits and giggles */
- for (i=0; i<packages->len; i++) {
- item = g_ptr_array_index (packages, i);
- egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+ /* 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;
}
- if (packages->len != 5)
- egg_test_failed (test, "invalid number of packages: %i", packages->len);
-
- g_ptr_array_unref (packages);
-
- egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+ g_error_free (error);
egg_test_loop_quit (test);
}
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 8e17471..82d6936 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -52,7 +52,6 @@ G_BEGIN_DECLS
typedef struct _PkTaskPrivate PkTaskPrivate;
typedef struct _PkTask PkTask;
typedef struct _PkTaskClass PkTaskClass;
-typedef struct _PkTaskResults PkTaskResults;
struct _PkTask
{
commit ec218a8699100c362008685684fd945e5f8d564f
Author: swkothar <swkothar at fedoraproject.org>
Date: Thu Sep 3 09:11:06 2009 +0000
Sending translation for Gujarati
diff --git a/po/gu.po b/po/gu.po
index 57962d7..70fed21 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -1,4 +1,4 @@
-# translation of gu.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: gu\n"
+"Project-Id-Version: packagekit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-06-04 11:24+0530\n"
+"POT-Creation-Date: 2009-09-03 02:38+0000\n"
+"PO-Revision-Date: 2009-09-03 14:39+0530\n"
"Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
"Language-Team: Gujarati\n"
"MIME-Version: 1.0\n"
@@ -21,786 +21,827 @@ msgstr ""
"\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238
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
msgid "System time"
msgstr "સિસà«àªàª® સમય"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242
msgid "Succeeded"
msgstr "સફળ થયà«àª²"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
msgid "True"
msgstr "True"
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
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 ../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
msgid "Duration"
msgstr "àªàª¾àª³à«"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
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 ../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
msgid "User ID"
msgstr "વપરાશàªàª°à«àª¤àª¾ ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262
msgid "Username"
msgstr "વપરાશàªàª°à«àª¤àª¾àª¨àª¾àª®"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266
msgid "Real name"
msgstr "સાàªà« નામ"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274
msgid "Affected packages:"
msgstr "àª
સર થયà«àª² પà«àªà«àªà«:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276
msgid "Affected packages: None"
msgstr "àª
સર થયà«àª² પà«àªà«àªà«: àªàªàª નહિàª"
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be removed:"
+msgstr "નà«àªà«àª¨àª¾ પà«àªà«àªà« દà«àª° àªàª°àªµàª¾àª®àª¾àª àªàªµàªµàª¾ àªà«àªàª:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be installed:"
+msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµà« ઠપડશà«:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be updated:"
+msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« સà«àª§àª¾àª°àªµà« ઠપડશà«:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be reinstalled:"
+msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« પà«àª¨:સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµà« ઠપડશà«:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349
+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:363
msgid "Distribution"
msgstr "વિતરણ"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365
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:367 ../client/pk-console.c:390
msgid "Summary"
msgstr "સારાàªàª¶"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379
msgid "Category"
msgstr "વરà«àª"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384
msgid "Parent"
msgstr "પિતà«"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387
msgid "Name"
msgstr "નામ"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393
msgid "Icon"
msgstr "àªàª¿àª¹à«àª¨"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408
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:410 ../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:413
msgid "Updates"
msgstr "સà«àª§àª¾àª°à«"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417
msgid "Obsoletes"
msgstr "àª
પà«àª°àªàª²àª¿àª¤"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421
msgid "Vendor"
msgstr "વિàªà«àª°à«àª¤àª¾"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425
msgid "Bugzilla"
msgstr "બàªàªà«àª²àª¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429
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
msgid "Restart"
msgstr "પà«àª¨:શરૠàªàª°à«"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437
msgid "Update text"
msgstr "લàªàª¾àª£àª¨à« સà«àª§àª¾àª°à«"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441
msgid "Changes"
msgstr "બદલાવà«"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445
msgid "State"
msgstr "સà«àª¥àª¿àª¤àª¿"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450
msgid "Issued"
msgstr "àª
દા àªàª°à«àª²"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455
msgid "Updated"
msgstr "સà«àª§àª¾àª°à«àª²"
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475
+msgid "Enabled"
+msgstr "સàªà«àª°àª¿àª¯ થયà«àª² àªà«"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478
+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 "àª
àªà«àªàª¾àª¤"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:599
msgid "System restart required by:"
msgstr "સિસà«àªàª® àªàª°à«àª°àª¿àª¯àª¾àª¤ પà«àª°àª®àª¾àª£à« પà«àª¨:શરૠથાય àªà«:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602
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:605
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:608
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:611
msgid "Application restart required by:"
msgstr "àªàª¾àª°à«àª¯àªà«àª°àª® ઠàªàª°à«àª°àª¿àª¯àª¾àª¤ પà«àª°àª®àª¾àª£à« પà«àª¨:શરૠથાય àªà«:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666
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:669
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: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:597
-#, fuzzy
+#: ../client/pk-console.c:675
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:678
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: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:735
+#: ../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: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 "àªàªàª¤àª°àª¿àª àªà«àª²: %s"
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266
+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
+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: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:791
+#: ../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:847
+#: ../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: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 "ઠસાધન પà«àªà«àªà« દà«àª° àªàª°à« શàªà«àª¯à«àª નહિàª: %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:1104
+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:1109
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: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:1004
+#: ../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: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 "ઠસાધન %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 "પà«àªà«àª સà«àª§àª¾àª°à« રદ થયà«àª² હતà«!"
+
#. 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 "ઠસાધન %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 "ઠસાધન %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 "ઠસાધન %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 "ઠસાધન %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 "ઠસાધન %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"
#. 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 "પà«àªà«àª યાદૠમà«àª³àªµà« રહà«àª¯àª¾ àªà«"
#. 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 "ઠસાધન પà«àªà«àª યાદૠમà«àª³àªµà« શàªà«àª¯à«àª નહિàª: %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 "ડિસà«àªàª®àª¾àª સàªàªà«àª°àª¹ àªàª°àªµàª¾ માàªà« નિષà«àª«àª³"
#. 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"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1512
msgid "Packages to add"
msgstr "àªàª®à«àª°àªµàª¾ માàªà« પà«àªà«àªà«"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1520
msgid "Packages to remove"
msgstr "દà«àª àªàª°àªµàª¾ માàªà« પà«àªà«àªà«"
#. 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 "સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« નવા પà«àªà«àªà«àª¨à« àªàª°à«àª° નથà«"
#. 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
msgid "not found."
msgstr "શà«àª§àª¾àª¯à« નથà«."
#. 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 "સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« પà«àªà«àªà«àª¨à« શà«àª§à« શàªàª¾àª¯àª¾ નહિàª"
#. 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 "પà«àªà«àªà«àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« રહà«àª¯àª¾ àªà«"
#. 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 "ઠસાધન %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 "ઠસાધન %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 "àªà«àª²:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1716
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:1732
msgid "Message:"
msgstr "સàªàª¦à«àª¶:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760
msgid "Package files"
msgstr "પà«àªà«àª ફાàªàª²à«"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768
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:1791
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:1801
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:1805
msgid "The signature was not accepted."
msgstr "સહૠસà«àªµà«àªàª¾àª°àª¾àª¯à«àª² ન હતà«."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../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:1604
+#: ../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:1608
+#: ../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:1637
+#: ../client/pk-console.c:1879
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:1932
msgid "PackageKit Console Interface"
msgstr "PackageKit àªàª¨à«àª¸à«àª² àªàª¨à«àªàª°àª«à«àª¸"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934
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:2027 ../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:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../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:2033
msgid "Set the filter, e.g. installed"
msgstr "àªàª¾àª³àª સà«àª¯à«àªà«àª¤ àªàª°à«, દા.ત. સà«àª¥àª¾àªªàª¿àª¤"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036
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:2063
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:2153
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
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
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
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: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:1986
+#: ../client/pk-console.c:2228
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:2237
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:2245
msgid "A destination directory and the package names to download are required"
msgstr "àª
àªàª¤àª¿àª® મà«àªàª¾àª® ડિરà«àªà«àªàª°à« àª
નૠપàªà« પà«àªà«àª નામૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªà« àªàª°à«àª°à« àªà«"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2252
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:2260
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:2270
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:2287
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:2296 ../client/pk-console.c:2305
msgid "A repository name is required"
msgstr "રà«àªªà«àªà«àªàª°à« નામ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2314
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:2328
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:2335
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:2342
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-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:2140
+#: ../client/pk-console.c:2382
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: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
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:2483
#, 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:2496
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:2499
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
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+#: ../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 àªàª§àª¾àª° સાથૠબિલà«àª ન હતૠતૠતરà«àªà« સà«àªµàª¾ પà«àªà«àªà«àª¨à« બનાવૠશàªàª¾àª¤àª¾ નથà«."
+msgstr "PackageKit ઠ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 "àªà« ફાàªàª²àª¨à« સà«àªªàª·à«àª àªàª°à« રહà«àª¯àª¾ હà«àª¯ તà«àª¯àª¾àª°à«, સà«àªµàª¾ પà«àªà«àª નામ àªàª¨à« સાથૠàªà«àª²à«àª²à« ઠહà«àªµà« àªà«àªàª"
#. 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"
@@ -812,29 +853,24 @@ 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
+#: ../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 "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« ૧ થૠ%i સà«àª§à«àª¨à« નàªàª¬àª° દાàªàª² àªàª°à«: "
-
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -892,24 +928,22 @@ msgstr "સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« રહà«àª¯àª¾ àªà«àª..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "સà«àª«à«àªàªµà«àª° સà«àª¤à«àª°à«àª¤à« વિશૠવિàªàª¤à« નૠડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«."
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "ફાàªàª² યાદà«àªàª¨à« ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà« (ઠનૠસમાપà«àª¤ થવા માàªà« થà«àª¡à« સમય લાàªà« શàªà« àªà«)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
msgid "Waiting for package manager lock."
-msgstr "પà«àªà«àª નામ શà«àª§à« રહà«àª¯àª¾ àªà«àª."
+msgstr "પà«àªà«àª વà«àª¯àªµàª¸à«àª¥àª¾àªªàª તાળા માàªà« રાહ àªà«àª રહà«àª¯àª¾ àªà«."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
msgid "Loading list of packages."
-msgstr "પà«àªà«àªà« ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«àª"
+msgstr "પà«àªà«àªà«àª¨à« યાદà«àª¨à« લà«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«."
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -982,286 +1016,273 @@ 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 ""
+#: ../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 ""
+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 ""
+msgstr "àªàª¾àª£àªàª¾àª°à« àª
થવા પà«àª°àªàª¤àª¿àª¨à« દરà«àª¶àª¾àªµà« નહિàª"
#. 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 "PackageKit àªàª¨à«àª¸à«àª² àªàª¨à«àªàª°àª«à«àª¸"
+msgstr "PackageKit Debuginfo Installer"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
+#, 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
+#: ../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 ""
+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 "%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 ""
+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 ""
+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 ""
+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
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
+#, 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
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
+#, 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
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
+#, c-format
msgid "Failed to find the debuginfo package %s: %s"
-msgstr "પà«àªà«àª '%s' શà«àª§àªµàª¾àª®àª¾àª નિષà«àª«àª³: %s"
+msgstr "debuginfo પà«àªà«àª શà«àª§àª¤à« વàªàª¤à« નિષà«àª«àª³àª¤àª¾ %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 "સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« નવા પà«àªà«àªà«àª¨à« àªàª°à«àª° નથà«"
+msgstr "સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« પà«àªà«àªà«àª¨à« મળà«àª¯àª¾ નહિàª."
#. 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 "પà«àªà«àªà« ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«àª"
+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 ""
+msgstr "પà«àªà«àªà«àª¨à« શà«àª§à« રહà«àª¯àª¾ àªà« àªà« àªà« ઠપà«àªà«àªà« પર àªàª§àª¾àª° રાàªà« àªà«"
#. 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 "પà«àªà«àª '%s' શà«àª§àªµàª¾àª®àª¾àª નિષà«àª«àª³: %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 ""
+msgstr "%i બહારનાઠપà«àªà«àªà« મળà«àª¯àª¾."
#. 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 "પà«àªà«àª નામ àªàª°à«àª°à« àªà«"
+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
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
+#, 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
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:873
+#, c-format
msgid "Not installing packages in simulate mode"
-msgstr "પà«àªà«àªà«àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« રહà«àª¯àª¾ àªà«"
+msgstr "simulate સà«àª¥àª¿àª¤àª¿àª®àª¾àª પà«àªà«àªà«àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« રહà«àª¯àª¾ નથà«"
#. 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 "ઠસાધન પà«àªà«àªà« સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« શàªà«àª¯à«àª નહિàª: %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 ""
+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 ""
+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 Device Reloader"
#. 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"
@@ -1290,8 +1311,7 @@ msgid "Authentication is required to accept a EULA"
msgstr "EULA નૠસà«àªµà«àªàª¾àª°àªµàª¾ માàªà« સતà«àª¤àª¾àª§àª¿àªàª°àª£ àªàª°à«àª°à« àªà«"
#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
+msgid "Authentication is required to cancel a task that was not started by yourself"
msgstr "àªàª¾àª°à«àª¯àª¨à« રદ àªàª°àªµàª¾ માàªà« સતà«àª¤àª¾àª§àª¿àªàª°àª£ àªàª°à«àª°à« àªà« àªà« àªà« તમારà«àªàª¾àª¤à« શરૠથયà«àª² ન હતà«"
#: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1319,9 +1339,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"
@@ -1335,8 +1354,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"
@@ -1397,7 +1415,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
@@ -1518,43 +1536,47 @@ 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 "માતà«àª° વિશà«àª°à«àªµàª¾àª¸àªªàª¾àª¤à«àª°"
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« ૧ થૠ%i સà«àª§à«àª¨à« નàªàª¬àª° દાàªàª² àªàª°à«: "
+
commit deb70ebfcf570a0cfec026cde8180737dd60e24f
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date: Thu Sep 3 10:07:29 2009 +0200
typo: it's KDE, not Qt
diff --git a/docs/html/pk-intro.html b/docs/html/pk-intro.html
index 0fc1bc3..70458f3 100644
--- a/docs/html/pk-intro.html
+++ b/docs/html/pk-intro.html
@@ -64,7 +64,7 @@ tools for PackageKit to be used in the GNOME desktop.
</p>
<p>
<a href="http://www.kde-apps.org/content/show.php/show.php?content=84745">
-PackageKit-Qt</a> is the name of the QT graphical tools designed
+KPackageKit</a> is the name of the KDE graphical tools designed
for PackageKit.
</p>
commit 7ac15eb3610ff7fff4a74f1184e118ce2bc92eb4
Author: Anders F Bjorklund <afb at users.sourceforge.net>
Date: Thu Sep 3 10:04:29 2009 +0200
trivial: move the prints to separate file
diff --git a/backends/ports/portsBackend.rb b/backends/ports/portsBackend.rb
index 81af152..ea4a92a 100755
--- a/backends/ports/portsBackend.rb
+++ b/backends/ports/portsBackend.rb
@@ -26,6 +26,7 @@ PROGRAM_DIR=File.dirname(File.expand_path($PROGRAM_NAME))
$LOAD_PATH.unshift PROGRAM_DIR
require 'ruby_packagekit/enums'
+require 'ruby_packagekit/prints'
PACKAGE_IDS_DELIM = '&'
FILENAME_DELIM = '|'
@@ -824,67 +825,6 @@ end
#######################################################################
-def message(typ, msg)
- $stdout.printf "message\t%s\t%s\n", typ, msg
- $stdout.flush
-end
-
-def package(package_id, status, summary)
- $stdout.printf "package\t%s\t%s\t%s\n", status, package_id, summary
- $stdout.flush
-end
-
-def repo_detail(repoid, name, state)
- $stdout.printf "repo-detail\t%s\t%s\t%s\n", repoid, name, state
- $stdout.flush
-end
-
-def update_detail(package_id, updates, obsoletes, vendor_url, bugzilla_url, cve_url, restart, update_text, changelog, state, issued, updated)
- $stdout.printf "updatedetail\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", package_id, updates, obsoletes, vendor_url, bugzilla_url, cve_url, restart, update_text, changelog, state, issued, updated
- $stdout.flush
-end
-
-def details(package_id, package_license, group, desc, url, bytes)
- $stdout.printf "details\t%s\t%s\t%s\t%s\t%s\t%d\n", package_id, package_license, group, desc, url, bytes
- $stdout.flush
-end
-
-def files(package_id, file_list)
- $stdout.printf "files\t%s\t%s\n", package_id, file_list
- $stdout.flush
-end
-
-def status(state)
- $stdout.printf "status\t%s\n", state
- $stdout.flush
-end
-
-def error(err, description, exit=true)
- $stdout.printf "error\t%s\t%s\n", err, description
- $stdout.flush
- if exit
- finished
- exit(1)
- end
-end
-
-def percentage(percent=nil)
- if percent==nil
- $stdout.printf "finished\n"
- else percent == 0 or percent > $percentage_old
- $stdout.printf "percentage\t%i\n", percent
- $percentage_old = percent
- end
- $stdout.flush
-end
-
-def finished
- $stdout.printf "finished\n"
- $stdout.flush
-end
-
-#######################################################################
-
def to_b(string)
return true if string == true || string =~ /^true$/i
return false if string == false || string.nil? || string =~ /^false$/i
diff --git a/backends/ports/ruby_packagekit/Makefile.am b/backends/ports/ruby_packagekit/Makefile.am
index a1d7a7c..87db75e 100644
--- a/backends/ports/ruby_packagekit/Makefile.am
+++ b/backends/ports/ruby_packagekit/Makefile.am
@@ -4,6 +4,7 @@ NULL =
dist_helper_DATA = \
enums.rb \
+ prints.rb \
$(NULL)
clean-local :
diff --git a/backends/ports/ruby_packagekit/prints.rb b/backends/ports/ruby_packagekit/prints.rb
new file mode 100644
index 0000000..389720d
--- /dev/null
+++ b/backends/ports/ruby_packagekit/prints.rb
@@ -0,0 +1,59 @@
+def message(typ, msg)
+ $stdout.printf "message\t%s\t%s\n", typ, msg
+ $stdout.flush
+end
+
+def package(package_id, status, summary)
+ $stdout.printf "package\t%s\t%s\t%s\n", status, package_id, summary
+ $stdout.flush
+end
+
+def repo_detail(repoid, name, state)
+ $stdout.printf "repo-detail\t%s\t%s\t%s\n", repoid, name, state
+ $stdout.flush
+end
+
+def update_detail(package_id, updates, obsoletes, vendor_url, bugzilla_url, cve_url, restart, update_text, changelog, state, issued, updated)
+ $stdout.printf "updatedetail\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n", package_id, updates, obsoletes, vendor_url, bugzilla_url, cve_url, restart, update_text, changelog, state, issued, updated
+ $stdout.flush
+end
+
+def details(package_id, package_license, group, desc, url, bytes)
+ $stdout.printf "details\t%s\t%s\t%s\t%s\t%s\t%d\n", package_id, package_license, group, desc, url, bytes
+ $stdout.flush
+end
+
+def files(package_id, file_list)
+ $stdout.printf "files\t%s\t%s\n", package_id, file_list
+ $stdout.flush
+end
+
+def status(state)
+ $stdout.printf "status\t%s\n", state
+ $stdout.flush
+end
+
+def error(err, description, exit=true)
+ $stdout.printf "error\t%s\t%s\n", err, description
+ $stdout.flush
+ if exit
+ finished
+ exit(1)
+ end
+end
+
+def percentage(percent=nil)
+ if percent==nil
+ $stdout.printf "finished\n"
+ else percent == 0 or percent > $percentage_old
+ $stdout.printf "percentage\t%i\n", percent
+ $percentage_old = percent
+ end
+ $stdout.flush
+end
+
+def finished
+ $stdout.printf "finished\n"
+ $stdout.flush
+end
+
commit 277413b5378868a22e91f8936ee97bfa93cab04d
Author: Dennis Gregorovic <dgregor at redhat.com>
Date: Thu Sep 3 09:00:23 2009 +0100
yum: If we're on RHEL, then preupgrade functionality isn't available
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index b38f10a..38414c3 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2136,6 +2136,10 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.percentage(None)
self.status(STATUS_QUERY)
+ # if we're RHEL, then we don't have preupgrade
+ if not os.path.exists('/usr/share/preupgrade/releases.list'):
+ return
+
# parse the releases file
config = ConfigParser.ConfigParser()
config.read('/usr/share/preupgrade/releases.list')
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 8f2a873..d5c16c8 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -25,7 +25,9 @@ Requires: PackageKit-yum-plugin = %{version}-%{release}
Requires: PackageKit-yum = %{version}-%{release}
Requires: shared-mime-info
Requires: comps-extras
+%if 0%{?rhel} != 0
Requires: preupgrade
+%endif
BuildRequires: polkit >= %{polkit_version}
BuildRequires: glib2-devel >= %{glib2_version}
commit fc013bca5b0b120ca7a3efeeba31d825dbc453f4
Author: Tim Lauridsen <tim.lauridsen at googlemail.com>
Date: Thu Sep 3 08:48:18 2009 +0100
yum: Use NotImplementedError to fix a backtrace
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index d140a93..b38f10a 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2929,7 +2929,7 @@ class PackageKitYumBase(yum.YumBase):
try:
manager = MediaManager()
- except NotImplemented:
+ except NotImplementedError, e:
# yumRepo will catch this
raise yum.Errors.MediaError, "media handling is not implemented"
diff --git a/backends/yum/yumMediaManager.py b/backends/yum/yumMediaManager.py
index a8eaaa2..9147621 100644
--- a/backends/yum/yumMediaManager.py
+++ b/backends/yum/yumMediaManager.py
@@ -22,7 +22,6 @@ This is a module for dealing with removable media
NOTE: releasing (unmounting and unlocking) is done when media is destructed
"""
-
class MediaDevice(object):
"""
You should just use acquire() to get the mount point (the implementation is
@@ -36,7 +35,7 @@ class MediaDevice(object):
"""
self._unmount_needed = False
self._unlock_needed = False
- raise NotImplemented
+ raise NotImplementedError()
def __del__(self):
"""
@@ -49,36 +48,36 @@ class MediaDevice(object):
self.unlock()
def is_removable(self):
- raise NotImplemented
+ raise NotImplementedError()
def is_mounted(self):
- raise NotImplemented
+ raise NotImplementedError()
def is_locked(self):
- raise NotImplemented
+ raise NotImplementedError()
def get_mount_point(self):
"""return the mount point or None if not mounted"""
- raise NotImplemented
+ raise NotImplementedError()
def lock(self):
"""return True if lock is successfully acquired."""
- raise NotImplemented
+ raise NotImplementedError()
def unlock(self):
"""return True if it was able to release the lock successfully."""
- raise NotImplemented
+ raise NotImplementedError()
def mount(self):
"""
mount the device and return the mount point.
If it's already mounted, just return the mount point.
"""
- raise NotImplemented
+ raise NotImplementedError()
def unmount(self):
"""unmount the device and return True."""
- raise NotImplemented
+ raise NotImplementedError()
# no need to re-implement the following methods when you derive from this class
def acquire(self):
@@ -98,8 +97,8 @@ class MediaDevice(object):
class MediaManager (object):
"""Just iterate over an instance of this class to get MediaDevice objects"""
def __init__(self):
- raise NotImplemented
+ raise NotImplementedError()
def __iter__(self):
- raise NotImplemented
+ raise NotImplementedError()
commit e6e75f3f8d628bcec4607f007e58c005e42c45cd
Author: anipeter <anipeter at fedoraproject.org>
Date: Thu Sep 3 06:06:04 2009 +0000
Sending translation for Malayalam
diff --git a/po/ml.po b/po/ml.po
index e55d0c5..0dfe8be 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,243 +7,277 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.ml\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-07-15 17:19+0530\n"
+"POT-Creation-Date: 2009-09-03 02:38+0000\n"
+"PO-Revision-Date: 2009-09-03 11:33+0530\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\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"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238
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
msgid "System time"
msgstr "സിസàµà´±àµà´±à´ സമയà´"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242
msgid "Succeeded"
msgstr "à´à´à´ªà´¾à´àµàµ à´ªàµà´°àµâà´¤àµà´¤à´¿à´¯à´¾à´¯à´¿"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
msgid "True"
msgstr "True"
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242
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 ../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
msgid "Duration"
msgstr "സമയà´"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249
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 ../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
msgid "User ID"
msgstr "à´à´ªà´¯àµà´àµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262
msgid "Username"
msgstr "à´à´ªà´¯àµà´àµà´¤àµà´¨à´¾à´®à´"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266
msgid "Real name"
msgstr "യഥാരàµâà´¤àµà´¥ à´ªàµà´°àµàµ"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274
msgid "Affected packages:"
msgstr "ബാധിà´àµà´ പാà´àµà´àµà´àµà´à´³àµâ:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276
msgid "Affected packages: None"
msgstr "ബാധിà´àµà´ പാà´àµà´àµà´àµà´à´³àµâ: à´à´¨àµà´¨àµà´®à´¿à´²àµà´²"
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be removed:"
+msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´£àµà´à´¤àµà´£àµà´àµàµ."
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be installed:"
+msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´£àµà´à´¤à´¾à´£àµàµ:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be updated:"
+msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ പരിഷàµà´à´°à´¿à´àµà´àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be reinstalled:"
+msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´µàµà´£àµà´àµà´ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349
+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:363
msgid "Distribution"
msgstr "വിതരണà´"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365
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:367 ../client/pk-console.c:390
msgid "Summary"
msgstr "സമàµà´®à´±à´¿"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379
msgid "Category"
msgstr "വിà´à´¾à´à´"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384
msgid "Parent"
msgstr "à´ªàµà´°à´¨àµà´±àµ"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387
msgid "Name"
msgstr "à´ªàµà´°àµàµ"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393
msgid "Icon"
msgstr "à´à´¿à´¹àµà´¨à´"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408
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:410 ../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:413
msgid "Updates"
msgstr "പരിഷàµà´à´°à´£à´àµà´à´³àµâ"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417
msgid "Obsoletes"
msgstr "à´µàµà´£àµà´àµà´¨àµà´¨àµàµ à´µà´àµà´à´µ"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421
msgid "Vendor"
msgstr "à´à´àµà´à´µà´à´àµà´à´¾à´°à´¨àµâ"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429
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
msgid "Restart"
msgstr "à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437
msgid "Update text"
msgstr "പരിഷàµà´à´°à´¿à´àµà´ വാà´à´à´"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441
msgid "Changes"
msgstr "മാറàµà´±à´àµà´à´³àµâ"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445
msgid "State"
msgstr "à´
വസàµà´¥"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450
msgid "Issued"
msgstr "നലàµâà´à´¿à´¯à´¤àµàµ"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455
msgid "Updated"
msgstr "പരിഷàµà´à´°à´¿à´àµà´à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ"
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475
+msgid "Enabled"
+msgstr "à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¨ à´¸à´àµà´à´"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478
+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 "à´
പരിà´à´¿à´¤à´"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:599
msgid "System restart required by:"
msgstr "സിസàµà´±àµà´±à´ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´¨àµà´¨à´¤àµàµ à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602
msgid "Session restart required:"
msgstr "à´¸àµà´·à´¨àµâ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
+#: ../client/pk-console.c:605
msgid "System restart (security) required by:"
msgstr "സിസàµà´±àµà´±à´ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´¨àµà´¨à´¤àµàµ (à´¸àµà´°à´àµà´·à´¾ പരിഷàµà´à´°à´£à´) à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:530
+#: ../client/pk-console.c:608
msgid "Session restart (security) required:"
msgstr "à´¸àµà´·à´¨àµâ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´¨àµà´¨à´¤àµàµ (à´¸àµà´°à´àµà´·à´¾ പരിഷàµà´à´°à´£à´) à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:533
+#: ../client/pk-console.c:611
msgid "Application restart required by:"
msgstr "à´ªàµà´°à´¯àµà´à´ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´£àµà´à´¤àµàµ à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666
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:669
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: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:597
+#: ../client/pk-console.c:675
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -252,7 +286,7 @@ msgstr ""
"à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:600
+#: ../client/pk-console.c:678
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -261,544 +295,554 @@ msgstr ""
"à´àµà´¯àµà´¯àµà´."
#. 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 "%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: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: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 "à´à´¨àµà´¤à´°à´¿à´ പിശà´àµ: %s"
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266
+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
+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: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:791
+#: ../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:847
+#: ../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: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 "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ പാà´àµà´àµà´àµà´à´³àµâ à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´²àµà´²: %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:1104
+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:1109
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: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:1004
+#: ../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: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 "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ %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 "പാà´àµà´àµà´àµ à´ªàµà´¤àµà´àµà´à´²àµâ റദàµà´¦à´¾à´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ!"
+
#. 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 "%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 "%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 "%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 "%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 "%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"
#. 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 "പാà´àµà´àµà´àµ à´¸à´à´¬à´¨àµà´§à´¿à´àµà´àµà´³àµà´³ വിവരഠലà´àµà´¯à´®à´¾à´àµà´¨àµà´¨àµ"
#. 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 "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ പാà´àµà´àµà´àµà´à´³àµà´àµ à´ªà´àµà´à´¿à´ à´²à´àµà´¯à´®à´¾à´àµà´àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %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 "à´¡à´¿à´¸àµà´à´¿à´²àµà´àµà´àµàµ à´¸àµà´àµà´·à´¿à´àµà´àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. 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"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1512
msgid "Packages to add"
msgstr "à´àµà´°àµâà´àµà´àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµâ"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1520
msgid "Packages to remove"
msgstr "à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµâ"
#. 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 "à´ªàµà´¤à´¿à´¯ പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. 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
msgid "not found."
msgstr "à´²à´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²."
#. 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 "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµâ à´²à´àµà´¯à´®à´²àµà´²"
#. 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 "പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ"
#. 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 "%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 "%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 "പിശà´àµ:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1716
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:1732
msgid "Message:"
msgstr "സനàµà´¦àµà´¶à´:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760
msgid "Package files"
msgstr "പാà´àµà´àµà´à´¿à´²àµà´³àµà´³ ഫയലàµà´à´³àµâ"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768
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:1791
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:1801
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:1805
msgid "The signature was not accepted."
msgstr "à´à´ªàµà´ªàµ à´¸àµà´µàµà´à´°à´¿à´àµà´àµà´¨àµà´¨à´¿à´²àµà´²."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../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:1604
+#: ../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:1608
+#: ../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:1637
+#: ../client/pk-console.c:1879
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:1932
msgid "PackageKit Console Interface"
msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±àµ à´à´£àµâà´¸àµà´³àµâ à´à´¨àµà´±à´°àµâà´«àµà´¯à´¿à´¸àµ"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934
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:2027 ../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:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../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:2033
msgid "Set the filter, e.g. installed"
msgstr "à´«à´¿à´²àµââà´±àµà´±à´°àµâ à´àµà´°à´®à´¿à´à´°à´¿à´àµà´àµà´, e.g. à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036
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:2063
msgid "This tool could not connect to system DBUS."
msgstr "സിസàµà´±àµà´±à´ à´¡àµà´¬à´¸à´¿à´²àµà´àµà´àµ à´à´£à´àµà´àµ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´²àµà´²."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2153
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
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
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
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: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:1986
+#: ../client/pk-console.c:2228
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:2237
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:2245
msgid "A destination directory and the package names to download are required"
msgstr "à´à´¤àµàµ ഡയറà´àµà´à´±à´¿ à´à´¨àµà´¨àµà´ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµà´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2252
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:2260
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:2270
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:2287
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:2296 ../client/pk-console.c:2305
msgid "A repository name is required"
msgstr "à´¸à´à´à´°à´£à´¿à´¯àµà´àµà´àµà´³àµà´³ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2314
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:2328
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:2335
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:2342
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-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:2140
+#: ../client/pk-console.c:2382
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: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
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:2483
#, 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:2496
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:2499
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
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+#: ../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 à´à´£àµà´à´¾à´àµà´à´¿à´¯à´¤à´¿à´¨à´¾à´²àµâ, സരàµâà´µàµà´¸àµ പാà´àµà´àµà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´¨àµà´¨à´¤à´²àµà´²."
+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"
@@ -810,29 +854,24 @@ msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±àµ നിരàµà´àµà´·à´à´¨àµ
#: ../client/pk-monitor.c:183
msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "à´à´à´ªà´¾à´àµà´à´³àµâ à´à´¾à´£à´¿à´àµà´àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´²àµà´²"
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
+#: ../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..."
@@ -890,24 +929,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
@@ -990,275 +1027,263 @@ msgid "Failed to find the package %s, or already installed: %s"
msgstr "%s à´à´¨àµà´¨ പാà´àµà´àµà´àµ നിലവിലàµâ à´²à´àµà´¯à´®à´²àµà´² à´
à´²àµà´²àµà´àµà´à´¿à´²àµâ à´à´®àµà´ªàµà´¯àµà´àµà´à´±à´¿à´²àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ: %s"
#. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
+#: ../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 Installer"
#. 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 റിപàµà´ªàµà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ."
#. 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 "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 "à´®àµà´®àµà´ªàµ à´¸à´àµà´à´®à´¾à´àµà´à´¿à´¯ à´¸àµà´´àµà´¸àµà´à´³àµâ à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¨ രഹിതമാà´àµà´àµà´¨àµà´¨àµ"
#. 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 à´¡àµà´¬à´àµà´à´¿à´àµ à´¸àµà´´àµà´¸àµà´à´³àµâ à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¨ രഹിതമാà´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ."
#. TRANSLATORS: couldn't open device to write
#: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
msgid "Failed to open file"
-msgstr "ഫയലàµâ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
+msgstr "ഫയലàµâ à´¤àµà´±à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
#. TRANSLATORS: could not write to the device
#: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
msgid "Failed to write to the file"
-msgstr "ഫയലàµâ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
+msgstr "ഫയലിലàµà´àµà´àµ à´à´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
#. TRANSLATORS: we failed to release the current driver
#: ../contrib/device-rebind/pk-device-rebind.c:110
#: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
msgid "Failed to write to device"
-msgstr "à´¡à´¿à´¸àµà´à´¿à´²àµà´àµà´àµàµ à´¸àµà´àµà´·à´¿à´àµà´àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
+msgstr "à´¡à´¿à´µàµà´¸à´¿à´²àµà´àµà´àµ à´à´´àµà´¤àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
#. TRANSLATORS: the device could not be found in sysfs
#: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
msgid "Device could not be found"
-msgstr "പാà´àµà´àµà´àµ à´²à´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
+msgstr "à´¡à´¿à´µàµà´¸àµ à´²à´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. TRANSLATORS: we failed to release the current driver
#: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
msgid "Failed to unregister driver"
-msgstr "ഡയറà´àµà´à´±à´¿ à´à´£àµà´à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´:"
+msgstr "à´¡àµà´°àµà´µà´°àµâ à´
à´£àµâà´°à´à´¿à´¸àµà´à´°àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´:"
#. TRANSLATORS: we failed to bind the old driver
#: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
msgid "Failed to register driver"
-msgstr "ഡയറà´àµà´à´±à´¿ à´à´£àµà´à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´:"
+msgstr "à´¡àµà´°àµà´µà´°àµâ à´°àµâà´°à´à´¿à´¸àµà´à´°àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´:"
#. TRANSLATORS: user did not specify a device sysfs path that exists
#: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
msgid "Device path not found"
-msgstr "ഡയറà´àµà´à´±à´¿ à´²à´àµà´¯à´®à´²àµà´²"
+msgstr "à´¡à´¿à´µàµà´¸àµ പാഥൠലà´àµà´¯à´®à´²àµà´²"
#. TRANSLATORS: user did not specify a valid device sysfs path
#: ../contrib/device-rebind/pk-device-rebind.c:268
msgid "Incorrect device path specified"
-msgstr ""
+msgstr "à´¤àµà´±àµà´±à´¾à´¯ à´¡à´¿à´µàµà´¸àµ പാഥൠനലàµâà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ"
#. command line argument, simulate what would be done, but don't actually do it
#: ../contrib/device-rebind/pk-device-rebind.c:296
-#, fuzzy
msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr "പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´£àµà´ à´ªà´à´°à´, à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´£àµà´à´µ സിമàµà´²àµà´±àµà´±àµ à´àµà´¯àµà´¯àµà´"
+msgstr "ഹാരàµâà´¡àµâà´µàµà´¯à´±à´¿à´²àµâ à´àµà´¯àµà´¯àµà´£àµà´à´¤àµà´¨àµà´¤àµà´¨àµà´¨àµàµ സിമàµà´²àµà´±àµà´±àµ à´àµà´¯àµà´¤àµàµ à´à´¾à´£à´¿à´àµà´àµà´"
#. TRANSLATORS: command line option: a list of files to install
#: ../contrib/device-rebind/pk-device-rebind.c:299
msgid "Device paths"
-msgstr ""
+msgstr "à´¡à´¿à´µàµà´¸àµ പാഥàµà´à´³àµâ"
#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
#: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
msgid "PackageKit Device Reloader"
-msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±à´¿à´¨àµà´³àµà´³ സരàµâà´µàµà´¸àµ പാà´àµà´àµ"
+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 "ശരിയായ à´à´°àµ à´¡à´¿à´µàµà´¸àµ പാഥàµà´àµà´à´¿à´²àµà´ നലàµâà´àµà´£àµà´à´¤àµà´£àµà´àµàµ"
#. 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"
@@ -1287,8 +1312,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
@@ -1316,9 +1340,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"
@@ -1395,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
@@ -1468,8 +1491,7 @@ msgstr "ശരിയായ à´à´ªà´¯àµà´àµà´¤à´¾à´µà´²àµà´² à´à´àµà´¸à´¿à
msgid ""
"The org.freedesktop.PackageKit.conf file is not installed in the system "
"directory:"
-msgstr ""
-"സിസàµà´±àµà´±à´ ഡയറà´àµà´à´±à´¿à´¯à´¿à´²àµâ org.freedesktop.PackageKit.conf ഫയലàµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤à´¿à´àµà´à´¿à´²àµà´²:"
+msgstr "സിസàµà´±àµà´±à´ ഡയറà´àµà´à´±à´¿à´¯à´¿à´²àµâ org.freedesktop.PackageKit.conf ഫയലàµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤à´¿à´àµà´à´¿à´²àµà´²:"
#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
#: ../src/pk-main.c:205
@@ -1530,7 +1552,6 @@ msgid "Do not update this package unless you are sure it is safe to do so."
msgstr "ഠപാà´àµà´àµà´àµ à´¸àµà´°à´àµà´·à´¿à´¤à´®à´¾à´£àµàµ à´à´¨àµà´¨àµà´±à´ªàµà´ªàµàµ വരàµà´¤àµà´¤à´¾à´¤àµ à´à´¤àµàµ പരിഷàµà´à´°à´¿à´àµà´à´°àµà´¤àµ."
#: ../src/pk-polkit-action-lookup.c:174
-#, fuzzy
msgid "Do not update these packages unless you are sure it is safe to do so."
msgstr "ഠപാà´àµà´àµà´àµ à´¸àµà´°à´àµà´·à´¿à´¤à´®à´¾à´£àµàµ à´à´¨àµà´¨àµà´±à´ªàµà´ªàµàµ വരàµà´¤àµà´¤à´¾à´¤àµ à´à´¤àµàµ പരിഷàµà´à´°à´¿à´àµà´à´°àµà´¤àµ."
@@ -1539,7 +1560,6 @@ msgid "Do not install this package unless you are sure it is safe to do so."
msgstr "ഠപാà´àµà´àµà´àµ à´¸àµà´°à´àµà´·à´¿à´¤à´®à´¾à´£àµàµ à´à´¨àµà´¨àµà´±à´ªàµà´ªàµàµ വരàµà´¤àµà´¤à´¾à´¤àµ à´à´¤àµàµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯à´°àµà´¤àµàµ."
#: ../src/pk-polkit-action-lookup.c:193
-#, fuzzy
msgid "Do not install these packages unless you are sure it is safe to do so."
msgstr "ഠപാà´àµà´àµà´àµ à´¸àµà´°à´àµà´·à´¿à´¤à´®à´¾à´£àµàµ à´à´¨àµà´¨àµà´±à´ªàµà´ªàµàµ വരàµà´¤àµà´¤à´¾à´¤àµ à´à´¤àµàµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯à´°àµà´¤àµàµ."
@@ -1550,11 +1570,16 @@ 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 "à´àµà´°à´¸àµà´±àµà´±à´¡àµ മാതàµà´°à´"
+
+#: ../client/pk-text.c:50
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "ദയവായി 1 à´®àµà´¤à´²àµâ %i വരàµà´¯àµà´³àµà´³ à´à´°àµ à´
à´àµà´à´ നലàµâà´àµà´: "
+
commit dca807e07e77336b6a23be8fce5969c493f01d83
Author: Adrien Bustany <madcat at mymadcat.com>
Date: Wed Sep 2 12:39:03 2009 -0400
PackageKit-Qt : migrate to the new properties based API
diff --git a/lib/packagekit-qt/src/daemonproxy.h b/lib/packagekit-qt/src/daemonproxy.h
index 45287c6..4d7ebdc 100644
--- a/lib/packagekit-qt/src/daemonproxy.h
+++ b/lib/packagekit-qt/src/daemonproxy.h
@@ -1,15 +1,15 @@
/*
- * This file was generated by dbusxml2cpp version 0.6
- * Command line was: dbusxml2cpp -c DaemonProxy -p daemonproxy.h /home/madcat/code/PackageKit/src/org.freedesktop.PackageKit.xml org.freedesktop.PackageKit
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c DaemonProxy -p daemonproxy.h /home/madcat/code/PackageKit/src/org.freedesktop.PackageKit.xml org.freedesktop.PackageKit
*
- * dbusxml2cpp is Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+ * qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
*
* This is an auto-generated file.
* Do not edit! All changes made to it will be lost.
*/
-#ifndef DAEMONPROXY_H_1228501948
-#define DAEMONPROXY_H_1228501948
+#ifndef DAEMONPROXY_H_1251899971
+#define DAEMONPROXY_H_1251899971
#include <QtCore/QObject>
#include <QtCore/QByteArray>
@@ -20,11 +20,11 @@
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>
+namespace PackageKit {
+
/*
* Proxy class for interface org.freedesktop.PackageKit
*/
-namespace PackageKit {
-
class DaemonProxy: public QDBusAbstractInterface
{
Q_OBJECT
@@ -37,13 +37,37 @@ public:
~DaemonProxy();
+ Q_PROPERTY(uint VersionMajor READ versionMajor)
+ inline uint versionMajor() const
+ { return qvariant_cast< uint >(internalPropGet("VersionMajor")); }
+
+ Q_PROPERTY(uint VersionMicro READ versionMicro)
+ inline uint versionMicro() const
+ { return qvariant_cast< uint >(internalPropGet("VersionMicro")); }
+
+ Q_PROPERTY(uint VersionMinor READ versionMinor)
+ inline uint versionMinor() const
+ { return qvariant_cast< uint >(internalPropGet("VersionMinor")); }
+
public Q_SLOTS: // METHODS
- inline QDBusReply<QString> GetActions()
+ inline QDBusPendingReply<QString> CanAuthorize(const QString &action_id)
+ {
+ QList<QVariant> argumentList;
+ argumentList << qVariantFromValue(action_id);
+ return asyncCallWithArgumentList(QLatin1String("CanAuthorize"), argumentList);
+ }
+
+ inline QDBusPendingReply<QString> GetActions()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetActions"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetActions"), argumentList);
}
+ inline QDBusPendingReply<QString, QString> GetBackendDetail()
+ {
+ QList<QVariant> argumentList;
+ return asyncCallWithArgumentList(QLatin1String("GetBackendDetail"), argumentList);
+ }
inline QDBusReply<QString> GetBackendDetail(QString &author)
{
QList<QVariant> argumentList;
@@ -54,67 +78,73 @@ public Q_SLOTS: // METHODS
return reply;
}
- inline QDBusReply<QString> GetFilters()
+ inline QDBusPendingReply<QString> GetDaemonState()
+ {
+ QList<QVariant> argumentList;
+ return asyncCallWithArgumentList(QLatin1String("GetDaemonState"), argumentList);
+ }
+
+ inline QDBusPendingReply<QString> GetFilters()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetFilters"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetFilters"), argumentList);
}
- inline QDBusReply<QString> GetGroups()
+ inline QDBusPendingReply<QString> GetGroups()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetGroups"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetGroups"), argumentList);
}
- inline QDBusReply<QString> GetMimeTypes()
+ inline QDBusPendingReply<QString> GetMimeTypes()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetMimeTypes"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetMimeTypes"), argumentList);
}
- inline QDBusReply<QString> GetNetworkState()
+ inline QDBusPendingReply<QString> GetNetworkState()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetNetworkState"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetNetworkState"), argumentList);
}
- inline QDBusReply<QString> GetTid()
+ inline QDBusPendingReply<QString> GetTid()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetTid"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetTid"), argumentList);
}
- inline QDBusReply<uint> GetTimeSinceAction(const QString &role)
+ inline QDBusPendingReply<uint> GetTimeSinceAction(const QString &role)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(role);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetTimeSinceAction"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetTimeSinceAction"), argumentList);
}
- inline QDBusReply<QStringList> GetTransactionList()
+ inline QDBusPendingReply<QStringList> GetTransactionList()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetTransactionList"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetTransactionList"), argumentList);
}
- inline QDBusReply<void> SetProxy(const QString &proxy_http, const QString &proxy_ftp)
+ inline QDBusPendingReply<> SetProxy(const QString &proxy_http, const QString &proxy_ftp)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(proxy_http) << qVariantFromValue(proxy_ftp);
- return callWithArgumentList(QDBus::Block, QLatin1String("SetProxy"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SetProxy"), argumentList);
}
- inline QDBusReply<void> StateHasChanged(const QString &reason)
+ inline QDBusPendingReply<> StateHasChanged(const QString &reason)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(reason);
- return callWithArgumentList(QDBus::Block, QLatin1String("StateHasChanged"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("StateHasChanged"), argumentList);
}
- inline QDBusReply<void> SuggestDaemonQuit()
+ inline QDBusPendingReply<> SuggestDaemonQuit()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("SuggestDaemonQuit"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SuggestDaemonQuit"), argumentList);
}
Q_SIGNALS: // SIGNALS
@@ -126,8 +156,6 @@ Q_SIGNALS: // SIGNALS
void UpdatesChanged();
};
-} // End namespace PackageKit
-
-
+} // namespace PackageKit
#endif
diff --git a/lib/packagekit-qt/src/transaction.cpp b/lib/packagekit-qt/src/transaction.cpp
index df7e498..adbcb2a 100644
--- a/lib/packagekit-qt/src/transaction.cpp
+++ b/lib/packagekit-qt/src/transaction.cpp
@@ -71,9 +71,7 @@ Transaction::Transaction(const QString& tid, const QString& timespec, bool succe
d->tid = tid;
d->timespec = QDateTime::fromString(timespec, Qt::ISODate);
d->succeeded = succeeded;
- RoleInfo r;
- r.action = (Client::Action)Util::enumFromString<Client>(role, "Action", "Action");
- d->role = r;
+ d->role = (Client::Action)Util::enumFromString<Client>(role, "Action", "Action");
d->duration = duration;
d->data = data;
d->uid = uid;
@@ -99,12 +97,12 @@ Client::DaemonError Transaction::error () const
bool Transaction::allowCancel()
{
- return d->p->GetAllowCancel().value();
+ return d->p->allowCancel ();
}
bool Transaction::callerActive()
{
- return d->p->IsCallerActive().value();
+ return d->p->callerActive ();
}
void Transaction::cancel()
@@ -117,7 +115,7 @@ void Transaction::cancel()
Package* Transaction::lastPackage()
{
- return new Package(d->p->GetPackageLast().value());
+ return new Package(d->p->lastPackage ());
}
Transaction::ProgressInfo Transaction::progress()
@@ -125,26 +123,20 @@ Transaction::ProgressInfo Transaction::progress()
uint p, subp, elaps, rem;
p = d->p->GetProgress(subp, elaps, rem);
ProgressInfo i;
- i.percentage = p;
- i.subpercentage = subp;
+ i.percentage = d->p->percentage ();
+ i.subpercentage = d->p->subpercentage ();
i.elapsed = elaps;
i.remaining = rem;
return i;
}
-Transaction::RoleInfo Transaction::role()
+Client::Action Transaction::role()
{
if(d->oldtrans)
return d->role;
- QString terms;
- RoleInfo i;
-
- i.action = (Client::Action) Util::enumFromString<Client>(d->p->GetRole(terms).value(), "Action", "Action");
- i.terms = terms.split(";");
-
- return i;
+ return (Client::Action) Util::enumFromString<Client>(d->p->role (), "Action", "Action");
}
void Transaction::setLocale(const QString& locale)
@@ -154,7 +146,7 @@ void Transaction::setLocale(const QString& locale)
Transaction::Status Transaction::status()
{
- return (Transaction::Status) Util::enumFromString<Transaction>(d->p->GetStatus().value(), "Status", "Status");
+ return (Transaction::Status) Util::enumFromString<Transaction>(d->p->status (), "Status", "Status");
}
QDateTime Transaction::timespec()
@@ -179,7 +171,7 @@ QString Transaction::data()
uint Transaction::uid()
{
- return d->uid;
+ return d->p->uid ();
}
QString Transaction::cmdline()
diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index 81fa781..3b16e2a 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -126,19 +126,10 @@ public:
ProgressInfo progress();
/**
- * The RoleInfo is a describing the current state of a transaction
- * \li \c action describes the operation carried on by the transaction
- * \li \c terms are the terms (for example search terms) used when creating the transaction
- */
- typedef struct {
- Client::Action action;
- QStringList terms;
- } RoleInfo;
- /**
* Returns information describing the transaction
- * \return a RoleInfo struct describing the current transaction
+ * \return the current action of the transaction
*/
- RoleInfo role();
+ Client::Action role();
/**
* \brief Tells the underlying package manager to use the given \p locale
diff --git a/lib/packagekit-qt/src/transactionprivate.h b/lib/packagekit-qt/src/transactionprivate.h
index 4cec47f..d72bbbf 100644
--- a/lib/packagekit-qt/src/transactionprivate.h
+++ b/lib/packagekit-qt/src/transactionprivate.h
@@ -44,7 +44,7 @@ public:
// Only used for old transactions
bool oldtrans;
QDateTime timespec;
- Transaction::RoleInfo role;
+ Client::Action role;
bool succeeded;
uint duration;
QString data;
diff --git a/lib/packagekit-qt/src/transactionproxy.cpp b/lib/packagekit-qt/src/transactionproxy.cpp
index 0010f3d..734ac59 100644
--- a/lib/packagekit-qt/src/transactionproxy.cpp
+++ b/lib/packagekit-qt/src/transactionproxy.cpp
@@ -15,4 +15,5 @@ TransactionProxy::~TransactionProxy()
{
}
+
#include "transactionproxy.moc"
diff --git a/lib/packagekit-qt/src/transactionproxy.h b/lib/packagekit-qt/src/transactionproxy.h
index 015091a..a5deb90 100644
--- a/lib/packagekit-qt/src/transactionproxy.h
+++ b/lib/packagekit-qt/src/transactionproxy.h
@@ -1,15 +1,15 @@
/*
- * This file was generated by dbusxml2cpp version 0.6
- * Command line was: dbusxml2cpp -c TransactionProxy -p transactionproxy.h /home/madcat/code/PackageKit/src/org.freedesktop.PackageKit.Transaction.xml org.freedesktop.PackageKit.Transaction
+ * This file was generated by qdbusxml2cpp version 0.7
+ * Command line was: qdbusxml2cpp -c TransactionProxy -p transactionproxy.h /home/madcat/code/PackageKit/src/org.freedesktop.PackageKit.Transaction.xml org.freedesktop.PackageKit.Transaction
*
- * dbusxml2cpp is Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+ * qdbusxml2cpp is Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
*
* This is an auto-generated file.
* Do not edit! All changes made to it will be lost.
*/
-#ifndef TRANSACTIONPROXY_H_1228504363
-#define TRANSACTIONPROXY_H_1228504363
+#ifndef TRANSACTIONPROXY_H_1251898448
+#define TRANSACTIONPROXY_H_1251898448
#include <QtCore/QObject>
#include <QtCore/QByteArray>
@@ -37,86 +37,123 @@ public:
~TransactionProxy();
+ Q_PROPERTY(bool AllowCancel READ allowCancel)
+ inline bool allowCancel() const
+ { return qvariant_cast< bool >(internalPropGet("AllowCancel")); }
+
+ Q_PROPERTY(bool CallerActive READ callerActive)
+ inline bool callerActive() const
+ { return qvariant_cast< bool >(internalPropGet("CallerActive")); }
+
+ Q_PROPERTY(QString LastPackage READ lastPackage)
+ inline QString lastPackage() const
+ { return qvariant_cast< QString >(internalPropGet("LastPackage")); }
+
+ Q_PROPERTY(uint Percentage READ percentage)
+ inline uint percentage() const
+ { return qvariant_cast< uint >(internalPropGet("Percentage")); }
+
+ Q_PROPERTY(QString Role READ role)
+ inline QString role() const
+ { return qvariant_cast< QString >(internalPropGet("Role")); }
+
+ Q_PROPERTY(QString Status READ status)
+ inline QString status() const
+ { return qvariant_cast< QString >(internalPropGet("Status")); }
+
+ Q_PROPERTY(uint Subpercentage READ subpercentage)
+ inline uint subpercentage() const
+ { return qvariant_cast< uint >(internalPropGet("Subpercentage")); }
+
+ Q_PROPERTY(uint Uid READ uid)
+ inline uint uid() const
+ { return qvariant_cast< uint >(internalPropGet("Uid")); }
+
public Q_SLOTS: // METHODS
- inline QDBusReply<void> AcceptEula(const QString &eula_id)
+ inline QDBusPendingReply<> AcceptEula(const QString &eula_id)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(eula_id);
- return callWithArgumentList(QDBus::Block, QLatin1String("AcceptEula"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("AcceptEula"), argumentList);
}
- inline QDBusReply<void> Cancel()
+ inline QDBusPendingReply<> Cancel()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("Cancel"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("Cancel"), argumentList);
}
- inline QDBusReply<void> DownloadPackages(const QStringList &package_ids)
+ inline QDBusPendingReply<> DownloadPackages(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("DownloadPackages"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("DownloadPackages"), argumentList);
}
- inline QDBusReply<bool> GetAllowCancel()
+ inline QDBusPendingReply<bool> GetAllowCancel()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetAllowCancel"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetAllowCancel"), argumentList);
}
- inline QDBusReply<void> GetCategories()
+ inline QDBusPendingReply<> GetCategories()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetCategories"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetCategories"), argumentList);
}
- inline QDBusReply<void> GetDepends(const QString &filter, const QStringList &package_ids, bool recursive)
+ inline QDBusPendingReply<> GetDepends(const QString &filter, const QStringList &package_ids, bool recursive)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(package_ids) << qVariantFromValue(recursive);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetDepends"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetDepends"), argumentList);
}
- inline QDBusReply<void> GetDetails(const QStringList &package_ids)
+ inline QDBusPendingReply<> GetDetails(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetDetails"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetDetails"), argumentList);
}
- inline QDBusReply<void> GetDistroUpgrades()
+ inline QDBusPendingReply<> GetDistroUpgrades()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetDistroUpgrades"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetDistroUpgrades"), argumentList);
}
- inline QDBusReply<void> GetFiles(const QStringList &package_ids)
+ inline QDBusPendingReply<> GetFiles(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetFiles"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetFiles"), argumentList);
}
- inline QDBusReply<void> GetOldTransactions(uint number)
+ inline QDBusPendingReply<> GetOldTransactions(uint number)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(number);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetOldTransactions"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetOldTransactions"), argumentList);
}
- inline QDBusReply<QString> GetPackageLast()
+ inline QDBusPendingReply<QString> GetPackageLast()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetPackageLast"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetPackageLast"), argumentList);
}
- inline QDBusReply<void> GetPackages(const QString &filter)
+ inline QDBusPendingReply<> GetPackages(const QString &filter)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetPackages"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetPackages"), argumentList);
}
+ inline QDBusPendingReply<uint, uint, uint, uint> GetProgress()
+ {
+ QList<QVariant> argumentList;
+ return asyncCallWithArgumentList(QLatin1String("GetProgress"), argumentList);
+ }
inline QDBusReply<uint> GetProgress(uint &subpercentage, uint &elapsed, uint &remaining)
{
QList<QVariant> argumentList;
@@ -129,20 +166,25 @@ public Q_SLOTS: // METHODS
return reply;
}
- inline QDBusReply<void> GetRepoList(const QString &filter)
+ inline QDBusPendingReply<> GetRepoList(const QString &filter)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetRepoList"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetRepoList"), argumentList);
}
- inline QDBusReply<void> GetRequires(const QString &filter, const QStringList &package_ids, bool recursive)
+ inline QDBusPendingReply<> GetRequires(const QString &filter, const QStringList &package_ids, bool recursive)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(package_ids) << qVariantFromValue(recursive);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetRequires"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetRequires"), argumentList);
}
+ inline QDBusPendingReply<QString, QString> GetRole()
+ {
+ QList<QVariant> argumentList;
+ return asyncCallWithArgumentList(QLatin1String("GetRole"), argumentList);
+ }
inline QDBusReply<QString> GetRole(QString &text)
{
QList<QVariant> argumentList;
@@ -153,177 +195,177 @@ public Q_SLOTS: // METHODS
return reply;
}
- inline QDBusReply<QString> GetStatus()
+ inline QDBusPendingReply<QString> GetStatus()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("GetStatus"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetStatus"), argumentList);
}
- inline QDBusReply<void> GetUpdateDetail(const QStringList &package_ids)
+ inline QDBusPendingReply<> GetUpdateDetail(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetUpdateDetail"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetUpdateDetail"), argumentList);
}
- inline QDBusReply<void> GetUpdates(const QString &filter)
+ inline QDBusPendingReply<> GetUpdates(const QString &filter)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter);
- return callWithArgumentList(QDBus::Block, QLatin1String("GetUpdates"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("GetUpdates"), argumentList);
}
- inline QDBusReply<void> InstallFiles(bool only_trusted, const QStringList &full_paths)
+ inline QDBusPendingReply<> InstallFiles(bool only_trusted, const QStringList &full_paths)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(only_trusted) << qVariantFromValue(full_paths);
- return callWithArgumentList(QDBus::Block, QLatin1String("InstallFiles"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("InstallFiles"), argumentList);
}
- inline QDBusReply<void> InstallPackages(bool only_trusted, const QStringList &package_ids)
+ inline QDBusPendingReply<> InstallPackages(bool only_trusted, const QStringList &package_ids)
{
QList<QVariant> argumentList;
- argumentList << qVariantFromValue (only_trusted) << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("InstallPackages"), argumentList);
+ argumentList << qVariantFromValue(only_trusted) << qVariantFromValue(package_ids);
+ return asyncCallWithArgumentList(QLatin1String("InstallPackages"), argumentList);
}
- inline QDBusReply<void> InstallSignature(const QString &sig_type, const QString &key_id, const QString &package_id)
+ inline QDBusPendingReply<> InstallSignature(const QString &sig_type, const QString &key_id, const QString &package_id)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(sig_type) << qVariantFromValue(key_id) << qVariantFromValue(package_id);
- return callWithArgumentList(QDBus::Block, QLatin1String("InstallSignature"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("InstallSignature"), argumentList);
}
- inline QDBusReply<bool> IsCallerActive()
+ inline QDBusPendingReply<bool> IsCallerActive()
{
QList<QVariant> argumentList;
- return callWithArgumentList(QDBus::Block, QLatin1String("IsCallerActive"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("IsCallerActive"), argumentList);
}
- inline QDBusReply<void> RefreshCache(bool force)
+ inline QDBusPendingReply<> RefreshCache(bool force)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(force);
- return callWithArgumentList(QDBus::Block, QLatin1String("RefreshCache"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("RefreshCache"), argumentList);
}
- inline QDBusReply<void> RemovePackages(const QStringList &package_ids, bool allow_deps, bool autoremove)
+ inline QDBusPendingReply<> RemovePackages(const QStringList &package_ids, bool allow_deps, bool autoremove)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids) << qVariantFromValue(allow_deps) << qVariantFromValue(autoremove);
- return callWithArgumentList(QDBus::Block, QLatin1String("RemovePackages"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("RemovePackages"), argumentList);
}
- inline QDBusReply<void> RepoEnable(const QString &repo_id, bool enabled)
+ inline QDBusPendingReply<> RepoEnable(const QString &repo_id, bool enabled)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(repo_id) << qVariantFromValue(enabled);
- return callWithArgumentList(QDBus::Block, QLatin1String("RepoEnable"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("RepoEnable"), argumentList);
}
- inline QDBusReply<void> RepoSetData(const QString &repo_id, const QString ¶meter, const QString &value)
+ inline QDBusPendingReply<> RepoSetData(const QString &repo_id, const QString ¶meter, const QString &value)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(repo_id) << qVariantFromValue(parameter) << qVariantFromValue(value);
- return callWithArgumentList(QDBus::Block, QLatin1String("RepoSetData"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("RepoSetData"), argumentList);
}
- inline QDBusReply<void> Resolve(const QString &filter, const QStringList &package)
+ inline QDBusPendingReply<> Resolve(const QString &filter, const QStringList &package)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(package);
- return callWithArgumentList(QDBus::Block, QLatin1String("Resolve"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("Resolve"), argumentList);
}
- inline QDBusReply<void> Rollback(const QString &transaction_id)
+ inline QDBusPendingReply<> Rollback(const QString &transaction_id)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(transaction_id);
- return callWithArgumentList(QDBus::Block, QLatin1String("Rollback"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("Rollback"), argumentList);
}
- inline QDBusReply<void> SearchDetails(const QString &filter, const QString &search)
+ inline QDBusPendingReply<> SearchDetails(const QString &filter, const QString &search)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(search);
- return callWithArgumentList(QDBus::Block, QLatin1String("SearchDetails"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SearchDetails"), argumentList);
}
- inline QDBusReply<void> SearchFile(const QString &filter, const QString &search)
+ inline QDBusPendingReply<> SearchFile(const QString &filter, const QString &search)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(search);
- return callWithArgumentList(QDBus::Block, QLatin1String("SearchFile"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SearchFile"), argumentList);
}
- inline QDBusReply<void> SearchGroup(const QString &filter, const QString &search)
+ inline QDBusPendingReply<> SearchGroup(const QString &filter, const QString &search)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(search);
- return callWithArgumentList(QDBus::Block, QLatin1String("SearchGroup"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SearchGroup"), argumentList);
}
- inline QDBusReply<void> SearchName(const QString &filter, const QString &search)
+ inline QDBusPendingReply<> SearchName(const QString &filter, const QString &search)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(search);
- return callWithArgumentList(QDBus::Block, QLatin1String("SearchName"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SearchName"), argumentList);
}
- inline QDBusReply<void> SetLocale(const QString &code)
+ inline QDBusPendingReply<> SetLocale(const QString &code)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(code);
- return callWithArgumentList(QDBus::Block, QLatin1String("SetLocale"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SetLocale"), argumentList);
}
- inline QDBusReply<void> SimulateInstallFiles(const QStringList &full_paths)
+ inline QDBusPendingReply<> SimulateInstallFiles(const QStringList &full_paths)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(full_paths);
- return callWithArgumentList(QDBus::Block, QLatin1String("SimulateInstallFiles"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SimulateInstallFiles"), argumentList);
}
- inline QDBusReply<void> SimulateInstallPackages(const QStringList &package_ids)
+ inline QDBusPendingReply<> SimulateInstallPackages(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("SimulateInstallPackages"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SimulateInstallPackages"), argumentList);
}
- inline QDBusReply<void> SimulateRemovePackages(const QStringList &package_ids)
+ inline QDBusPendingReply<> SimulateRemovePackages(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("SimulateRemovePackages"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SimulateRemovePackages"), argumentList);
}
- inline QDBusReply<void> SimulateUpdatePackages(const QStringList &package_ids)
+ inline QDBusPendingReply<> SimulateUpdatePackages(const QStringList &package_ids)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("SimulateUpdatePackages"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("SimulateUpdatePackages"), argumentList);
}
- inline QDBusReply<void> UpdatePackages(bool only_trusted, const QStringList &package_ids)
+ inline QDBusPendingReply<> UpdatePackages(bool only_trusted, const QStringList &package_ids)
{
QList<QVariant> argumentList;
- argumentList << qVariantFromValue (only_trusted) << qVariantFromValue(package_ids);
- return callWithArgumentList(QDBus::Block, QLatin1String("UpdatePackages"), argumentList);
+ argumentList << qVariantFromValue(only_trusted) << qVariantFromValue(package_ids);
+ return asyncCallWithArgumentList(QLatin1String("UpdatePackages"), argumentList);
}
- inline QDBusReply<void> UpdateSystem(bool only_trusted)
+ inline QDBusPendingReply<> UpdateSystem(bool only_trusted)
{
QList<QVariant> argumentList;
- argumentList << qVariantFromValue (only_trusted);
- return callWithArgumentList(QDBus::Block, QLatin1String("UpdateSystem"), argumentList);
+ argumentList << qVariantFromValue(only_trusted);
+ return asyncCallWithArgumentList(QLatin1String("UpdateSystem"), argumentList);
}
- inline QDBusReply<void> WhatProvides(const QString &filter, const QString &type, const QString &search)
+ inline QDBusPendingReply<> WhatProvides(const QString &filter, const QString &type, const QString &search)
{
QList<QVariant> argumentList;
argumentList << qVariantFromValue(filter) << qVariantFromValue(type) << qVariantFromValue(search);
- return callWithArgumentList(QDBus::Block, QLatin1String("WhatProvides"), argumentList);
+ return asyncCallWithArgumentList(QLatin1String("WhatProvides"), argumentList);
}
Q_SIGNALS: // SIGNALS
@@ -335,21 +377,20 @@ Q_SIGNALS: // SIGNALS
void DistroUpgrade(const QString &type, const QString &name, const QString &summary);
void ErrorCode(const QString &code, const QString &details);
void EulaRequired(const QString &eula_id, const QString &package_id, const QString &vendor_name, const QString &license_agreement);
- void MediaChangeRequired(const QString &media_type, const QString &media_id, const QString &media_text);
void Files(const QString &package_id, const QString &file_list);
void Finished(const QString &exit, uint runtime);
+ void MediaChangeRequired(const QString &media_type, const QString &media_id, const QString &media_text);
void Message(const QString &type, const QString &details);
void Package(const QString &info, const QString &package_id, const QString &summary);
void ProgressChanged(uint percentage, uint subpercentage, uint elapsed, uint remaining);
void RepoDetail(const QString &repo_id, const QString &description, bool enabled);
void RepoSignatureRequired(const QString &package_id, const QString &repository_name, const QString &key_url, const QString &key_userid, const QString &key_id, const QString &key_fingerprint, const QString &key_timestamp, const QString &type);
- void RequireRestart(const QString &type, const QString &details);
+ void RequireRestart(const QString &type, const QString &package_id);
void StatusChanged(const QString &status);
void Transaction(const QString &old_tid, const QString ×pec, bool succeeded, const QString &role, uint duration, const QString &data, uint uid, const QString &cmdline);
void UpdateDetail(const QString &package_id, const QString &updates, const QString &obsoletes, const QString &vendor_url, const QString &bugzilla_url, const QString &cve_url, const QString &restart, const QString &update_text, const QString &changelog, const QString &state, const QString &issued, const QString &updated);
};
-} // End namespace PackageKit
-
+} // namespace PackageKit
#endif
commit e6dac257d91d1fa67082af3865aa05259723ea5a
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 21:35:07 2009 +0100
glib2: Add the start of a PkTask object to handle the client dance
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 9c837a1..4b1abb2 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -40,6 +40,7 @@ libpackagekit_glib2_include_HEADERS = \
pk-package-sack.h \
pk-progress.h \
pk-results.h \
+ pk-task.h \
$(NULL)
libpackagekit_glib2_la_SOURCES = \
@@ -70,6 +71,8 @@ libpackagekit_glib2_la_SOURCES = \
pk-progress.h \
pk-results.c \
pk-results.h \
+ pk-task.c \
+ pk-task.h \
pk-version.h \
$(NULL)
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index 623ecc8..ef83613 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -31,6 +31,7 @@
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-package-sack.h>
#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-task.h>
#include <packagekit-glib2/pk-version.h>
#undef __PACKAGEKIT_H_INSIDE__
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index a13abe8..18cd64a 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-sack.h"
#include "pk-results.h"
+#include "pk-task.h"
#include "pk-version.h"
int
@@ -56,6 +57,7 @@ main (int argc, char **argv)
pk_control_sync_test (test);
pk_client_test (test);
pk_package_sack_test (test);
+ pk_task_test (test);
return (egg_test_finish (test));
}
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
new file mode 100644
index 0000000..c3c64e4
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task.c
@@ -0,0 +1,520 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <errno.h>
+
+#include <string.h>
+#include <locale.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+
+#include <sys/wait.h>
+#include <fcntl.h>
+
+#include <glib/gi18n.h>
+#include <glib/gprintf.h>
+#include <dbus/dbus-glib.h>
+
+#include <packagekit-glib2/pk-task.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-results.h>
+
+#include "egg-debug.h"
+
+static void pk_task_finalize (GObject *object);
+
+#define PK_TASK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_TASK, PkTaskPrivate))
+
+/**
+ * PkTaskPrivate:
+ *
+ * Private #PkTask data
+ **/
+struct _PkTaskPrivate
+{
+ GPtrArray *array;
+};
+
+/**
+ * PkTaskState:
+ *
+ * For use in the async methods
+ **/
+typedef struct {
+ guint request;
+ PkRoleEnum role;
+ PkExitEnum exit_enum;
+ gboolean only_trusted;
+ gchar **package_ids;
+ GSimpleAsyncResult *res;
+ PkResults *results;
+ gboolean ret;
+ PkTask *task;
+ GCancellable *cancellable;
+ PkProgressCallback progress_callback;
+ gpointer progress_user_data;
+} PkTaskState;
+
+G_DEFINE_TYPE (PkTask, pk_task, PK_TYPE_CLIENT)
+
+static void pk_task_ready_cb (GObject *source_object, GAsyncResult *res, PkTaskState *state);
+
+/**
+ * pk_task_generate_request_id:
+ **/
+static guint
+pk_task_generate_request_id (void)
+{
+ static guint id = 0;
+ return ++id;
+}
+
+/**
+ * pk_task_find_by_request:
+ **/
+static PkTaskState *
+pk_task_find_by_request (PkTask *task, guint request)
+{
+ PkTaskState *item;
+ guint i;
+ GPtrArray *array;
+
+ g_return_val_if_fail (PK_IS_TASK (task), FALSE);
+ g_return_val_if_fail (request != 0, FALSE);
+
+ array = task->priv->array;
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ if (item->request == request)
+ goto out;
+ }
+ item = NULL;
+out:
+ return item;
+}
+
+/**
+ * pk_task_generic_state_finish:
+ **/
+static void
+pk_task_generic_state_finish (PkTaskState *state, const GError *error)
+{
+ /* remove weak ref */
+ 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 (state->results), g_object_unref);
+ } else {
+ /* FIXME: change g_simple_async_result_set_from_error() to accept const GError */
+ g_simple_async_result_set_from_error (state->res, (GError*) error);
+ }
+
+ /* complete */
+ g_simple_async_result_complete_in_idle (state->res);
+
+ /* remove from list */
+ egg_warning ("remove state");
+ g_ptr_array_remove (state->task->priv->array, state);
+
+ /* deallocate */
+ g_strfreev (state->package_ids);
+ g_object_unref (state->res);
+ g_slice_free (PkTaskState, state);
+}
+
+/**
+ * pk_task_do_async_action:
+ **/
+static void
+pk_task_do_async_action (PkTaskState *state)
+{
+ /* do the correct action */
+ if (state->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
+ /* start install async */
+ egg_debug ("doing install untrusted");
+ pk_client_install_packages_async (PK_CLIENT(state->task), state->only_trusted, state->package_ids,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_task_ready_cb, state);
+ } else {
+ g_assert_not_reached ();
+ }
+}
+
+/**
+ * pk_task_user_acceptance_idle_cb:
+ **/
+static gboolean
+pk_task_user_acceptance_idle_cb (PkTaskState *state)
+{
+ if (state->exit_enum == PK_EXIT_ENUM_KEY_REQUIRED)
+ egg_error ("need to do install-sig");
+ if (state->exit_enum == PK_EXIT_ENUM_EULA_REQUIRED)
+ egg_error ("need to do accept-eula");
+
+ /* doing task */
+ egg_debug ("continuing with request %i", state->request);
+ pk_task_do_async_action (state);
+
+ /* never repeat */
+ return FALSE;
+}
+
+/**
+ * pk_task_user_acceptance:
+ **/
+gboolean
+pk_task_user_acceptance (PkTask *task, guint request)
+{
+ PkTaskState *state;
+
+ /* get the not-yet-completed request */
+ state = pk_task_find_by_request (task, request);
+ if (state == NULL) {
+ egg_warning ("request %i not found", request);
+ return FALSE;
+ }
+
+ g_idle_add ((GSourceFunc) pk_task_user_acceptance_idle_cb, state);
+ return TRUE;
+}
+
+/**
+ * pk_task_ready_cb:
+ **/
+static void
+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;
+
+ /* get the results */
+ state->results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
+ if (state->results == NULL) {
+ egg_warning ("failed to resolve: %s", error->message);
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get exit code */
+ state->exit_enum = pk_results_get_exit_code (state->results);
+
+ /* need untrusted */
+ if (state->exit_enum == PK_EXIT_ENUM_NEED_UNTRUSTED) {
+ state->only_trusted = FALSE;
+
+ /* no support */
+ if (klass->untrusted_question == NULL) {
+ error = g_error_new (1, 0, "could not do untrusted question as no klass support");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* run the callback */
+ klass->untrusted_question (task, state->request, state->results);
+ goto out;
+ }
+
+ /* need key */
+ if (state->exit_enum == PK_EXIT_ENUM_KEY_REQUIRED) {
+ /* no support */
+ if (klass->key_question == NULL) {
+ error = g_error_new (1, 0, "could not do key question as no klass support");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* run the callback */
+ klass->key_question (task, state->request, state->results);
+ goto out;
+ }
+
+ /* need EULA */
+ if (state->exit_enum == PK_EXIT_ENUM_EULA_REQUIRED) {
+ /* no support */
+ if (klass->eula_question == NULL) {
+ error = g_error_new (1, 0, "could not do eula question as no klass support");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* run the callback */
+ klass->eula_question (task, state->request, state->results);
+ goto out;
+ }
+
+ /* need media change */
+ if (state->exit_enum == PK_EXIT_ENUM_MEDIA_CHANGE_REQUIRED) {
+ /* no support */
+ if (klass->media_change_question == NULL) {
+ error = g_error_new (1, 0, "could not do media change question as no klass support");
+ pk_task_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* run the callback */
+ klass->media_change_question (task, state->request, state->results);
+ goto out;
+ }
+
+ /* we can't handle this, just finish the async method */
+ state->ret = TRUE;
+
+ /* we're done */
+ pk_task_generic_state_finish (state, error);
+out:
+ return;
+}
+
+/**
+ * pk_task_install_packages_async:
+ * @task: a valid #PkTask instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Merges in details about packages using resolve.
+ **/
+void
+pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkTaskState *state;
+
+ g_return_if_fail (PK_IS_TASK (task));
+ g_return_if_fail (callback != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (task), callback, user_data, pk_task_install_packages_async);
+
+ /* save state */
+ state = g_slice_new0 (PkTaskState);
+ state->role = PK_ROLE_ENUM_INSTALL_PACKAGES;
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->task = task;
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->ret = FALSE;
+ state->only_trusted = TRUE;
+ state->package_ids = g_strdupv (package_ids);
+ state->request = pk_task_generate_request_id ();
+ g_object_add_weak_pointer (G_OBJECT (state->task), (gpointer) &state->task);
+
+ egg_warning ("adding state %p", state);
+ g_ptr_array_add (task->priv->array, state);
+
+ /* start trusted install async */
+ pk_task_do_async_action (state);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_task_generic_finish:
+ * @task: a valid #PkTask instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE for success
+ **/
+PkResults *
+pk_task_generic_finish (PkTask *task, GAsyncResult *res, GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (PK_IS_TASK (task), FALSE);
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ simple = G_SIMPLE_ASYNC_RESULT (res);
+
+ if (g_simple_async_result_propagate_error (simple, error))
+ return FALSE;
+
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/**
+ * pk_task_class_init:
+ * @klass: The PkTaskClass
+ **/
+static void
+pk_task_class_init (PkTaskClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = pk_task_finalize;
+
+ g_type_class_add_private (klass, sizeof (PkTaskPrivate));
+}
+
+/**
+ * pk_task_init:
+ * @task: This class instance
+ **/
+static void
+pk_task_init (PkTask *task)
+{
+ task->priv = PK_TASK_GET_PRIVATE (task);
+ task->priv->array = g_ptr_array_new ();
+}
+
+/**
+ * pk_task_finalize:
+ * @object: The object to finalize
+ **/
+static void
+pk_task_finalize (GObject *object)
+{
+ PkTask *task = PK_TASK (object);
+ g_ptr_array_unref (task->priv->array);
+ G_OBJECT_CLASS (pk_task_parent_class)->finalize (object);
+}
+
+/**
+ * pk_task_new:
+ *
+ * Return value: a new PkTask object.
+ **/
+PkTask *
+pk_task_new (void)
+{
+ PkTask *task;
+ task = g_object_new (PK_TYPE_TASK, NULL);
+ return PK_TASK (task);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static void
+pk_task_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+ PkTask *task = PK_TASK (object);
+ GError *error = NULL;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ GPtrArray *packages;
+ const PkResultItemPackage *item;
+ guint i;
+
+ /* get the results */
+ results = pk_task_generic_finish (task, res, &error);
+ if (results == NULL) {
+ egg_test_failed (test, "failed to resolve: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+ egg_test_failed (test, "failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+
+ packages = pk_results_get_package_array (results);
+ if (packages == NULL)
+ egg_test_failed (test, "no packages!");
+
+ /* list, just for shits and giggles */
+ for (i=0; i<packages->len; i++) {
+ item = g_ptr_array_index (packages, i);
+ egg_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+ }
+
+ if (packages->len != 5)
+ egg_test_failed (test, "invalid number of packages: %i", packages->len);
+
+ g_ptr_array_unref (packages);
+
+ egg_debug ("results exit enum = %s", pk_exit_enum_to_text (exit_enum));
+ egg_test_loop_quit (test);
+}
+
+static void
+pk_task_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *test)
+{
+ PkStatusEnum status;
+ if (type == PK_PROGRESS_TYPE_STATUS) {
+ g_object_get (progress,
+ "status", &status,
+ NULL);
+ egg_debug ("now %s", pk_status_enum_to_text (status));
+ }
+}
+
+void
+pk_task_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ PkTask *task;
+ gchar **package_ids;
+
+ if (!egg_test_start (test, "PkTask"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get task");
+ task = pk_task_new ();
+ egg_test_assert (test, task != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "install package");
+ package_ids = g_strsplit ("glib2;2.14.0;i386;fedora", ",", -1);
+ pk_task_install_packages_async (task, package_ids, NULL,
+ (PkProgressCallback) pk_task_test_progress_cb, test,
+ (GAsyncReadyCallback) pk_task_test_install_packages_cb, test);
+ g_strfreev (package_ids);
+ egg_test_loop_wait (test, 150000);
+ egg_test_success (test, "installed in %i", egg_test_elapsed (test));
+
+ g_object_unref (task);
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
new file mode 100644
index 0000000..8e17471
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task.h
@@ -0,0 +1,112 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offtask: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-task
+ * @short_description: An abstract package task GObject, dealing with unsigned
+ * transactions, GPG keys and EULA requests.
+ */
+
+#ifndef __PK_TASK_H
+#define __PK_TASK_H
+
+#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>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_TASK (pk_task_get_type ())
+#define PK_TASK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_TASK, PkTask))
+#define PK_TASK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_TASK, PkTaskClass))
+#define PK_IS_TASK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_TASK))
+#define PK_IS_TASK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_TASK))
+#define PK_TASK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_TASK, PkTaskClass))
+#define PK_TASK_ERROR (pk_task_error_quark ())
+#define PK_TASK_TYPE_ERROR (pk_task_error_get_type ())
+
+typedef struct _PkTaskPrivate PkTaskPrivate;
+typedef struct _PkTask PkTask;
+typedef struct _PkTaskClass PkTaskClass;
+typedef struct _PkTaskResults PkTaskResults;
+
+struct _PkTask
+{
+ PkClient parent;
+ PkTaskPrivate *priv;
+};
+
+struct _PkTaskClass
+{
+ PkClientClass parent_class;
+ void (*untrusted_question) (PkTask *task,
+ guint request,
+ const PkResults *results);
+ void (*key_question) (PkTask *task,
+ guint request,
+ const PkResults *results);
+ void (*eula_question) (PkTask *task,
+ guint request,
+ const PkResults *results);
+ void (*media_change_question) (PkTask *task,
+ guint request,
+ const PkResults *results);
+ /* padding for future expansion */
+ void (*_pk_reserved1) (void);
+ void (*_pk_reserved2) (void);
+ void (*_pk_reserved3) (void);
+ void (*_pk_reserved4) (void);
+ void (*_pk_reserved5) (void);
+};
+
+GQuark pk_task_error_quark (void);
+GType pk_task_get_type (void);
+PkTask *pk_task_new (void);
+void pk_task_test (gpointer user_data);
+
+PkResults *pk_task_generic_finish (PkTask *task,
+ GAsyncResult *res,
+ GError **error);
+
+void pk_task_install_packages_async (PkTask *task,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+/* TODO:
+ * pk_task_remove_packages_async
+ * pk_task_update_packages_async
+ */
+gboolean pk_task_user_acceptance (PkTask *task,
+ guint request);
+
+G_END_DECLS
+
+#endif /* __PK_TASK_H */
+
commit 67d187e7d62387b8392d9cb1303802f8f0f5222a
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 21:30:45 2009 +0100
glib2: trivially improve a gtk-doc description
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 0b292e6..4f06f80 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -23,7 +23,10 @@
* SECTION:pk-client
* @short_description: GObject class for PackageKit client access
*
- * A nice GObject to use for accessing PackageKit asynchronously
+ * A nice GObject to use for accessing PackageKit asynchronously. If you're
+ * using #PkClient to install, remove, or update packages, be prepared that
+ * the eula, gpg and trusted callbacks need to be rescheduled manually, as in
+ * http://www.packagekit.org/gtk-doc/introduction-ideas-transactions.html
*/
#include "config.h"
@@ -3277,8 +3280,6 @@ pk_client_test_progress_cb (PkProgress *progress, PkProgressType type, EggTest *
_allow_cancel_cb++;
if (type == PK_PROGRESS_TYPE_STATUS)
_status_cb++;
-
-// egg_debug ("percentage now %i", percentage);
}
static gboolean
commit f9e14c3ffcf2123b7ecdda300c7a0bd87b58c4f4
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 21:30:04 2009 +0100
trivial: fix make check
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e90ecaa..d9a2ebb 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -15,4 +15,5 @@ data/packagekit-servicepack.xml.in
policy/org.freedesktop.packagekit.policy.in
src/pk-main.c
src/pk-polkit-action-lookup.c
+client/pk-text.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index bb8a3b5..5bbff14 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,2 +1,3 @@
contrib/command-not-found/pk-tools-common.c
+contrib/command-not-found/pk-text.c
commit 80a51498fb09990d6a1d4968bd06f78592130e07
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 21:29:39 2009 +0100
glib2: remove unused code
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 5112a43..962a65c 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -74,12 +74,6 @@ enum {
SIGNAL_LAST
};
-enum {
- PROP_0,
- PROP_ID,
- PROP_LAST
-};
-
G_DEFINE_TYPE (PkPackageSack, pk_package_sack, G_TYPE_OBJECT)
/**
@@ -359,7 +353,6 @@ pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, const GError
} else {
/* FIXME: change g_simple_async_result_set_from_error() to accept const GError */
g_simple_async_result_set_from_error (state->res, (GError*) error);
-// g_error_free (error);
}
/* complete */
@@ -735,65 +728,15 @@ pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *ca
/***************************************************************************************************/
/**
- * pk_package_sack_get_property:
- **/
-static void
-pk_package_sack_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
-// PkPackageSack *sack = PK_PACKAGE_SACK (object);
-// PkPackageSackPrivate *priv = sack->priv;
-
- switch (prop_id) {
- case PROP_ID:
-// g_value_sack_string (value, priv->id);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-/**
- * pk_package_sack_set_property:
- **/
-static void
-pk_package_sack_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
-// PkPackageSack *sack = PK_PACKAGE_SACK (object);
-// PkPackageSackPrivate *priv = sack->priv;
-
- switch (prop_id) {
- case PROP_ID:
-// priv->info = g_value_get_uint (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-/**
* pk_package_sack_class_init:
* @klass: The PkPackageSackClass
**/
static void
pk_package_sack_class_init (PkPackageSackClass *klass)
{
- GParamSpec *pspec;
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->get_property = pk_package_sack_get_property;
- object_class->set_property = pk_package_sack_set_property;
object_class->finalize = pk_package_sack_finalize;
- /**
- * PkPackageSack:id:
- */
- pspec = g_param_spec_string ("id", NULL,
- "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_ID, pspec);
-
#if 0
/**
* PkPackageSack::changed:
commit 1355443c456588311d16867ae564bb576cbccc82
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 21:28:52 2009 +0100
dummy: add _use_trusted support to install_files
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index b20807b..e5d8425 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -45,6 +45,7 @@ static gboolean _use_blocked = FALSE;
static gboolean _use_eula = FALSE;
static gboolean _use_media = FALSE;
static gboolean _use_gpg = FALSE;
+static gboolean _use_trusted = TRUE;
static gboolean _use_distro_upgrade = FALSE;
static PkBitfield _filters = 0;
@@ -516,6 +517,13 @@ backend_install_packages (PkBackend *backend, gboolean only_trusted, gchar **pac
}
}
+ if (_use_trusted && only_trusted) {
+ pk_backend_error_code (backend, PK_ERROR_ENUM_CANNOT_INSTALL_REPO_UNSIGNED,
+ "Can't install as untrusted");
+ pk_backend_finished (backend);
+ return;
+ }
+
pk_backend_set_allow_cancel (backend, TRUE);
_progress_percentage = 0;
pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
@@ -1073,6 +1081,8 @@ backend_repo_set_data (PkBackend *backend, const gchar *rid, const gchar *parame
_use_media = atoi (value);
else if (g_strcmp0 (parameter, "use-gpg") == 0)
_use_gpg = atoi (value);
+ else if (g_strcmp0 (parameter, "use-trusted") == 0)
+ _use_trusted = atoi (value);
else if (g_strcmp0 (parameter, "use-distro-upgrade") == 0)
_use_distro_upgrade = atoi (value);
else
commit 4f27ac643c096428f571d0b3a788f992c348f144
Author: warrink <warrink at fedoraproject.org>
Date: Wed Sep 2 19:50:58 2009 +0000
Sending translation for Dutch
diff --git a/po/nl.po b/po/nl.po
index 03cdcc4..1419bc3 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,16 +1,18 @@
# 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-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-06-17 14:16+0200\n"
-"Last-Translator: R.E. van der Luit <nippur at fedoraproject.org>\n"
-"Language-Team: Dutch <nippur at fedoraproject.org>\n"
+"POT-Creation-Date: 2009-09-02 14:45+0000\n"
+"PO-Revision-Date: 2009-09-02 21:48+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"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
+"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-Language: Dutch\n"
"X-Generator: KBabel 1.11.4\n"
@@ -30,12 +32,11 @@ msgstr "Systeemtijd"
msgid "Succeeded"
msgstr "Geslaagd"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
msgid "True"
msgstr "Waar"
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:239
msgid "False"
msgstr "Niet waar"
@@ -58,7 +59,7 @@ msgstr "(seconden)"
#. TRANSLATORS: the command line of the thing that wants the authentication
#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
-msgstr "Commando lijn"
+msgstr "Commando regel"
#. TRANSLATORS: this is the user ID of the user that started the action
#: ../client/pk-console.c:252
@@ -77,251 +78,290 @@ msgstr "Werkelijke naam"
#: ../client/pk-console.c:271
msgid "Affected packages:"
-msgstr "Betreffende Pakketten"
+msgstr "Betreffende pakketten"
#: ../client/pk-console.c:273
msgid "Affected packages: None"
-msgstr "Betreffende Pakketten: Geen"
+msgstr "Betreffende pakketten: Geen"
+
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+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
+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
+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
+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
+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:298
+#: ../client/pk-console.c:360
msgid "Distribution"
msgstr "Distributie"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
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:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
msgid "Summary"
msgstr "Samenvatting"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
msgid "Category"
msgstr "Categorie"
#. 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 "Ouder"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
msgid "Name"
msgstr "Naam"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
msgid "Icon"
-msgstr "Afbeelding"
+msgstr "Icoon"
#. 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 "Details van de 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: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] "Pakketten"
+msgstr[0] "Pakket"
msgstr[1] "Pakketten"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
msgid "Updates"
-msgstr "Updates"
+msgstr "Vernieuwingen"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
msgid "Obsoletes"
-msgstr "Verouderde Paketten"
+msgstr "Verouderde pakketten"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
msgid "Vendor"
msgstr "Verkoper"
#. 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 "Herstarten"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:434
msgid "Update text"
-msgstr "Update tekst"
+msgstr "Vernieuw tekst"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:438
msgid "Changes"
msgstr "Veranderingen"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:442
msgid "State"
msgstr "Status"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:447
msgid "Issued"
msgstr "Uitgegeven"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:452
msgid "Updated"
-msgstr "Ge-update"
+msgstr "Vernieuwd"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:472
+msgid "Enabled"
+msgstr "Aangezit"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:475
+msgid "Disabled"
+msgstr "Uitgezet"
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#: ../client/pk-console.c:552 ../client/pk-console.c:554
msgid "Percentage"
msgstr "Percentage"
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:554
msgid "Unknown"
msgstr "Onbekend"
#. 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 "Herstart systeem vereist door:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:599
msgid "Session restart required:"
msgstr "Het is vereist het systeem te herstarten:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:602
msgid "System restart (security) required by:"
-msgstr "Herstart systeem vereist door:"
+msgstr "Herstart systeem (beveiliging) vereist door:"
#. 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 "Het is vereist het systeem te herstarten:"
+msgstr "Herstart sessie (beveiliging) vereist door:"
#. 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 "Herstart vereist door applicatie:"
+msgstr "Herstart vereist door toepassing:"
#. 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 "Herstart u alstublieft de computer om de update af te maken."
+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:591
+#: ../client/pk-console.c:666
msgid "Please logout and login to complete the update."
-msgstr "Logt u alstublieft uit en weer in om de update af te maken."
+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:594
+#: ../client/pk-console.c:669
msgid "Please restart the application as it is being used."
-msgstr "Herstart u alstublieft de applicatie aangezien deze in gebruik was."
+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:597
-#, fuzzy
+#: ../client/pk-console.c:672
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
-msgstr "Herstart u alstublieft de computer om de update af te maken."
+msgstr ""
+"Herstart a.u.b de computer om de vernieuwing af te maken omdat belangrijke "
+"beveiligings vernieuwingen geïnstaleerd zijn."
#. 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 "Logt u alstublieft uit en weer in om de update af te maken."
+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:727
+#: ../client/pk-console.c:807
#, 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:735
+#: ../client/pk-console.c:815
#, 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: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 "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
+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
+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: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 "Dit programma kon niet het pakket %s installeren."
+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:791
+#: ../client/pk-console.c:969
#, 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:847
+#: ../client/pk-console.c:1025
#, 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: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 "Dit programma kon het pakket %s niet verwijderen."
-#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:920
-msgid "The following packages have to be removed:"
-msgstr "De volgende pakketten moeten worden verwijderd:"
-
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:927
-msgid "Proceed removing additional packages?"
-msgstr "Doorgaan met additionele pakketten verwijderen?"
+#: ../client/pk-console.c:1101
+msgid "Proceed with additional packages?"
+msgstr "Doorgaan met additionele pakketten?"
-#. 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 "Het verwijderen van pakketten is afgebroken!"
#. 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 ""
@@ -329,359 +369,364 @@ msgstr ""
"kon worden."
#. 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 "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: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 "Dit programma kon %s niet updaten: %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 "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: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 "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: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 "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: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 "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:1152
+#: ../client/pk-console.c:1391
#, 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:1160
+#: ../client/pk-console.c:1399
#, 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:1182
+#: ../client/pk-console.c:1421
#, c-format
msgid "File already exists: %s"
msgstr "Bestand bestaat reeds: %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 "Ophalen Pakketlijst"
#. 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 "Dit programma kon de pakketlijst niet vinden: %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 "Vastleggen op schijf niet gelukt"
#. 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 "Bestand bestaat niet: %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 "Toe te voegen pakketten"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1517
msgid "Packages to remove"
msgstr "Te verwijderen pakketten"
#. 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 "Er hoeven geen nieuwe pakketten te worden toegevoegd"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1591
msgid "To install"
msgstr "Te installeren"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1603
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:1368
+#: ../client/pk-console.c:1607
msgid "not found."
msgstr "niet gevonden."
#. 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 "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:1385
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1624
+#: ../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:1421
+#: ../client/pk-console.c:1660
#, 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:1429
+#: ../client/pk-console.c:1668
#, 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:1460
+#: ../client/pk-console.c:1699
msgid "Error:"
msgstr "Fout:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1713
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:1490
+#: ../client/pk-console.c:1729
msgid "Message:"
msgstr "Bericht:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1757
msgid "Package files"
msgstr "Pakketbestanden"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1765
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:1549
+#: ../client/pk-console.c:1788
msgid "Repository signature required"
msgstr "Repository signatuur vereist"
#. 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 "Accepteert u deze signatuur?"
#. 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 "De signatuur werd niet geaccepteerd"
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1836
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:1604
+#: ../client/pk-console.c:1843
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:1608
+#: ../client/pk-console.c:1847
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:1637
+#: ../client/pk-console.c:1876
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:1690
+#: ../client/pk-console.c:1929
msgid "PackageKit Console Interface"
msgstr "PackageKit console-interface"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1931
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: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
+#: ../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 "Extra debuginformatie tonen"
#. 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 "Programmaversie tonen en sluiten"
#. 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 "Filter instellen, bijvoorbeeld geïnstalleerd"
#. 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 "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:1821
+#: ../client/pk-console.c:2060
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:1911
+#: ../client/pk-console.c:2150
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:1930
+#: ../client/pk-console.c:2169
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: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 "Een zoekterm is vereist"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2210
msgid "Invalid search type"
msgstr "Ongeldig zoektype"
#. 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 "Een pakketnaam of bestandsnaam om te installeren is vereist"
#. 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 "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:1995
+#: ../client/pk-console.c:2234
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:2003
-#, fuzzy
+#: ../client/pk-console.c:2242
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."
+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:2010
+#: ../client/pk-console.c:2249
msgid "Directory not found"
msgstr "Map niet gevonden"
#. 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 "Een licentie indentificatie (eula-id) is vereis"
#. 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 "Een transactie indentificatie (tid) is vereist"
#. 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 "Een pakketnaam om te gebruiken is vereist"
#. 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 "Een naam van een repository is vereist"
#. 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 "Een repo naam, parameter en waarde zijn vereist"
#. 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 "Een actie, b.v. 'update-system' is vereist"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2332
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:2100
+#: ../client/pk-console.c:2339
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: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 "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:2140
+#: ../client/pk-console.c:2379
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:2167
+#: ../client/pk-console.c:2406
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: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 "Een lijstbestand om te open is vereist"
#. 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 "Optie '%s' wordt niet ondersteund"
#. 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 "Onjuiste privileges voor deze operatie"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2496
msgid "Command failed"
msgstr "Opdracht mislukt"
@@ -815,7 +860,7 @@ msgstr "PackageKit-monitor"
#: ../client/pk-monitor.c:183
msgid "Cannot show the list of transactions"
-msgstr ""
+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
@@ -895,24 +940,22 @@ msgstr "Aan het installeren......"
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "Download details over de software bronnen."
#. 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 "Bestands lijsten downloaden (dit kan enige tijd duren)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
msgid "Waiting for package manager lock."
-msgstr "Pakketnaam wordt opgezocht."
+msgstr "Wachten op pakket beheerder blokkering."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
msgid "Loading list of packages."
-msgstr "Pakketten aan het downloaden"
+msgstr "Lijst van pakketten downloaden."
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -985,286 +1028,276 @@ msgstr "Kies alstublieft een pakket om te installeren"
#. TRANSLATORS: we are starting to install the packages
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
msgid "Starting install"
-msgstr "Te installeren"
+msgstr "Installeren starten"
#. 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 "Het pakket %s is reeds geïnstalleerd"
+msgstr "Pakket %s vinden is mislukt, of is reeds geïnstalleerd: %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 ""
+"Ik installeer geen pakketten, ik simuleer alleen maar wat geïinstallerd moet "
+"worden"
#. 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 "Installeer geen afhankelijkheden van de kern pakketten"
#. 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 "Laat geen informatie zien over de voortgang"
#. 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 "PackageKit console-interface"
+msgstr "PackageKit debuginfo installer"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
+#, c-format
msgid "ERROR: Specify package names to install."
-msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+msgstr "FOUT: Specificeer de te installeren pakket namen."
#. 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 "Ophalen Pakketlijst"
+msgstr "Ophalen bronnen lijst"
#. 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 "Vond %i aangezette en %i uitgezette bronnen."
#. 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 "Zoeken naar debug bronnen"
#. 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 "Vond %i uitgezette debuginfo repo's"
#. 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 "Debug bronnen aanzetten"
#. 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 "MISLUKT."
#. 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 "%i debug bronnen aangezet."
#. 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 "Pakketnaam wordt opgezocht."
+msgstr "Zoeken naar debug pakketten"
#. 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 "Pakket '%s' niet gevonden: %s"
+msgstr "Pakket %s vinden mislukte: %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 "Pakket '%s' niet gevonden: %s"
+msgstr "Debug info pakket %s niet gevonden: %s"
#. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788
+#, c-format
msgid "Found no packages to install."
-msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+msgstr "Geen pakketten gevonden om te installeren."
#. 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 "Pakketten aan het downloaden"
+msgstr "Vond %i pakketten:"
#. 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 "Zoeken naar pakketten die afhangen van deze pakketten"
#. 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 "Pakket '%s' niet gevonden: %s"
+msgstr "Kon geen afhankelijke pakketten vinden: %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 "Vond %i extra pakketten."
#. 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 "Een pakketnaam is vereist"
+msgstr "Geen extra pakketten vereist."
#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
+#, c-format
msgid "Found %i packages to install:"
-msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+msgstr "Vond %i pakketten om te installeren:"
#. 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 "Pakketten installeren"
+msgstr "Pakketten niet installeren in de simulatie mode"
#. 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 "Dit programma kon niet het pakket %s installeren."
+msgstr "Kon pakketen %s niet installeren."
#. 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 "Uitzetten van bronnen die eerst aangezet waren"
#. 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 "Kon de debug bronnen %s niet uitzetten"
#. 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 "%i debug bronnen uitgezet."
#. TRANSLATORS: couldn't open device to write
#: ../contrib/device-rebind/pk-device-rebind.c:61
-#, fuzzy
msgid "Failed to open file"
-msgstr "Zoeken naar bestand niet gelukt"
+msgstr "Bestand openen niet gelukt"
#. TRANSLATORS: could not write to the device
#: ../contrib/device-rebind/pk-device-rebind.c:70
-#, fuzzy
msgid "Failed to write to the file"
-msgstr "Zoeken naar bestand niet gelukt"
+msgstr "Naar bestand schrijven niet gelukt"
#. TRANSLATORS: we failed to release the current driver
#: ../contrib/device-rebind/pk-device-rebind.c:110
#: ../contrib/device-rebind/pk-device-rebind.c:147
-#, fuzzy
msgid "Failed to write to device"
-msgstr "Vastleggen op schijf niet gelukt"
+msgstr "Naar schijf schrijven niet gelukt"
#. TRANSLATORS: the device could not be found in sysfs
#: ../contrib/device-rebind/pk-device-rebind.c:175
-#, fuzzy
msgid "Device could not be found"
-msgstr "Het pakket kon niet worden gevonden"
+msgstr "Schijf kon niet gevonden worden"
#. TRANSLATORS: we failed to release the current driver
#: ../contrib/device-rebind/pk-device-rebind.c:202
-#, fuzzy
msgid "Failed to unregister driver"
-msgstr "Aanmaken map mislukt:"
+msgstr "Driver uitschrijven mislukte"
#. TRANSLATORS: we failed to bind the old driver
#: ../contrib/device-rebind/pk-device-rebind.c:211
-#, fuzzy
msgid "Failed to register driver"
-msgstr "Aanmaken map mislukt:"
+msgstr "Driver inschrijven mislukte"
#. TRANSLATORS: user did not specify a device sysfs path that exists
#: ../contrib/device-rebind/pk-device-rebind.c:260
-#, fuzzy
msgid "Device path not found"
-msgstr "Map niet gevonden"
+msgstr "Device pad niet gevonden"
#. TRANSLATORS: user did not specify a valid device sysfs path
#: ../contrib/device-rebind/pk-device-rebind.c:268
msgid "Incorrect device path specified"
-msgstr ""
+msgstr "Onjuist device pad opgegeven"
#. 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 "Ik raak de hardware niet aan, ik simuleer alleen wat er zou gebeuren"
#. TRANSLATORS: command line option: a list of files to install
#: ../contrib/device-rebind/pk-device-rebind.c:299
msgid "Device paths"
-msgstr ""
+msgstr "Device paden"
#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
#: ../contrib/device-rebind/pk-device-rebind.c:314
-#, fuzzy
msgid "PackageKit Device Reloader"
-msgstr "PackageKit-servicepack"
+msgstr "PackageKit device herlader"
#. 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 "Je moet tenminste een geldig device pad opgeven"
#. 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 "Dit script kan alleen door de root gebruiker gebruikt worden"
#. TRANSLATORS: we're going to verify the path first
#: ../contrib/device-rebind/pk-device-rebind.c:341
msgid "Verifying device path"
-msgstr ""
+msgstr "Verifiëren van device pad"
#. TRANSLATORS: user did not specify a device sysfs path that exists
#: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
msgid "Failed to verify device path"
-msgstr "Zoeken naar bestand niet gelukt"
+msgstr "Device pad verifiëren mislukte"
#. TRANSLATORS: we're going to try
#: ../contrib/device-rebind/pk-device-rebind.c:360
msgid "Attempting to rebind device"
-msgstr ""
+msgstr "Probeer opnieuw te berbinden met device"
#. TRANSLATORS: we failed to release the current driver
#: ../contrib/device-rebind/pk-device-rebind.c:365
-#, fuzzy
msgid "Failed to rebind device"
-msgstr "Aanmaken map mislukt:"
+msgstr "Opnieuw verbinden met device mislukte"
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
@@ -1324,9 +1357,9 @@ msgid "Authentication is required to refresh the system sources"
msgstr "Authenticatie is vereist om de systeembronnen te vernieuwen"
#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
msgid "Authentication is required to reload the device with a new driver"
-msgstr "Authenticatie is vereist om de systeembronnen te vernieuwen"
+msgstr ""
+"Authenticatie is vereist om het device te herladen met een nieuwe driver"
#: ../policy/org.freedesktop.packagekit.policy.in.h:16
msgid "Authentication is required to remove packages"
@@ -1403,7 +1436,7 @@ msgstr "Herlaad systeembronnen"
#.
#: ../policy/org.freedesktop.packagekit.policy.in.h:58
msgid "Reload a device"
-msgstr ""
+msgstr "Herlaad een device"
#. SECURITY:
#. - Normal users require admin authentication to remove packages as
@@ -1527,43 +1560,50 @@ msgid "Error trying to start:"
msgstr "Fout bij het proberen te starten:"
#: ../src/pk-polkit-action-lookup.c:147
-#, fuzzy
msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "Er hoeven geen nieuwe pakketten te worden toegevoegd"
+msgstr ""
+"Om debug pakketten te installeren, moeten extra bronnen aangezet worden"
#. 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 "De software is niet van een vertrouwde bron."
#: ../src/pk-polkit-action-lookup.c:173
msgid "Do not update this package unless you are sure it is safe to do so."
msgstr ""
+"Vernieuw dit pakket niet behalve als je zeker weet dat het veilig is om te "
+"doen."
#: ../src/pk-polkit-action-lookup.c:174
msgid "Do not update these packages unless you are sure it is safe to do so."
msgstr ""
+"Vernieuw deze pakketten niet behalve als je zeker weet dat het veilig is om "
+"te doen."
#: ../src/pk-polkit-action-lookup.c:192
msgid "Do not install this package unless you are sure it is safe to do so."
msgstr ""
+"Installeer dit pakket niet behalve als je zeker weet dat het veilig is om te "
+"doen."
#: ../src/pk-polkit-action-lookup.c:193
msgid "Do not install these packages unless you are sure it is safe to do so."
msgstr ""
+"Installeer deze pakketten niet behalve als je zeker weet dat het veilig is "
+"om te doen."
#. 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 "Kwaadwillige software kan je computer beschadigen of ander kwaad doen."
#. TRANSLATORS: too many packages to list each one
#: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
msgid "Many packages"
-msgstr "Pakketten bijwerken"
+msgstr "Vele pakketten"
#. TRANSLATORS: if the transaction is forced to install only trusted packages
#: ../src/pk-polkit-action-lookup.c:334
msgid "Only trusted"
-msgstr ""
+msgstr "Alleen vertrouwde"
commit 959bad19ba8fe1c2a2505ecd08581a9789abb26f
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 16:17:58 2009 +0100
trivial: fix build
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index b3c8843..028b193 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -22,8 +22,8 @@ pk_command_not_found_SOURCES = \
egg-debug.h \
egg-string.c \
egg-string.h \
- pk-tools-common.c \
- pk-tools-common.h \
+ pk-text.c \
+ pk-text.h \
pk-command-not-found.c \
$(NULL)
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 77e4a40..b2cd2c1 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -33,7 +33,7 @@
#include "egg-debug.h"
#include "egg-string.h"
-#include "pk-tools-common.h"
+#include "pk-text.h"
#define PK_MAX_PATH_LEN 1023
diff --git a/contrib/command-not-found/pk-text.c b/contrib/command-not-found/pk-text.c
new file mode 120000
index 0000000..d27cefa
--- /dev/null
+++ b/contrib/command-not-found/pk-text.c
@@ -0,0 +1 @@
+../../client/pk-text.c
\ No newline at end of file
diff --git a/contrib/command-not-found/pk-text.h b/contrib/command-not-found/pk-text.h
new file mode 120000
index 0000000..044acfb
--- /dev/null
+++ b/contrib/command-not-found/pk-text.h
@@ -0,0 +1 @@
+../../client/pk-text.h
\ No newline at end of file
diff --git a/contrib/command-not-found/pk-tools-common.c b/contrib/command-not-found/pk-tools-common.c
deleted file mode 120000
index 4afae3b..0000000
--- a/contrib/command-not-found/pk-tools-common.c
+++ /dev/null
@@ -1 +0,0 @@
-../../client/pk-tools-common.c
\ No newline at end of file
diff --git a/contrib/command-not-found/pk-tools-common.h b/contrib/command-not-found/pk-tools-common.h
deleted file mode 120000
index f3e70b0..0000000
--- a/contrib/command-not-found/pk-tools-common.h
+++ /dev/null
@@ -1 +0,0 @@
-../../client/pk-tools-common.h
\ No newline at end of file
commit e27cc043320b4c8625e91c52819dd289f676c12d
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 16:06:47 2009 +0100
glib2: migrate a new version of pkcon to using the glib2 bindings
diff --git a/client/Makefile.am b/client/Makefile.am
index 4a9cf54..cbbad92 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -58,6 +58,38 @@ bin_PROGRAMS = \
pkgenpack \
$(NULL)
+# Only build this functionality if we have glib2, and don't yet install it
+if PK_BUILD_GLIB2
+
+PK_GLIB2_LIBS = \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
+ $(NULL)
+
+noinst_PROGRAMS = pkcon-test
+
+pkcon_test_SOURCES = \
+ egg-debug.c \
+ egg-debug.h \
+ egg-string.c \
+ egg-string.h \
+ pk-console-test.c \
+ pk-text.c \
+ pk-text.h \
+ pk-progress-bar.c \
+ pk-progress-bar.h \
+ $(NULL)
+
+pkcon_test_LDADD = \
+ $(GLIB_LIBS) \
+ $(DBUS_LIBS) \
+ $(PK_GLIB2_LIBS) \
+ $(NULL)
+
+pkcon_test_CFLAGS = \
+ $(WARNINGFLAGS_C) \
+ $(NULL)
+endif
+
pkcon_SOURCES = \
egg-debug.c \
egg-debug.h \
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
new file mode 100644
index 0000000..179897c
--- /dev/null
+++ b/client/pk-console-test.c
@@ -0,0 +1,2253 @@
+/* -*- 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 <string.h>
+#include <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <glib/gi18n.h>
+#include <packagekit-glib2/packagekit.h>
+#include <sys/types.h>
+#include <pwd.h>
+#include <locale.h>
+
+#include "egg-debug.h"
+//#include "egg-string.h"
+
+#include "pk-text.h"
+#include "pk-progress-bar.h"
+
+#define PK_EXIT_CODE_SYNTAX_INVALID 3
+#define PK_EXIT_CODE_FILE_NOT_FOUND 4
+
+static GMainLoop *loop = NULL;
+static PkBitfield roles;
+static gboolean is_console = FALSE;
+static gboolean nowait = FALSE;
+static PkControlSync *control = NULL;
+static PkClient *client = NULL;
+PkProgressBar *progressbar = NULL;
+
+/**
+ * pk_strpad:
+ * @data: the input string
+ * @length: the desired length of the output string, with padding
+ *
+ * Returns the text padded to a length with spaces. If the string is
+ * longer than length then a longer string is returned.
+ *
+ * Return value: The padded string
+ **/
+static gchar *
+pk_strpad (const gchar *data, guint length)
+{
+ gint size;
+ guint data_len;
+ gchar *text;
+ gchar *padding;
+
+ if (data == NULL)
+ return g_strnfill (length, ' ');
+
+ /* ITS4: ignore, only used for formatting */
+ data_len = strlen (data);
+
+ /* calculate */
+ size = (length - data_len);
+ if (size <= 0)
+ return g_strdup (data);
+
+ padding = g_strnfill (size, ' ');
+ text = g_strdup_printf ("%s%s", data, padding);
+ g_free (padding);
+ return text;
+}
+
+/**
+ * pk_package_id_get_printable:
+ **/
+static gchar *
+pk_package_id_get_printable (const gchar *package_id)
+{
+ gchar **split = NULL;
+ gchar *value = NULL;
+
+ /* invalid */
+ if (package_id == NULL)
+ goto out;
+
+ /* split */
+ split = g_strsplit (package_id, ";", -1);
+ if (g_strv_length (split) != 4)
+ goto out;
+ value = g_strdup_printf ("%s-%s.%s", split[0], split[1], split[2]);
+out:
+ g_strfreev (split);
+ return value;
+}
+
+/**
+ * pk_console_package_cb:
+ **/
+static void
+pk_console_package_cb (const PkResultItemPackage *obj, gpointer data)
+{
+ gchar *package = NULL;
+ gchar *package_pad = NULL;
+ gchar *info_pad = NULL;
+ gchar **split = NULL;
+
+ /* ignore finished */
+ if (obj->info_enum == PK_INFO_ENUM_FINISHED)
+ goto out;
+
+ /* split */
+ split = g_strsplit (obj->package_id, ";", -1);
+ if (g_strv_length (split) != 4)
+ goto out;
+
+ /* make these all the same length */
+ info_pad = pk_strpad (pk_info_enum_to_text (obj->info_enum), 12);
+
+ /* create printable */
+ package = pk_package_id_get_printable (obj->package_id);
+
+ /* don't pretty print */
+ if (!is_console) {
+ g_print ("%s %s\n", info_pad, package);
+ goto out;
+ }
+
+ /* pad the name-version */
+ package_pad = pk_strpad (package, 40);
+ g_print ("%s\t%s\t%s\n", info_pad, package_pad, obj->summary);
+out:
+ /* free all the data */
+ g_free (package);
+ g_free (package_pad);
+ g_free (info_pad);
+ g_strfreev (split);
+}
+
+/**
+ * pk_console_transaction_cb:
+ **/
+static void
+pk_console_transaction_cb (const PkResultItemTransaction *obj, gpointer user_data)
+{
+ struct passwd *pw;
+ const gchar *role_text;
+ gchar **lines;
+ gchar **parts;
+ guint i, lines_len;
+ gchar *package = NULL;
+
+ role_text = pk_role_enum_to_text (obj->role);
+ /* TRANSLATORS: this is an atomic transaction */
+ g_print ("%s: %s\n", _("Transaction"), obj->tid);
+ /* TRANSLATORS: this is the time the transaction was started in system timezone */
+ g_print (" %s: %s\n", _("System time"), obj->timespec);
+ /* TRANSLATORS: this is if the transaction succeeded or not */
+ g_print (" %s: %s\n", _("Succeeded"), obj->timespec ? _("True") : _("False"));
+ /* TRANSLATORS: this is the transactions role, e.g. "update-system" */
+ g_print (" %s: %s\n", _("Role"), role_text);
+
+ /* only print if not null */
+ if (obj->duration > 0) {
+ /* TRANSLATORS: this is The duration of the transaction */
+ g_print (" %s: %i %s\n", _("Duration"), obj->duration, _("(seconds)"));
+ }
+
+ /* TRANSLATORS: this is The command line used to do the action */
+ g_print (" %s: %s\n", _("Command line"), obj->cmdline);
+ /* TRANSLATORS: this is the user ID of the user that started the action */
+ g_print (" %s: %i\n", _("User ID"), obj->uid);
+
+ /* query real name */
+ pw = getpwuid (obj->uid);
+ if (pw != NULL) {
+ if (pw->pw_name != NULL) {
+ /* TRANSLATORS: this is the username, e.g. hughsie */
+ g_print (" %s: %s\n", _("Username"), pw->pw_name);
+ }
+ if (pw->pw_gecos != NULL) {
+ /* TRANSLATORS: this is the users real name, e.g. "Richard Hughes" */
+ g_print (" %s: %s\n", _("Real name"), pw->pw_gecos);
+ }
+ }
+
+ /* TRANSLATORS: these are packages touched by the transaction */
+ lines = g_strsplit (obj->data, "\n", -1);
+ lines_len = g_strv_length (lines);
+ if (lines_len > 0)
+ g_print (" %s\n", _("Affected packages:"));
+ else
+ g_print (" %s\n", _("Affected packages: None"));
+ for (i=0; i<lines_len; i++) {
+ parts = g_strsplit (lines[i], "\t", 3);
+
+ /* create printable */
+ package = pk_package_id_get_printable (parts[1]);
+ g_print (" - %s %s", parts[0], package);
+ g_free (package);
+ g_strfreev (parts);
+ }
+ g_strfreev (lines);
+}
+#if 0
+
+/**
+ * pk_console_print_deps_list_info:
+ **/
+static guint
+pk_console_print_deps_list_info (PkPackageSack *list, PkInfoEnum info, const gchar *header)
+{
+ const PkResultItemPackage *obj;
+ gboolean ret = FALSE;
+ guint found = 0;
+ guint i;
+ guint length;
+
+ length = pk_package_list_get_size (list);
+ for (i=0; i<length; i++) {
+ obj = pk_package_list_get_obj (list, i);
+
+ /* are we interested in this type */
+ if (obj->info != info)
+ continue;
+
+ /* is this package already local */
+ if (g_strcmp0 (obj->id->data, "local") == 0)
+ continue;
+
+ /* print header if it's not been done before */
+ if (!ret) {
+ g_print ("%s\n", header);
+ ret = TRUE;
+ }
+
+ /* print package */
+ g_print ("%i\t%s\n", ++found, package);
+ }
+ return found;
+}
+
+/**
+ * pk_console_print_deps_list:
+ **/
+static guint
+pk_console_print_deps_list (PkPackageSack *list)
+{
+ guint found = 0;
+
+ /* TRANSLATORS: When processing, we might have to remove other dependencies */
+ found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
+
+ /* TRANSLATORS: When processing, we might have to install other dependencies */
+ found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
+
+ /* TRANSLATORS: When processing, we might have to update other dependencies */
+ found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
+
+ /* TRANSLATORS: When processing, we might have to reinstall other dependencies */
+ found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
+
+ /* TRANSLATORS: When processing, we might have to downgrade other dependencies */
+ found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_DOWNGRADING, _("The following packages have to be downgraded:"));
+
+ return found;
+}
+#endif
+
+/**
+ * pk_console_distro_upgrade_cb:
+ **/
+static void
+pk_console_distro_upgrade_cb (const PkResultItemDistroUpgrade *obj, gpointer user_data)
+{
+ /* TRANSLATORS: this is the distro, e.g. Fedora 10 */
+ g_print ("%s: %s\n", _("Distribution"), obj->name);
+ /* TRANSLATORS: this is type of update, stable or testing */
+ g_print (" %s: %s\n", _("Type"), pk_update_state_enum_to_text (obj->state));
+ /* TRANSLATORS: this is any summary text describing the upgrade */
+ g_print (" %s: %s\n", _("Summary"), obj->summary);
+}
+
+/**
+ * pk_console_category_cb:
+ **/
+static void
+pk_console_category_cb (const PkResultItemCategory *obj, gpointer user_data)
+{
+ /* TRANSLATORS: this is the group category name */
+ g_print ("%s: %s\n", _("Category"), obj->name);
+ /* TRANSLATORS: this is group identifier */
+ g_print (" %s: %s\n", _("ID"), obj->cat_id);
+ if (obj->parent_id != NULL) {
+ /* TRANSLATORS: this is the parent group */
+ g_print (" %s: %s\n", _("Parent"), obj->parent_id);
+ }
+ /* TRANSLATORS: this is the name of the parent group */
+ g_print (" %s: %s\n", _("Name"), obj->name);
+ if (obj->summary != NULL) {
+ /* TRANSLATORS: this is the summary of the group */
+ g_print (" %s: %s\n", _("Summary"), obj->summary);
+ }
+ /* TRANSLATORS: this is preferred icon for the group */
+ g_print (" %s: %s\n", _("Icon"), obj->icon);
+}
+
+/**
+ * pk_console_update_detail_cb:
+ **/
+static void
+pk_console_update_detail_cb (const PkResultItemUpdateDetail *detail, gpointer data)
+{
+ gchar *issued;
+ gchar *updated;
+ gchar *package = NULL;
+
+ /* TRANSLATORS: this is a header for the package that can be updated */
+ g_print ("%s\n", _("Details about the update:"));
+
+ /* create printable */
+ package = pk_package_id_get_printable (detail->package_id);
+
+ /* TRANSLATORS: details about the update, package name and version */
+ g_print (" %s: %s\n", _("Package"), package);
+ if (detail->updates != NULL) {
+ /* TRANSLATORS: details about the update, any packages that this update updates */
+ g_print (" %s: %s\n", _("Updates"), detail->updates);
+ }
+ if (detail->obsoletes != NULL) {
+ /* TRANSLATORS: details about the update, any packages that this update obsoletes */
+ g_print (" %s: %s\n", _("Obsoletes"), detail->obsoletes);
+ }
+ if (detail->vendor_url != NULL) {
+ /* TRANSLATORS: details about the update, the vendor URLs */
+ g_print (" %s: %s\n", _("Vendor"), detail->vendor_url);
+ }
+ if (detail->bugzilla_url != NULL) {
+ /* TRANSLATORS: details about the update, the bugzilla URLs */
+ g_print (" %s: %s\n", _("Bugzilla"), detail->bugzilla_url);
+ }
+ if (detail->cve_url != NULL) {
+ /* TRANSLATORS: details about the update, the CVE URLs */
+ g_print (" %s: %s\n", _("CVE"), detail->cve_url);
+ }
+ if (detail->restart_enum != PK_RESTART_ENUM_NONE) {
+ /* TRANSLATORS: details about the update, if the package requires a restart */
+ g_print (" %s: %s\n", _("Restart"), pk_restart_enum_to_text (detail->restart_enum));
+ }
+ if (detail->update_text != NULL) {
+ /* TRANSLATORS: details about the update, any description of the update */
+ g_print (" %s: %s\n", _("Update text"), detail->update_text);
+ }
+ if (detail->changelog != NULL) {
+ /* TRANSLATORS: details about the update, the changelog for the package */
+ g_print (" %s: %s\n", _("Changes"), detail->changelog);
+ }
+ if (detail->state_enum != PK_UPDATE_STATE_ENUM_UNKNOWN) {
+ /* TRANSLATORS: details about the update, the ongoing state of the update */
+ g_print (" %s: %s\n", _("State"), pk_update_state_enum_to_text (detail->state_enum));
+ }
+ issued = pk_iso8601_from_date (detail->issued);
+ if (issued != NULL) {
+ /* TRANSLATORS: details about the update, date the update was issued */
+ g_print (" %s: %s\n", _("Issued"), issued);
+ }
+ updated = pk_iso8601_from_date (detail->updated);
+ if (updated != NULL) {
+ /* TRANSLATORS: details about the update, date the update was updated */
+ g_print (" %s: %s\n", _("Updated"), updated);
+ }
+ g_free (issued);
+ g_free (updated);
+ g_free (package);
+}
+
+/**
+ * pk_console_repo_detail_cb:
+ **/
+static void
+pk_console_repo_detail_cb (const PkResultItemRepoDetail *obj, gpointer data)
+{
+ gchar *enabled_pad;
+ gchar *repo_pad;
+
+ if (obj->enabled) {
+ /* TRANSLATORS: if the repo is enabled */
+ enabled_pad = pk_strpad (_("Enabled"), 10);
+ } else {
+ /* TRANSLATORS: if the repo is disabled */
+ enabled_pad = pk_strpad (_("Disabled"), 10);
+ }
+
+ repo_pad = pk_strpad (obj->repo_id, 25);
+ g_print (" %s %s %s\n", enabled_pad, repo_pad, obj->description);
+ g_free (enabled_pad);
+ g_free (repo_pad);
+}
+
+/**
+ * pk_console_require_restart_cb:
+ **/
+static void
+pk_console_require_restart_cb (const PkResultItemRequireRestart *obj, gpointer data)
+{
+ gchar *package = NULL;
+
+ /* create printable */
+ package = pk_package_id_get_printable (obj->package_id);
+
+ if (obj->restart == PK_RESTART_ENUM_SYSTEM) {
+ /* TRANSLATORS: a package requires the system to be restarted */
+ g_print ("%s %s\n", _("System restart required by:"), package);
+ } else if (obj->restart == PK_RESTART_ENUM_SESSION) {
+ /* TRANSLATORS: a package requires the session to be restarted */
+ g_print ("%s %s\n", _("Session restart required:"), package);
+ } else if (obj->restart == PK_RESTART_ENUM_SECURITY_SYSTEM) {
+ /* TRANSLATORS: a package requires the system to be restarted due to a security update*/
+ g_print ("%s %s\n", _("System restart (security) required by:"), package);
+ } else if (obj->restart == PK_RESTART_ENUM_SECURITY_SESSION) {
+ /* TRANSLATORS: a package requires the session to be restarted due to a security update */
+ g_print ("%s %s\n", _("Session restart (security) required:"), package);
+ } else if (obj->restart == PK_RESTART_ENUM_APPLICATION) {
+ /* TRANSLATORS: a package requires the application to be restarted */
+ g_print ("%s %s\n", _("Application restart required by:"), package);
+ }
+ g_free (package);
+}
+
+/**
+ * pk_console_details_cb:
+ **/
+static void
+pk_console_details_cb (const PkResultItemDetails *obj, gpointer data)
+{
+ gchar *package = NULL;
+
+ /* create printable */
+ package = pk_package_id_get_printable (obj->package_id);
+
+ /* TRANSLATORS: This a list of details about the package */
+ g_print ("%s\n", _("Package description"));
+ g_print (" package: %s\n", package);
+ g_print (" license: %s\n", obj->license);
+ g_print (" group: %s\n", pk_group_enum_to_text (obj->group_enum));
+ g_print (" description: %s\n", obj->description);
+ g_print (" size: %lu bytes\n", (long unsigned int) obj->size);
+ g_print (" url: %s\n", obj->url);
+
+ g_free (package);
+}
+
+/**
+ * pk_console_message_cb:
+ **/
+static void
+pk_console_message_cb (const PkResultItemMessage *obj, gpointer data)
+{
+ /* TRANSLATORS: This a message (like a little note that may be of interest) from the transaction */
+ g_print ("%s %s: %s\n", _("Message:"), pk_message_enum_to_text (obj->message), obj->details);
+}
+
+/**
+ * pk_console_files_cb:
+ **/
+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 (client, &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 */
+ g_print ("%s\n", _("No files"));
+ return;
+ }
+
+ /* TRANSLATORS: This a list files contained in the package */
+ g_print ("%s\n", _("Package files"));
+ for (i=0; obj->files[i] != NULL; i++) {
+ g_print (" %s\n", obj->files[i]);
+ }
+}
+
+/**
+ * pk_console_repo_signature_required_cb:
+ **/
+static void
+pk_console_repo_signature_required_cb (const PkResultItemRepoSignatureRequired *obj, gpointer data)
+{
+// gboolean import;
+// gboolean ret;
+// GError *error = NULL;
+ gchar *package = NULL;
+
+ /* create printable */
+ package = pk_package_id_get_printable (obj->package_id);
+
+ /* TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later */
+ g_print ("%s\n", _("Repository signature required"));
+ g_print ("Package: %s\n", package);
+ g_print ("Name: %s\n", obj->repository_name);
+ g_print ("URL: %s\n", obj->key_url);
+ g_print ("User: %s\n", obj->key_userid);
+ g_print ("ID: %s\n", obj->key_id);
+ g_print ("Fingerprint: %s\n", obj->key_fingerprint);
+ g_print ("Timestamp: %s\n", obj->key_timestamp);
+
+#if 0
+ /* TRANSLATORS: This a prompt asking the user to import the security key */
+ import = pk_console_get_prompt (_("Do you accept this signature?"), FALSE);
+ if (!import) {
+ need_requeue = FALSE;
+ /* TRANSLATORS: This is where the user declined the security key */
+ g_print ("%s\n", _("The signature was not accepted."));
+ return;
+ }
+
+ /* install signature */
+ egg_debug ("install signature %s", key_id);
+ ret = pk_client_install_signature (client_secondary, PK_SIGTYPE_ENUM_GPG,
+ key_id, package_id, &error);
+ /* we succeeded, so wait for the requeue */
+ if (!ret) {
+ egg_warning ("failed to install signature: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+#endif
+
+ g_free (package);
+}
+
+/**
+ * pk_console_eula_required_cb:
+ **/
+static void
+pk_console_eula_required_cb (const PkResultItemEulaRequired *obj, gpointer data)
+{
+// gboolean import;
+// gboolean ret;
+// GError *error = NULL;
+ gchar *package = NULL;
+
+ /* create printable */
+ package = pk_package_id_get_printable (obj->package_id);
+
+ /* TRANSLATORS: This a request for a EULA */
+ g_print ("%s\n", _("End user license agreement required"));
+ g_print ("Eula: %s\n", obj->eula_id);
+ g_print ("Package: %s\n", package);
+ g_print ("Vendor: %s\n", obj->vendor_name);
+ g_print ("Agreement: %s\n", obj->license_agreement);
+
+#if 0
+ /* TRANSLATORS: This a prompt asking the user to agree to the license */
+ import = pk_console_get_prompt (_("Do you agree to this license?"), FALSE);
+ if (!import) {
+ need_requeue = FALSE;
+ /* TRANSLATORS: This is where the user declined the license */
+ g_print ("%s\n", _("The license was refused."));
+ return;
+ }
+
+ /* accept eula */
+ egg_debug ("accept eula %s", eula_id);
+ ret = pk_client_accept_eula (client_secondary, eula_id, &error);
+ /* we succeeded, so wait for the requeue */
+ if (!ret) {
+ egg_warning ("failed to accept eula: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
+ /* we accepted eula */
+ need_requeue = TRUE;
+#endif
+
+ g_free (package);
+}
+
+#if 0
+/**
+ * pk_console_finished_cb:
+ **/
+static void
+pk_console_finished_cb (PkExitEnum exit_enum, guint runtime, gpointer data)
+{
+ PkRoleEnum role;
+ const gchar *role_text;
+ gfloat time_s;
+ PkRestartEnum restart;
+ gboolean ret;
+ GError *error = NULL;
+
+ pk_client_get_role (client, &role, NULL, NULL);
+
+ role_text = pk_role_enum_to_text (role);
+ time_s = (gfloat) runtime / 1000.0;
+
+ /* do we need to new line? */
+ egg_debug ("%s runtime was %.1f seconds", role_text, time_s);
+
+ /* 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."));
+ }
+
+ /* need to handle retry with only_trusted=FALSE */
+ if (exit_enum == PK_EXIT_ENUM_NEED_UNTRUSTED) {
+ egg_debug ("need to handle untrusted");
+
+ /* retry new action with untrusted */
+ pk_client_set_only_trusted (client, FALSE);
+ ret = pk_client_requeue (client, &error);
+ if (!ret) {
+ egg_warning ("Failed to requeue: %s", error->message);
+ g_error_free (error);
+ }
+ return;
+ }
+
+ if ((role == PK_ROLE_ENUM_INSTALL_FILES || role == PK_ROLE_ENUM_INSTALL_PACKAGES) &&
+ exit_enum == PK_EXIT_ENUM_FAILED && need_requeue) {
+ egg_warning ("waiting for second install file to finish");
+ return;
+ }
+
+ /* have we failed to install, and the gpg key is now installed */
+ if (exit_enum == PK_EXIT_ENUM_KEY_REQUIRED && need_requeue) {
+ egg_debug ("key now installed");
+ return;
+ }
+
+ /* have we failed to install, and the eula key is now installed */
+ if (exit_enum == PK_EXIT_ENUM_EULA_REQUIRED && need_requeue) {
+ egg_debug ("eula now agreed");
+ return;
+ }
+
+ /* close the loop */
+ g_main_loop_quit (loop);
+}
+
+/**
+ * pk_console_perhaps_resolve:
+ **/
+static gchar *
+pk_console_perhaps_resolve (PkBitfield filter, const gchar *package, GError **error)
+{
+ PkPackageSack *list;
+ gchar *package_id = NULL;
+ gboolean valid;
+
+ /* have we passed a complete package_id? */
+ valid = pk_package_id_check (package);
+ if (valid)
+ return g_strdup (package);
+
+ /* get the list of possibles */
+ list = pk_console_resolve (filter, package, error);
+ if (list == NULL)
+ goto out;
+
+ /* else list the options if multiple matches found */
+
+ /* ask the user to select the right one */
+ package_id = pk_console_resolve_package_id (list, error);
+out:
+ if (list != NULL)
+ g_object_unref (list);
+ return package_id;
+}
+
+/**
+ * pk_console_is_installed:
+ **/
+static gboolean
+pk_console_is_installed (const gchar *package)
+{
+ 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;
+ }
+ /* true if any installed */
+ ret = PK_OBJ_LIST(list)->len > 0;
+out:
+ if (list != NULL)
+ g_object_unref (list);
+ return ret;
+}
+
+/**
+ * pk_console_install_stuff:
+ **/
+static gboolean
+pk_console_install_stuff (gchar **packages, GError **error)
+{
+ gboolean ret = TRUE;
+ gboolean installed;
+ gboolean is_local;
+ gboolean accept_changes;
+ gchar *package_id = NULL;
+ gchar **package_ids = NULL;
+ gchar **files = NULL;
+ guint i;
+ guint length;
+ PkPackageSack *list;
+ PkPackageSack *list_single;
+ GPtrArray *array_packages;
+ GPtrArray *array_files;
+ GError *error_local = NULL;
+
+ array_packages = g_ptr_array_new ();
+ array_files = g_ptr_array_new ();
+ length = g_strv_length (packages);
+ list = pk_package_list_new ();
+
+ for (i=2; i<length; i++) {
+ /* are we a local file */
+ is_local = g_file_test (packages[i], G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR);
+ 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 (client, 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);
+ }
+ }
+
+ /* one of the resolves failed */
+ if (!ret) {
+ egg_warning ("resolve failed");
+ goto out;
+ }
+
+ /* any to process? */
+ if (array_packages->len > 0) {
+ /* convert to strv */
+ package_ids = pk_ptr_array_to_strv (array_packages);
+
+ /* can we simulate? */
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES)) {
+ ret = pk_client_reset (client_sync, &error_local);
+ if (!ret) {
+ /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+ *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ egg_debug ("Simulating install for %s", package_ids[0]);
+ ret = pk_client_simulate_install_packages (client_sync, package_ids, error);
+ if (!ret) {
+ egg_warning ("failed to simulate a package install");
+ goto out;
+ }
+
+ /* see how many packages there are */
+ list_single = pk_client_get_package_list (client_sync);
+ pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+ g_object_unref (list_single);
+
+ /* one of the simulate-install-packages failed */
+ if (!ret)
+ goto out;
+
+ /* if there are no required packages, just do the remove */
+ length = pk_package_list_get_size (list);
+ if (length != 0) {
+
+ /* print the additional deps to the screen */
+ pk_console_print_deps_list (list);
+
+ /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+ accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
+
+ /* we chickened out */
+ if (!accept_changes) {
+ /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+ *error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
+ ret = FALSE;
+ goto out;
+ }
+ }
+ }
+
+ /* reset */
+ ret = pk_client_reset (client, &error_local);
+ if (!ret) {
+ /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+ *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ ret = pk_client_install_packages (client, 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;
+ }
+ }
+
+ /* any to process? */
+ if (array_files->len > 0) {
+ /* convert to strv */
+ files = pk_ptr_array_to_strv (array_files);
+
+ /* can we simulate? */
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_INSTALL_FILES)) {
+ ret = pk_client_reset (client_sync, &error_local);
+ if (!ret) {
+ /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+ *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ egg_debug ("Simulating install for %s", files[0]);
+ ret = pk_client_simulate_install_files (client_sync, files, error);
+ if (!ret) {
+ egg_warning ("failed to simulate a package install");
+ goto out;
+ }
+
+ /* see how many packages there are */
+ list_single = pk_client_get_package_list (client_sync);
+ pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+ g_object_unref (list_single);
+
+ /* one of the simulate-install-files failed */
+ if (!ret)
+ goto out;
+
+ /* if there are no required packages, just do the remove */
+ length = pk_package_list_get_size (list);
+ if (length != 0) {
+
+ /* print the additional deps to the screen */
+ pk_console_print_deps_list (list);
+
+ /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+ accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
+
+ /* we chickened out */
+ if (!accept_changes) {
+ /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+ *error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
+ ret = FALSE;
+ goto out;
+ }
+ }
+ }
+
+ ret = pk_client_install_files (client, 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;
+ }
+ }
+
+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;
+}
+
+/**
+ * pk_console_remove_only:
+ **/
+static gboolean
+pk_console_remove_only (gchar **package_ids, gboolean force, GError **error)
+{
+ gboolean ret;
+
+ egg_debug ("remove+ %s", package_ids[0]);
+ ret = pk_client_reset (client, error);
+ if (!ret)
+ return ret;
+ return pk_client_remove_packages (client, package_ids, force, FALSE, error);
+}
+
+/**
+ * pk_console_remove_packages:
+ **/
+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;
+ 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 (client, 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);
+
+ /* are we dumb and can't check for requires? */
+ if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES)) {
+ /* no, just try to remove it without deps */
+ ret = pk_console_remove_only (client, package_ids, FALSE, &error_local);
+ if (!ret) {
+ /* 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);
+ g_error_free (error_local);
+ }
+ goto out;
+ }
+
+ ret = pk_client_reset (client_sync, &error_local);
+ if (!ret) {
+ /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+ *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ egg_debug ("Getting installed requires for %s", package_ids[0]);
+ /* see if any packages require this one */
+ ret = pk_client_simulate_remove_packages (client_sync, package_ids, error);
+ if (!ret) {
+ egg_warning ("failed to simulate a package removal");
+ goto out;
+ }
+
+ /* see how many packages there are */
+ list_single = pk_client_get_package_list (client_sync);
+ pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+ g_object_unref (list_single);
+
+ /* one of the simulate-remove-packages failed */
+ if (!ret)
+ goto out;
+
+ /* if there are no required packages, just do the remove */
+ length = pk_package_list_get_size (list);
+ if (length == 0) {
+ egg_debug ("no requires");
+ ret = pk_console_remove_only (client, 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);
+ g_error_free (error_local);
+ }
+ goto out;
+ }
+
+ /* present this to the user */
+
+ /* print the additional deps to the screen */
+ pk_console_print_deps_list (list);
+
+ /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+ remove_deps = pk_console_get_prompt (_("Proceed with additional packages?"), FALSE);
+
+ /* we chickened out */
+ if (!remove_deps) {
+ /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+ *error = g_error_new (1, 0, "%s", _("The package removal was canceled!"));
+ ret = FALSE;
+ goto out;
+ }
+
+ /* remove all the stuff */
+ ret = pk_console_remove_only (client, package_ids, TRUE, &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);
+ g_error_free (error_local);
+ }
+
+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;
+}
+
+/**
+ * pk_console_download_packages:
+ **/
+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;
+ 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 (client, 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");
+ goto out;
+ }
+
+ /* any to process? */
+ if (array_packages->len > 0) {
+ /* convert to strv */
+ package_ids = pk_ptr_array_to_strv (array_packages);
+
+ /* reset */
+ ret = pk_client_reset (client, &error_local);
+ if (!ret) {
+ /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+ *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ ret = pk_client_download_packages (client, 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;
+ }
+ }
+
+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:
+ **/
+static gboolean
+pk_console_update_package (const gchar *package, GError **error)
+{
+ gboolean ret;
+ gchar *package_id;
+ 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 (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &error_local);
+ if (package_id == NULL) {
+ /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+ *error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
+ g_error_free (error_local);
+ return FALSE;
+ }
+ package_ids = pk_package_ids_from_id (package_id);
+
+ /* are we dumb and can't simulate? */
+ if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES)) {
+ /* no, just try to update it without deps */
+ ret = pk_client_update_packages (client, TRUE, package_ids, error);
+ if (!ret) {
+ /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+ *error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
+ g_error_free (error_local);
+ }
+ goto out;
+ }
+
+ ret = pk_client_reset (client_sync, &error_local);
+ if (!ret) {
+ /* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+ *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ egg_debug ("Simulating update for %s", package_ids[0]);
+ ret = pk_client_simulate_update_packages (client_sync, package_ids, error);
+ if (!ret) {
+ egg_warning ("failed to simulate a package update");
+ goto out;
+ }
+
+ /* see how many packages there are */
+ list_single = pk_client_get_package_list (client_sync);
+ pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
+ g_object_unref (list_single);
+
+ /* one of the simulate-update-packages failed */
+ if (!ret)
+ goto out;
+
+ /* if there are no required packages, just do the remove */
+ length = pk_package_list_get_size (list);
+ if (length != 0) {
+
+ /* print the additional deps to the screen */
+ pk_console_print_deps_list (list);
+
+ /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
+ accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
+
+ /* we chickened out */
+ if (!accept_changes) {
+ /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
+ *error = g_error_new (1, 0, "%s", _("The package update was canceled!"));
+ ret = FALSE;
+ goto out;
+ }
+ }
+
+ ret = pk_client_update_packages (client, TRUE, package_ids, error);
+ if (!ret) {
+ /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+ *error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
+ g_error_free (error_local);
+ }
+out:
+ g_object_unref (list);
+ g_strfreev (package_ids);
+ g_free (package_id);
+ return ret;
+}
+
+/**
+ * pk_console_get_requires:
+ **/
+static gboolean
+pk_console_get_requires (PkBitfield filters, const gchar *package, GError **error)
+{
+ gboolean ret;
+ gchar *package_id;
+ gchar **package_ids;
+ GError *error_local = NULL;
+
+ package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), 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 get the requirements for %s: %s"), package, error_local->message);
+ g_error_free (error_local);
+ return FALSE;
+ }
+ package_ids = pk_package_ids_from_id (package_id);
+ ret = pk_client_get_requires (client, 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);
+ }
+ g_strfreev (package_ids);
+ g_free (package_id);
+ return ret;
+}
+
+/**
+ * pk_console_get_depends:
+ **/
+static gboolean
+pk_console_get_depends (PkBitfield filters, const gchar *package, GError **error)
+{
+ gboolean ret;
+ gchar *package_id;
+ gchar **package_ids;
+ GError *error_local = NULL;
+
+ package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
+ if (package_id == 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);
+ g_error_free (error_local);
+ return FALSE;
+ }
+ package_ids = pk_package_ids_from_id (package_id);
+ ret = pk_client_get_depends (client, 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);
+ }
+ g_strfreev (package_ids);
+ g_free (package_id);
+ return ret;
+}
+
+/**
+ * pk_console_get_details:
+ **/
+static gboolean
+pk_console_get_details (const gchar *package, GError **error)
+{
+ gboolean ret;
+ gchar *package_id;
+ gchar **package_ids;
+ GError *error_local = NULL;
+
+ package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
+ if (package_id == 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);
+ g_error_free (error_local);
+ return FALSE;
+ }
+ package_ids = pk_package_ids_from_id (package_id);
+ ret = pk_client_get_details (client, 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);
+ }
+ g_strfreev (package_ids);
+ g_free (package_id);
+ return ret;
+}
+
+/**
+ * pk_console_get_files:
+ **/
+static gboolean
+pk_console_get_files (const gchar *package, GError **error)
+{
+ gboolean ret;
+ gchar *package_id;
+ gchar **package_ids;
+ GError *error_local = NULL;
+
+ package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &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, _("This tool could not find the files for %s: %s"), package, error_local->message);
+ g_error_free (error_local);
+ return FALSE;
+ }
+ package_ids = pk_package_ids_from_id (package_id);
+ ret = pk_client_get_files (client, 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);
+ }
+ g_strfreev (package_ids);
+ g_free (package_id);
+ return ret;
+}
+
+/**
+ * pk_console_get_update_detail
+ **/
+static gboolean
+pk_console_get_update_detail (const gchar *package, GError **error)
+{
+ gboolean ret;
+ gchar *package_id;
+ gchar **package_ids;
+ GError *error_local = NULL;
+
+ package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), package, &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, _("This tool could not find the update details for %s: %s"), package, 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 (client, 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);
+ }
+ g_strfreev (package_ids);
+ g_free (package_id);
+ return ret;
+}
+
+/**
+ * pk_console_error_code_cb:
+ **/
+static void
+pk_console_error_code_cb (PkErrorCodeEnum error_code, const gchar *details, gpointer data)
+{
+ PkRoleEnum role;
+
+ pk_client_get_role (client, &role, NULL, NULL);
+
+ /* handled */
+ if (need_requeue) {
+ if (error_code == PK_ERROR_ENUM_NO_LICENSE_AGREEMENT ||
+ pk_error_code_is_need_untrusted (error_code)) {
+ egg_debug ("ignoring %s error as handled", pk_error_enum_to_text (error_code));
+ return;
+ }
+ egg_warning ("set requeue, but did not handle error");
+ }
+
+ /* TRANSLATORS: This was an unhandled error, and we don't have _any_ context */
+ g_print ("%s %s: %s\n", _("Error:"), pk_error_enum_to_text (error_code), details);
+}
+
+#endif
+
+/**
+ * pk_connection_changed_cb:
+ **/
+static void
+pk_connection_changed_cb (PkControl *control_, gboolean connected, gpointer data)
+{
+ /* if the daemon crashed, don't hang around */
+ if (!connected) {
+ /* TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle */
+ g_print ("%s\n", _("The daemon crashed mid-transaction!"));
+ _exit (2);
+ }
+}
+
+/**
+ * pk_console_sigint_handler:
+ **/
+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 */
+ pk_client_get_role (client, &role, NULL, NULL);
+ if (role != PK_ROLE_ENUM_UNKNOWN) {
+ ret = pk_client_cancel (client, &error);
+ if (!ret) {
+ egg_warning ("failed to cancel normal client: %s", error->message);
+ g_error_free (error);
+ error = NULL;
+ }
+ }
+ pk_client_get_role (client_sync, &role, NULL, NULL);
+ if (role != PK_ROLE_ENUM_UNKNOWN) {
+ ret = pk_client_cancel (client_sync, &error);
+ if (!ret) {
+ egg_warning ("failed to cancel task client: %s", error->message);
+ g_error_free (error);
+ }
+ }
+#endif
+
+ /* kill ourselves */
+ egg_debug ("Retrying SIGINT");
+ kill (getpid (), SIGINT);
+}
+
+/**
+ * pk_console_get_summary:
+ **/
+static gchar *
+pk_console_get_summary (void)
+{
+ GString *string;
+ string = g_string_new ("");
+
+ /* TRANSLATORS: This is the header to the --help menu */
+ g_string_append_printf (string, "%s\n\n%s\n", _("PackageKit Console Interface"),
+ /* these are commands we can use with pkcon */
+ _("Subcommands:"));
+
+ /* always */
+ g_string_append_printf (string, " %s\n", "get-actions");
+ g_string_append_printf (string, " %s\n", "get-groups");
+ g_string_append_printf (string, " %s\n", "get-filters");
+ g_string_append_printf (string, " %s\n", "get-transactions");
+ g_string_append_printf (string, " %s\n", "get-time");
+
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_NAME) ||
+ pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_DETAILS) ||
+ 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_DOWNLOAD_PACKAGES))
+ g_string_append_printf (string, " %s\n", "download [directory] [packages]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_SIGNATURE))
+ g_string_append_printf (string, " %s\n", "install-sig [type] [key_id] [package_id]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_REMOVE_PACKAGES))
+ g_string_append_printf (string, " %s\n", "remove [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_SYSTEM) ||
+ pk_bitfield_contain (roles, PK_ROLE_ENUM_UPDATE_PACKAGES))
+ g_string_append_printf (string, " %s\n", "update <package>");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_REFRESH_CACHE))
+ g_string_append_printf (string, " %s\n", "refresh");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_RESOLVE))
+ g_string_append_printf (string, " %s\n", "resolve [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_UPDATES))
+ g_string_append_printf (string, " %s\n", "get-updates");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_DEPENDS))
+ g_string_append_printf (string, " %s\n", "get-depends [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_REQUIRES))
+ g_string_append_printf (string, " %s\n", "get-requires [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_DETAILS))
+ g_string_append_printf (string, " %s\n", "get-details [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_DISTRO_UPGRADES))
+ g_string_append_printf (string, " %s\n", "get-distro-upgrades");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_FILES))
+ g_string_append_printf (string, " %s\n", "get-files [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_UPDATE_DETAIL))
+ g_string_append_printf (string, " %s\n", "get-update-detail [package]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_PACKAGES))
+ g_string_append_printf (string, " %s\n", "get-packages");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_ROLLBACK))
+ g_string_append_printf (string, " %s\n", "rollback");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_REPO_LIST))
+ g_string_append_printf (string, " %s\n", "repo-list");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_REPO_ENABLE))
+ g_string_append_printf (string, " %s\n", "repo-enable [repo_id]");
+ g_string_append_printf (string, " %s\n", "repo-disable [repo_id]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_REPO_SET_DATA))
+ g_string_append_printf (string, " %s\n", "repo-set-data [repo_id] [parameter] [value];");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_WHAT_PROVIDES))
+ g_string_append_printf (string, " %s\n", "what-provides [search]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_ACCEPT_EULA))
+ g_string_append_printf (string, " %s\n", "accept-eula [eula-id]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_CATEGORIES))
+ g_string_append_printf (string, " %s\n", "get-categories");
+ return g_string_free (string, FALSE);
+}
+
+/**
+ * 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_get_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;
+ PkResults *results = NULL;
+ 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 (client, 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);
+
+ /* repo_signature_required */
+ array = pk_results_get_repo_signature_required_array (results);
+ g_ptr_array_foreach (array, (GFunc) pk_console_repo_signature_required_cb, NULL);
+ g_ptr_array_unref (array);
+
+ /* eula_required */
+ array = pk_results_get_eula_required_array (results);
+ g_ptr_array_foreach (array, (GFunc) pk_console_eula_required_cb, NULL);
+ g_ptr_array_unref (array);
+out:
+ g_main_loop_quit (loop);
+}
+
+/**
+ * main:
+ **/
+int
+main (int argc, char *argv[])
+{
+ GError *error = NULL;
+ gboolean verbose = FALSE;
+ gboolean program_version = FALSE;
+ GOptionContext *context;
+ gchar *options_help;
+ gchar *filter = NULL;
+ gchar *summary = NULL;
+ const gchar *mode;
+ const gchar *value = NULL;
+ const gchar *details = NULL;
+ const gchar *parameter = NULL;
+// PkBitfield groups;
+// gchar *text;
+// gboolean maybe_sync = TRUE;
+ PkBitfield filters = 0;
+ gint retval = EXIT_SUCCESS;
+
+ const GOptionEntry options[] = {
+ { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+ /* TRANSLATORS: command line argument, if we should show debugging information */
+ _("Show extra debugging information"), NULL },
+ { "version", '\0', 0, G_OPTION_ARG_NONE, &program_version,
+ /* TRANSLATORS: command line argument, just show the version string */
+ _("Show the program version and exit"), NULL},
+ { "filter", '\0', 0, G_OPTION_ARG_STRING, &filter,
+ /* TRANSLATORS: command line argument, use a filter to narrow down results */
+ _("Set the filter, e.g. installed"), NULL},
+ { "nowait", 'n', 0, G_OPTION_ARG_NONE, &nowait,
+ /* TRANSLATORS: command line argument, work asynchronously */
+ _("Exit without waiting for actions to complete"), 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 ();
+
+ /* do stuff on ctrl-c */
+ signal (SIGINT, pk_console_sigint_handler);
+
+ /* check if we are on console */
+ if (isatty (fileno (stdout)) == 1)
+ is_console = TRUE;
+
+ /* 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, NULL);
+ summary = pk_console_get_summary ();
+ progressbar = pk_progress_bar_new ();
+ pk_progress_bar_set_size (progressbar, 25);
+ pk_progress_bar_set_padding (progressbar, 20);
+
+ context = g_option_context_new ("PackageKit Console Program");
+ g_option_context_set_summary (context, summary) ;
+ g_option_context_add_main_entries (context, options, NULL);
+ g_option_context_parse (context, &argc, &argv, NULL);
+ /* Save the usage string in case command parsing fails. */
+ options_help = g_option_context_get_help (context, TRUE, NULL);
+ g_option_context_free (context);
+
+ /* we are now parsed */
+ egg_debug_init (verbose);
+
+ if (program_version) {
+ g_print (VERSION "\n");
+ goto out_last;
+ }
+
+ if (argc < 2) {
+ g_print ("%s", options_help);
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out_last;
+ }
+
+ loop = g_main_loop_new (NULL, FALSE);
+
+ /* watch when the daemon aborts */
+ g_signal_connect (control, "connection-changed",
+ G_CALLBACK (pk_connection_changed_cb), loop);
+
+ /* create transactions */
+ client = pk_client_new ();
+
+ /* check filter */
+ if (filter != NULL) {
+ filters = pk_filter_bitfield_from_text (filter);
+ if (filters == 0) {
+ /* TRANSLATORS: The user specified an incorrect filter */
+ error = g_error_new (1, 0, "%s: %s", _("The filter specified was invalid"), filter);
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ }
+ egg_debug ("filter=%s, filters=%" PK_BITFIELD_FORMAT, filter, filters);
+
+ mode = argv[1];
+ if (argc > 2)
+ value = argv[2];
+ if (argc > 3)
+ details = argv[3];
+ if (argc > 4)
+ parameter = argv[4];
+
+ /* parse the big list */
+ if (strcmp (mode, "search") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: a search type can be name, details, file, etc */
+ error = g_error_new (1, 0, "%s", _("A search type is required, e.g. name"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+
+ } else if (strcmp (value, "name") == 0) {
+ if (details == NULL) {
+ /* TRANSLATORS: the user needs to provide a search term */
+ error = g_error_new (1, 0, "%s", _("A search term is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+// pk_progress_bar_start (progressbar, _("Searching"));
+ /* fire off an async request */
+ pk_client_search_name_async (client, filters, details, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (value, "details") == 0) {
+ if (details == NULL) {
+ /* TRANSLATORS: the user needs to provide a search term */
+ error = g_error_new (1, 0, "%s", _("A search term is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ /* fire off an async request */
+ pk_client_search_details_async (client, filters, details, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (value, "group") == 0) {
+ if (details == NULL) {
+ /* TRANSLATORS: the user needs to provide a search term */
+ error = g_error_new (1, 0, "%s", _("A search term is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ /* fire off an async request */
+ pk_client_search_group_async (client, filters, details, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (value, "file") == 0) {
+ if (details == NULL) {
+ /* TRANSLATORS: the user needs to provide a search term */
+ error = g_error_new (1, 0, "%s", _("A search term is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ /* fire off an async request */
+ pk_client_search_file_async (client, filters, details, NULL,
+ (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"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_install_stuff (client, argv, &error);
+#endif
+
+ } else if (strcmp (mode, "install-sig") == 0) {
+ if (value == NULL || details == NULL || parameter == NULL) {
+ /* TRANSLATORS: geeky error, 99.9999% of users won't see this */
+ error = g_error_new (1, 0, "%s", _("A type, key_id and package_id are required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_install_signature_async (client, PK_SIGTYPE_ENUM_GPG, details, parameter, NULL,
+ (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 */
+ error = g_error_new (1, 0, "%s", _("A package name to remove is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_remove_packages (client, argv, &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 */
+ error = g_error_new (1, 0, "%s", _("A destination directory and the package names to download are required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = g_file_test (value, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR);
+ if (!ret) {
+ /* TRANSLATORS: the directory does not exist, so we can't continue */
+ error = g_error_new (1, 0, "%s: %s", _("Directory not found"), value);
+ retval = PK_EXIT_CODE_FILE_NOT_FOUND;
+ goto out;
+ }
+ ret = pk_console_download_packages (client, argv, value, &error);
+#endif
+ } else if (strcmp (mode, "accept-eula") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: geeky error, 99.9999% of users won't see this */
+ error = g_error_new (1, 0, "%s", _("A licence identifier (eula-id) is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_accept_eula_async (client, value, NULL,
+ (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 */
+ error = g_error_new (1, 0, "%s", _("A transaction identifier (tid) is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_rollback_async (client, value, NULL,
+ (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 (client, TRUE, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+ } else {
+ ret = pk_console_update_package (client, value, &error);
+ }
+#endif
+
+ } else if (strcmp (mode, "resolve") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user did not specify a package name */
+ error = g_error_new (1, 0, "%s", _("A package name to resolve is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_resolve_async (client, filters, argv+2, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (mode, "repo-enable") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user did not specify a repository (software source) name */
+ error = g_error_new (1, 0, "%s", _("A repository name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_repo_enable_async (client, value, TRUE, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (mode, "repo-disable") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user did not specify a repository (software source) name */
+ error = g_error_new (1, 0, "%s", _("A repository name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_repo_enable_async (client, value, FALSE, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (mode, "repo-set-data") == 0) {
+ if (value == NULL || details == NULL || parameter == NULL) {
+ /* TRANSLATORS: The user didn't provide any data */
+ error = g_error_new (1, 0, "%s", _("A repo name, parameter and value are required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_repo_set_data_async (client, value, details, parameter, NULL,
+ (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 (client, 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;
+ if (value == NULL) {
+ /* TRANSLATORS: The user didn't specify what action to use */
+ error = g_error_new (1, 0, "%s", _("An action, e.g. 'update-system' is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ role = pk_role_enum_from_text (value);
+ if (role == PK_ROLE_ENUM_UNKNOWN) {
+ /* TRANSLATORS: The user specified an invalid action */
+ error = g_error_new (1, 0, "%s", _("A correct role is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_control_get_time_since_action (control, role, &time_ms, &error);
+ if (!ret) {
+ /* 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"));
+ retval = EXIT_FAILURE;
+ goto out;
+ }
+ g_print ("time since %s is %is\n", value, time_ms);
+
+ } else if (strcmp (mode, "get-depends") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user did not provide a package name */
+ error = g_error_new (1, 0, "%s", _("A package name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_get_depends (client, filters, value, &error);
+#endif
+ } else if (strcmp (mode, "get-distro-upgrades") == 0) {
+ pk_client_get_distro_upgrades_async (client, NULL,
+ (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 */
+ error = g_error_new (1, 0, "%s", _("A package name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_get_update_detail (client, value, &error);
+
+ } else if (strcmp (mode, "get-requires") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user did not provide a package name */
+ error = g_error_new (1, 0, "%s", _("A package name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_get_requires (client, filters, value, &error);
+#endif
+
+ } else if (strcmp (mode, "what-provides") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it */
+ error = g_error_new (1, 0, "%s", _("A package provide string is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_client_what_provides_async (client, filters, PK_PROVIDES_ENUM_CODEC, value, NULL,
+ (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 */
+ error = g_error_new (1, 0, "%s", _("A package name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_get_details (client, value, &error);
+
+ } else if (strcmp (mode, "get-files") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user did not provide a package name */
+ error = g_error_new (1, 0, "%s", _("A package name is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_get_files (client, value, &error);
+
+ } else if (strcmp (mode, "list-create") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user didn't specify a filename to create as a list */
+ error = g_error_new (1, 0, "%s", _("A list file name to create is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_list_create (client, value, &error);
+
+ } else if (strcmp (mode, "list-diff") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user didn't specify a filename to open as a list */
+ error = g_error_new (1, 0, "%s", _("A list file to open is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_list_diff (client, value, &error);
+
+ } else if (strcmp (mode, "list-install") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: The user didn't specify a filename to open as a list */
+ error = g_error_new (1, 0, "%s", _("A list file to open is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ ret = pk_console_list_install (client, value, &error);
+#endif
+ } else if (strcmp (mode, "get-updates") == 0) {
+ pk_client_get_updates_async (client, filters, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (mode, "get-categories") == 0) {
+ pk_client_get_categories_async (client, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (mode, "get-packages") == 0) {
+ pk_client_get_packages_async (client, filters, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+#if 0
+ } else if (strcmp (mode, "get-actions") == 0) {
+ text = pk_role_bitfield_to_text (roles);
+ g_strdelimit (text, ";", '\n');
+ g_print ("%s\n", text);
+ g_free (text);
+ /* these can never fail */
+ ret = TRUE;
+
+ } else if (strcmp (mode, "get-filters") == 0) {
+ filters = pk_control_get_filters (control, NULL);
+ text = pk_filter_bitfield_to_text (filters);
+ g_strdelimit (text, ";", '\n');
+ g_print ("%s\n", text);
+ g_free (text);
+ /* these can never fail */
+ ret = TRUE;
+
+ } else if (strcmp (mode, "get-groups") == 0) {
+ groups = pk_control_get_groups (control, NULL);
+ text = pk_group_bitfield_to_text (groups);
+ g_strdelimit (text, ";", '\n');
+ g_print ("%s\n", text);
+ g_free (text);
+ /* these can never fail */
+ ret = TRUE;
+#endif
+ } else if (strcmp (mode, "get-transactions") == 0) {
+ pk_client_get_old_transactions_async (client, 10, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else if (strcmp (mode, "refresh") == 0) {
+ /* special case - this takes a long time, and doesn't do packages */
+// pk_console_start_bar ("refresh-cache");
+ pk_client_refresh_cache_async (client, FALSE, NULL,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
+ } else {
+ /* TRANSLATORS: The user tried to use an unsupported option on the command line */
+ error = g_error_new (1, 0, _("Option '%s' is not supported"), mode);
+ }
+
+ /* do we wait for the method? */
+ if (!nowait && error == NULL)
+ g_main_loop_run (loop);
+
+out:
+ if (error != NULL) {
+// /* 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 */
+ g_print ("%s: %s\n", _("Command failed"), error->message);
+ if (retval == EXIT_SUCCESS)
+ retval = EXIT_FAILURE;
+ }
+
+ g_free (options_help);
+ g_free (filter);
+ g_free (summary);
+ g_object_unref (progressbar);
+ g_object_unref (control);
+// g_object_unref (client);
+// g_object_unref (client_sync);
+ g_object_unref (client);
+out_last:
+ return retval;
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+egg_test_console (EggTest *test)
+{
+ gchar *text_safe;
+
+ if (!egg_test_start (test, "PkConsole"))
+ return;
+
+ /************************************************************
+ **************** Padding ******************
+ ************************************************************/
+ egg_test_title (test, "pad smaller");
+ text_safe = pk_strpad ("richard", 10);
+ if (g_strcmp0 (text_safe, "richard ") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "failed the padd '%s'", text_safe);
+ g_free (text_safe);
+
+ /************************************************************/
+ egg_test_title (test, "pad NULL");
+ text_safe = pk_strpad (NULL, 10);
+ if (g_strcmp0 (text_safe, " ") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "failed the padd '%s'", text_safe);
+ g_free (text_safe);
+
+ /************************************************************/
+ egg_test_title (test, "pad nothing");
+ text_safe = pk_strpad ("", 10);
+ if (g_strcmp0 (text_safe, " ") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "failed the padd '%s'", text_safe);
+ g_free (text_safe);
+
+ /************************************************************/
+ egg_test_title (test, "pad over");
+ text_safe = pk_strpad ("richardhughes", 10);
+ if (g_strcmp0 (text_safe, "richardhughes") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "failed the padd '%s'", text_safe);
+ g_free (text_safe);
+
+ /************************************************************/
+ egg_test_title (test, "pad zero");
+ text_safe = pk_strpad ("rich", 0);
+ if (g_strcmp0 (text_safe, "rich") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "failed the padd '%s'", text_safe);
+ g_free (text_safe);
+ egg_test_end (test);
+}
+#endif
+
diff --git a/client/pk-progress-bar.c b/client/pk-progress-bar.c
new file mode 120000
index 0000000..cee68ed
--- /dev/null
+++ b/client/pk-progress-bar.c
@@ -0,0 +1 @@
+../contrib/debuginfo-install/pk-progress-bar.c
\ No newline at end of file
diff --git a/client/pk-progress-bar.h b/client/pk-progress-bar.h
new file mode 120000
index 0000000..2c18deb
--- /dev/null
+++ b/client/pk-progress-bar.h
@@ -0,0 +1 @@
+../contrib/debuginfo-install/pk-progress-bar.h
\ No newline at end of file
commit 925a1d0d70b6aa36b32b78d2ddcde2f8ad891750
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 16:04:14 2009 +0100
trivial: gitignore update
diff --git a/client/.gitignore b/client/.gitignore
index f2c5429..b724533 100644
--- a/client/.gitignore
+++ b/client/.gitignore
@@ -4,9 +4,10 @@
pk-marshal.h
pk-marshal.c
pkcon
+pkcon-test
pkmon
+pkmon-test
pkgenpack
-pk-import-specspo
pk-self-test
*.glade.bak
*.gladep
commit 96bfc2d2fc2df2608b9d7d5b22082010f5bd91b6
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 16:02:50 2009 +0100
client: split out the non-packagekit-glib specific common code into pk-text
diff --git a/client/Makefile.am b/client/Makefile.am
index 5772125..4a9cf54 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -64,6 +64,8 @@ pkcon_SOURCES = \
egg-string.c \
egg-string.h \
pk-console.c \
+ pk-text.c \
+ pk-text.h \
pk-tools-common.c \
pk-tools-common.h \
$(NULL)
@@ -100,6 +102,8 @@ pkgenpack_SOURCES = \
egg-string.c \
egg-string.h \
pk-generate-pack.c \
+ pk-text.c \
+ pk-text.h \
pk-tools-common.c \
pk-tools-common.h \
$(NULL)
diff --git a/client/pk-console.c b/client/pk-console.c
index 6865875..9a1bfaa 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -38,9 +38,12 @@
#include "egg-debug.h"
#include "egg-string.h"
+#include "pk-text.h"
#include "pk-tools-common.h"
#define PROGRESS_BAR_SIZE 15
+#define PK_EXIT_CODE_SYNTAX_INVALID 3
+#define PK_EXIT_CODE_FILE_NOT_FOUND 4
static GMainLoop *loop = NULL;
static PkBitfield roles;
@@ -2016,7 +2019,7 @@ main (int argc, char *argv[])
gchar *text;
gboolean maybe_sync = TRUE;
PkBitfield filters = 0;
- gint retval = PK_EXIT_CODE_SUCCESS;
+ gint retval = EXIT_SUCCESS;
const GOptionEntry options[] = {
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
@@ -2337,7 +2340,7 @@ main (int argc, char *argv[])
if (!ret) {
/* 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"));
- retval = PK_EXIT_CODE_FAILED;
+ retval = EXIT_FAILURE;
goto out;
}
g_print ("time since %s is %is\n", value, time_ms);
@@ -2496,8 +2499,8 @@ out:
g_print ("%s: %s\n", _("Command failed"), error->message);
g_error_free (error);
}
- if (retval == PK_EXIT_CODE_SUCCESS)
- retval = PK_EXIT_CODE_FAILED;
+ if (retval == EXIT_SUCCESS)
+ retval = EXIT_FAILURE;
}
g_free (options_help);
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index 0384cf0..c6a5760 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -24,6 +24,7 @@
#include <unistd.h>
#include <signal.h>
+#include <stdlib.h>
#include <locale.h>
#include <glib.h>
#include <glib/gi18n.h>
@@ -33,6 +34,7 @@
#include "egg-debug.h"
#include "egg-string.h"
+#include "pk-text.h"
#include "pk-tools-common.h"
static guint last_percentage = 0;
diff --git a/client/pk-monitor.c b/client/pk-monitor.c
index 3ec577c..c7bd684 100644
--- a/client/pk-monitor.c
+++ b/client/pk-monitor.c
@@ -32,7 +32,7 @@
#include "egg-debug.h"
-#include "pk-tools-common.h"
+#include "pk-text.h"
static PkControl *control = NULL;
static gboolean verbose = FALSE;
@@ -121,7 +121,7 @@ main (int argc, char *argv[])
gboolean program_version = FALSE;
gchar *state;
GOptionContext *context;
- gint retval = PK_EXIT_CODE_SUCCESS;
+ gint retval = EXIT_SUCCESS;
const GOptionEntry options[] = {
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
@@ -181,7 +181,7 @@ main (int argc, char *argv[])
ret = pk_task_list_refresh (tlist);
if (!ret) {
g_print ("%s\n", _("Cannot show the list of transactions"));
- retval = PK_EXIT_CODE_FAILED;
+ retval = EXIT_FAILURE;
goto out;
}
pk_task_list_print (tlist);
diff --git a/client/pk-text.c b/client/pk-text.c
new file mode 100644
index 0000000..8793ec9
--- /dev/null
+++ b/client/pk-text.c
@@ -0,0 +1,91 @@
+/* -*- 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.
+ */
+
+#include "config.h"
+#include <glib.h>
+#include <stdio.h>
+#include <glib/gi18n.h>
+
+#include <egg-debug.h>
+
+#include "pk-text.h"
+
+/**
+ * pk_console_get_number:
+ **/
+guint
+pk_console_get_number (const gchar *question, guint maxnum)
+{
+ gint answer = 0;
+ gint retval;
+
+ /* pretty print */
+ g_print ("%s", question);
+
+ do {
+ /* get a number */
+ retval = scanf("%u", &answer);
+
+ /* positive */
+ if (retval == 1 && answer > 0 && answer <= (gint) maxnum)
+ break;
+ g_print (_("Please enter a number from 1 to %i: "), maxnum);
+ } while (TRUE);
+ return answer;
+}
+
+/**
+ * pk_console_get_prompt:
+ **/
+gboolean
+pk_console_get_prompt (const gchar *question, gboolean defaultyes)
+{
+ gchar answer = '\0';
+
+ /* pretty print */
+ g_print ("%s", question);
+ if (defaultyes)
+ g_print (" [Y/n] ");
+ else
+ g_print (" [N/y] ");
+
+ do {
+ /* ITS4: ignore, we are copying into the same variable, not a string */
+ answer = (gchar) getchar();
+
+ /* positive */
+ if (answer == 'y' || answer == 'Y')
+ return TRUE;
+ /* negative */
+ if (answer == 'n' || answer == 'N')
+ return FALSE;
+
+ /* default choice */
+ if (answer == '\n' && defaultyes)
+ return TRUE;
+ if (answer == '\n' && !defaultyes)
+ return FALSE;
+ } while (TRUE);
+
+ /* keep GCC happy */
+ return FALSE;
+}
+
diff --git a/client/pk-text.h b/client/pk-text.h
new file mode 100644
index 0000000..75899a6
--- /dev/null
+++ b/client/pk-text.h
@@ -0,0 +1,35 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PK_TEXT_H
+#define __PK_TEXT_H
+
+#include <glib.h>
+
+guint pk_console_get_number (const gchar *question,
+ guint maxnum);
+gboolean pk_console_get_prompt (const gchar *question,
+ gboolean defaultyes);
+
+#endif /* __PK_TEXT_H */
+
+
+
diff --git a/client/pk-tools-common.c b/client/pk-tools-common.c
index ebd8f9d..915dc18 100644
--- a/client/pk-tools-common.c
+++ b/client/pk-tools-common.c
@@ -28,6 +28,7 @@
#include <egg-debug.h>
#include "pk-tools-common.h"
+#include "pk-text.h"
/**
* pk_console_resolve:
@@ -140,64 +141,3 @@ pk_console_resolve_package_id (const PkPackageList *list, GError **error)
return pk_package_id_to_string (obj->id);
}
-/**
- * pk_console_get_number:
- **/
-guint
-pk_console_get_number (const gchar *question, guint maxnum)
-{
- gint answer = 0;
- gint retval;
-
- /* pretty print */
- g_print ("%s", question);
-
- do {
- /* get a number */
- retval = scanf("%u", &answer);
-
- /* positive */
- if (retval == 1 && answer > 0 && answer <= (gint) maxnum)
- break;
- g_print (_("Please enter a number from 1 to %i: "), maxnum);
- } while (TRUE);
- return answer;
-}
-
-/**
- * pk_console_get_prompt:
- **/
-gboolean
-pk_console_get_prompt (const gchar *question, gboolean defaultyes)
-{
- gchar answer = '\0';
-
- /* pretty print */
- g_print ("%s", question);
- if (defaultyes)
- g_print (" [Y/n] ");
- else
- g_print (" [N/y] ");
-
- do {
- /* ITS4: ignore, we are copying into the same variable, not a string */
- answer = (gchar) getchar();
-
- /* positive */
- if (answer == 'y' || answer == 'Y')
- return TRUE;
- /* negative */
- if (answer == 'n' || answer == 'N')
- return FALSE;
-
- /* default choice */
- if (answer == '\n' && defaultyes)
- return TRUE;
- if (answer == '\n' && !defaultyes)
- return FALSE;
- } while (TRUE);
-
- /* keep GCC happy */
- return FALSE;
-}
-
diff --git a/client/pk-tools-common.h b/client/pk-tools-common.h
index fbfe357..93c9ecd 100644
--- a/client/pk-tools-common.h
+++ b/client/pk-tools-common.h
@@ -25,25 +25,6 @@
#include <glib/gi18n.h>
#include <packagekit-glib/packagekit.h>
-/* Reserved exit codes:
- * 1 miscellaneous errors, such as "divide by zero"
- * 2 misuse of shell builtins
- * 126 command invoked cannot execute
- * 127 "command not found"
- * 128 invalid argument to exit
- * 128+n fatal error signal "n"
- * 130 script terminated by Control-C
- * 255 exit status out of range
- */
-#define PK_EXIT_CODE_SUCCESS 0
-#define PK_EXIT_CODE_FAILED 1
-#define PK_EXIT_CODE_SYNTAX_INVALID 3
-#define PK_EXIT_CODE_FILE_NOT_FOUND 4
-
-guint pk_console_get_number (const gchar *question,
- guint maxnum);
-gboolean pk_console_get_prompt (const gchar *question,
- gboolean defaultyes);
PkPackageList *pk_console_resolve (PkBitfield filter,
const gchar *package,
GError **error);
commit 6af81fc35c42c999c13a318e0238ab71ef7255c2
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 15:49:43 2009 +0100
glib: fix up a few shared files so glib2 can build with Werror flags set
diff --git a/lib/packagekit-glib/egg-string.c b/lib/packagekit-glib/egg-string.c
index 6203029..054b0cc 100644
--- a/lib/packagekit-glib/egg-string.c
+++ b/lib/packagekit-glib/egg-string.c
@@ -238,8 +238,9 @@ egg_strreplace (const gchar *text, const gchar *find, const gchar *replace)
#include "egg-test.h"
void
-egg_string_test (EggTest *test)
+egg_string_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
gboolean ret;
gchar *text_safe;
const gchar *temp;
diff --git a/lib/packagekit-glib/egg-string.h b/lib/packagekit-glib/egg-string.h
index 668a824..5c7cf32 100644
--- a/lib/packagekit-glib/egg-string.h
+++ b/lib/packagekit-glib/egg-string.h
@@ -41,6 +41,7 @@ gboolean egg_strtouint (const gchar *text,
gchar *egg_strreplace (const gchar *text,
const gchar *find,
const gchar *replace);
+void egg_string_test (gpointer user_data);
G_END_DECLS
diff --git a/lib/packagekit-glib/pk-bitfield.c b/lib/packagekit-glib/pk-bitfield.c
index 347966e..72f3ea6 100644
--- a/lib/packagekit-glib/pk-bitfield.c
+++ b/lib/packagekit-glib/pk-bitfield.c
@@ -323,11 +323,12 @@ out:
#include "egg-test.h"
void
-pk_bitfield_test (EggTest *test)
+pk_bitfield_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
gchar *text;
PkBitfield filter;
- guint value;
+ gint value;
PkBitfield values;
if (!egg_test_start (test, "PkBitfield"))
diff --git a/lib/packagekit-glib/pk-bitfield.h b/lib/packagekit-glib/pk-bitfield.h
index fddca3d..07bdbec 100644
--- a/lib/packagekit-glib/pk-bitfield.h
+++ b/lib/packagekit-glib/pk-bitfield.h
@@ -51,6 +51,7 @@ 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
diff --git a/lib/packagekit-glib/pk-common.c b/lib/packagekit-glib/pk-common.c
index 1db2a69..b8bc3cb 100644
--- a/lib/packagekit-glib/pk-common.c
+++ b/lib/packagekit-glib/pk-common.c
@@ -599,8 +599,9 @@ pk_va_list_to_argv_test (const gchar *first_element, ...)
}
void
-pk_common_test (EggTest *test)
+pk_common_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
gboolean ret;
gchar **array;
gchar *text_safe;
diff --git a/lib/packagekit-glib/pk-common.h b/lib/packagekit-glib/pk-common.h
index 4555cee..104bbc1 100644
--- a/lib/packagekit-glib/pk-common.h
+++ b/lib/packagekit-glib/pk-common.h
@@ -73,6 +73,7 @@ G_BEGIN_DECLS
*/
#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)
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 4053bff..1d9b8e5 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -1048,8 +1048,9 @@ pk_authorize_type_enum_to_text (PkAuthorizeEnum authorize_type)
#include "egg-test.h"
void
-pk_enum_test (EggTest *test)
+pk_enum_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
const gchar *string;
PkRoleEnum role_value;
guint i;
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 292111d..6101d6e 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -590,6 +590,7 @@ typedef enum {
} 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;
commit 762dc95a34c0a8beae0dc12fa1bc72c638f8a11b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 15:49:01 2009 +0100
glib: Fix up the PkControl properties with the interface change
diff --git a/lib/packagekit-glib/pk-control.c b/lib/packagekit-glib/pk-control.c
index 68b394f..bfba90f 100644
--- a/lib/packagekit-glib/pk-control.c
+++ b/lib/packagekit-glib/pk-control.c
@@ -1094,11 +1094,11 @@ out:
static void
pk_control_collect_props_cb (const char *key, const GValue *value, PkControl *control)
{
- if (g_strcmp0 (key, "version-major") == 0)
+ 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)
+ 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)
+ else if (g_strcmp0 (key, "version-micro") == 0 || g_strcmp0 (key, "VersionMicro") == 0)
control->priv->version_micro = g_value_get_uint (value);
else {
egg_warning ("unhandled property '%s'", key);
commit 8a3d39740615de74319def0355d0540fb97e630c
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 15:47:58 2009 +0100
glib2: fix up a couple of memory leaks and make valgrind and gdb happy
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 169cad2..9c837a1 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -111,7 +111,7 @@ pk_self_test_LDADD = \
$(ARCHIVE_LIBS) \
$(NULL)
-pk_self_test_CFLAGS = -DEGG_TEST $(AM_CFLAGS)
+pk_self_test_CFLAGS = -DEGG_TEST $(AM_CFLAGS) $(WARNINGFLAGS_C)
TESTS = pk-self-test
endif
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 3ff01a2..0b292e6 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -301,18 +301,6 @@ pk_client_state_finish (PkClientState *state, GError *error)
PkClientPrivate *priv;
priv = state->client->priv;
- g_free (state->directory);
- g_free (state->eula_id);
- g_free (state->key_id);
- g_free (state->package_id);
- g_free (state->parameter);
- g_free (state->repo_id);
- g_free (state->search);
- g_free (state->value);
- g_strfreev (state->files);
- g_strfreev (state->package_ids);
- g_object_unref (state->progress);
-
if (state->client != NULL)
g_object_remove_weak_pointer (G_OBJECT (state->client), (gpointer) &state->client);
@@ -339,9 +327,24 @@ pk_client_state_finish (PkClientState *state, GError *error)
/* remove from list */
g_ptr_array_remove (state->client->priv->calls, state);
+ egg_debug ("state array remove %p", state);
/* complete */
g_simple_async_result_complete_in_idle (state->res);
+
+ /* destroy state */
+ g_free (state->directory);
+ g_free (state->eula_id);
+ g_free (state->key_id);
+ g_free (state->package_id);
+ g_free (state->parameter);
+ g_free (state->repo_id);
+ g_free (state->search);
+ g_free (state->value);
+ g_free (state->tid);
+ g_strfreev (state->files);
+ g_strfreev (state->package_ids);
+ g_object_unref (state->progress);
g_object_unref (state->results);
g_object_unref (state->res);
g_slice_free (PkClientState, state);
@@ -1053,9 +1056,6 @@ pk_client_set_locale_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientState
g_assert_not_reached ();
}
- /* track state */
- g_ptr_array_add (state->client->priv->calls, state);
-
/* we've sent this async */
egg_debug ("sent request");
@@ -1105,6 +1105,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
/* track state */
g_ptr_array_add (state->client->priv->calls, state);
+ egg_debug ("state array add %p", state);
/* we've sent this async */
egg_debug ("sent locale request");
@@ -2925,6 +2926,7 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
/* track state */
g_ptr_array_add (client->priv->calls, state);
+ egg_debug ("state array add %p", state);
g_object_unref (res);
}
@@ -3288,8 +3290,9 @@ pk_client_test_cancel (GCancellable *cancellable)
}
void
-pk_client_test (EggTest *test)
+pk_client_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
PkClient *client;
gchar **package_ids;
gchar *file;
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index 9ad4dea..eed293d 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -100,6 +100,7 @@ struct _PkClientClass
GQuark pk_client_error_quark (void);
GType pk_client_get_type (void);
PkClient *pk_client_new (void);
+void pk_client_test (gpointer user_data);
/* get transaction results */
PkResults *pk_client_generic_finish (PkClient *client,
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index c663335..8256488 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -266,8 +266,9 @@ pk_control_sync_new (void)
#include "egg-test.h"
void
-pk_control_sync_test (EggTest *test)
+pk_control_sync_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
PkControlSync *control;
GError *error = NULL;
PkBitfield bitfield;
@@ -299,7 +300,6 @@ pk_control_sync_test (EggTest *test)
g_free (text);
g_object_unref (control);
-out:
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
index 2ced5c3..f9c3b3b 100644
--- a/lib/packagekit-glib2/pk-control-sync.h
+++ b/lib/packagekit-glib2/pk-control-sync.h
@@ -64,6 +64,7 @@ struct _PkControlSyncClass
GQuark pk_control_sync_error_quark (void);
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);
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 28078f3..9b39586 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -1629,11 +1629,11 @@ 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)
+ 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)
+ 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)
+ else if (g_strcmp0 (key, "version-micro") == 0 || g_strcmp0 (key, "VersionMicro") == 0)
control->priv->version_micro = g_value_get_uint (value);
else
egg_warning ("unhandled property '%s'", key);
@@ -2267,7 +2267,6 @@ pk_control_test_get_roles_cb (GObject *object, GAsyncResult *res, EggTest *test)
PkControl *control = PK_CONTROL (object);
GError *error = NULL;
PkBitfield *roles;
- guint len;
gchar *text;
/* get the result */
@@ -2300,7 +2299,6 @@ pk_control_test_get_filters_cb (GObject *object, GAsyncResult *res, EggTest *tes
PkControl *control = PK_CONTROL (object);
GError *error = NULL;
PkBitfield *filters;
- guint len;
gchar *text;
/* get the result */
@@ -2328,7 +2326,6 @@ pk_control_test_get_groups_cb (GObject *object, GAsyncResult *res, EggTest *test
PkControl *control = PK_CONTROL (object);
GError *error = NULL;
PkBitfield *groups;
- guint len;
gchar *text;
/* get the result */
@@ -2423,8 +2420,9 @@ pk_control_test_get_properties_cb (GObject *object, GAsyncResult *res, EggTest *
}
void
-pk_control_test (EggTest *test)
+pk_control_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
PkControl *control;
guint version;
@@ -2508,7 +2506,6 @@ pk_control_test (EggTest *test)
egg_test_assert (test, (version == PK_MICRO_VERSION));
g_object_unref (control);
-out:
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 5da37bc..d708b75 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -94,6 +94,7 @@ struct _PkControlClass
GQuark pk_control_error_quark (void);
GType pk_control_get_type (void);
PkControl *pk_control_new (void);
+void pk_control_test (gpointer user_data);
void pk_control_get_tid_async (PkControl *control,
GCancellable *cancellable,
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index fb21572..5112a43 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -146,7 +146,7 @@ pk_package_sack_add_package (PkPackageSack *sack, PkPackage *package)
}
/**
- * pk_package_sack_add_package:
+ * pk_package_sack_add_package_by_id:
* @sack: a valid #PkPackageSack instance
* @package_id: a package_id descriptor
* @error: a %GError to put the error code and message in, or %NULL
@@ -168,14 +168,13 @@ pk_package_sack_add_package_by_id (PkPackageSack *sack, const gchar *package_id,
/* create new object */
package = pk_package_new ();
ret = pk_package_set_id (package, package_id, error);
- if (!ret) {
- g_object_unref (package);
+ if (!ret)
goto out;
- }
-
- /* add to array */
- g_ptr_array_add (sack->priv->array, package);
+
+ /* add to array, array will own object */
+ g_ptr_array_add (sack->priv->array, g_object_ref (package));
out:
+ g_object_unref (package);
return ret;
}
@@ -342,7 +341,7 @@ typedef struct {
* pk_package_sack_merge_bool_state_finish:
**/
static void
-pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, GError *error)
+pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, const GError *error)
{
/* remove weak ref */
if (state->sack != NULL)
@@ -358,8 +357,9 @@ pk_package_sack_merge_bool_state_finish (PkPackageSackState *state, GError *erro
if (state->ret) {
g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
} else {
- g_simple_async_result_set_from_error (state->res, error);
- g_error_free (error);
+ /* FIXME: change g_simple_async_result_set_from_error() to accept const GError */
+ g_simple_async_result_set_from_error (state->res, (GError*) error);
+// g_error_free (error);
}
/* complete */
@@ -378,8 +378,8 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
{
PkClient *client = PK_CLIENT (source_object);
GError *error = NULL;
- PkResults *results;
- GPtrArray *packages;
+ const PkResults *results;
+ GPtrArray *packages = NULL;
const PkResultItemPackage *item;
guint i;
PkPackage *package;
@@ -390,7 +390,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
egg_warning ("failed to resolve: %s", error->message);
pk_package_sack_merge_bool_state_finish (state, error);
g_error_free (error);
- return;
+ goto out;
}
/* get the packages */
@@ -400,7 +400,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
error = g_error_new (1, 0, "no packages found!");
pk_package_sack_merge_bool_state_finish (state, error);
g_error_free (error);
- return;
+ goto out;
}
/* set data on each item */
@@ -411,23 +411,28 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
/* get package, and set data */
package = pk_package_sack_find_by_id (state->sack, item->package_id);
- if (package != NULL) {
- g_object_set (package,
- "info", item->info_enum,
- "summary", item->summary,
- NULL);
- g_object_unref (package);
- } else {
+ if (package == NULL) {
egg_warning ("failed to find %s", item->package_id);
+ continue;
}
+
+ /* set data */
+ g_object_set (package,
+ "info", item->info_enum,
+ "summary", item->summary,
+ NULL);
+ g_object_unref (package);
}
+
/* all okay */
state->ret = TRUE;
- g_object_unref (results);
/* we're done */
pk_package_sack_merge_bool_state_finish (state, error);
+out:
+ if (packages != NULL)
+ g_ptr_array_unref (packages);
}
/**
@@ -456,7 +461,9 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
/* save state */
state = g_slice_new0 (PkPackageSackState);
state->res = g_object_ref (res);
- state->cancellable = cancellable;
+ if (cancellable != NULL) {
+ state->cancellable = g_object_ref (cancellable);
+ }
state->sack = sack;
state->ret = FALSE;
g_object_add_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
@@ -466,7 +473,6 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
pk_client_resolve_async (sack->priv->client, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), package_ids,
cancellable, progress_callback, progress_user_data,
(GAsyncReadyCallback) pk_package_sack_merge_resolve_cb, state);
-
g_strfreev (package_ids);
g_object_unref (res);
}
@@ -508,8 +514,8 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
{
PkClient *client = PK_CLIENT (source_object);
GError *error = NULL;
- PkResults *results;
- GPtrArray *details;
+ const PkResults *results;
+ GPtrArray *details = NULL;
const PkResultItemDetails *item;
guint i;
PkPackage *package;
@@ -520,17 +526,16 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
egg_warning ("failed to details: %s", error->message);
pk_package_sack_merge_bool_state_finish (state, error);
g_error_free (error);
- return;
+ goto out;
}
/* get the details */
details = pk_results_get_details_array (results);
if (details->len == 0) {
- egg_error ("%i", state->ret);
error = g_error_new (1, 0, "no details found!");
pk_package_sack_merge_bool_state_finish (state, error);
g_error_free (error);
- return;
+ goto out;
}
/* set data on each item */
@@ -541,26 +546,30 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
/* get package, and set data */
package = pk_package_sack_find_by_id (state->sack, item->package_id);
- if (package != NULL) {
- g_object_set (package,
- "license", item->license,
- "group", item->group_enum,
- "description", item->description,
- "url", item->url,
- "size", item->size,
- NULL);
- g_object_unref (package);
- } else {
+ if (package == NULL) {
egg_warning ("failed to find %s", item->package_id);
+ continue;
}
+
+ /* set data */
+ g_object_set (package,
+ "license", item->license,
+ "group", item->group_enum,
+ "description", item->description,
+ "url", item->url,
+ "size", item->size,
+ NULL);
+ g_object_unref (package);
}
/* all okay */
state->ret = TRUE;
- g_object_unref (results);
/* we're done */
pk_package_sack_merge_bool_state_finish (state, error);
+out:
+ if (details != NULL)
+ g_ptr_array_unref (details);
}
/**
@@ -589,7 +598,9 @@ pk_package_sack_merge_details_async (PkPackageSack *sack, GCancellable *cancella
/* save state */
state = g_slice_new0 (PkPackageSackState);
state->res = g_object_ref (res);
- state->cancellable = cancellable;
+ if (cancellable != NULL) {
+ state->cancellable = g_object_ref (cancellable);
+ }
state->sack = sack;
state->ret = FALSE;
g_object_add_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
@@ -614,8 +625,8 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
{
PkClient *client = PK_CLIENT (source_object);
GError *error = NULL;
- PkResults *results;
- GPtrArray *update_details;
+ const PkResults *results;
+ GPtrArray *update_details = NULL;
const PkResultItemUpdateDetail *item;
guint i;
PkPackage *package;
@@ -626,17 +637,16 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
egg_warning ("failed to update_detail: %s", error->message);
pk_package_sack_merge_bool_state_finish (state, error);
g_error_free (error);
- return;
+ goto out;
}
/* get the update_details */
update_details = pk_results_get_update_detail_array (results);
if (update_details->len == 0) {
- egg_error ("%i", state->ret);
error = g_error_new (1, 0, "no update details found!");
pk_package_sack_merge_bool_state_finish (state, error);
g_error_free (error);
- return;
+ goto out;
}
/* set data on each item */
@@ -647,32 +657,36 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
/* get package, and set data */
package = pk_package_sack_find_by_id (state->sack, item->package_id);
- if (package != NULL) {
- g_object_set (package,
- "update-updates", item->updates,
- "update-obsoletes", item->obsoletes,
- "update-vendor-url", item->vendor_url,
- "update-bugzilla-url", item->bugzilla_url,
- "update-cve-url", item->cve_url,
- "update-restart", item->restart_enum,
- "update-text", item->update_text,
- "update-changelog", item->changelog,
- "update-state", item->state_enum,
- "update-issued", item->issued,
- "update-updated", item->updated,
- NULL);
- g_object_unref (package);
- } else {
+ if (package == NULL) {
egg_warning ("failed to find %s", item->package_id);
+ continue;
}
+
+ /* set data */
+ g_object_set (package,
+ "update-updates", item->updates,
+ "update-obsoletes", item->obsoletes,
+ "update-vendor-url", item->vendor_url,
+ "update-bugzilla-url", item->bugzilla_url,
+ "update-cve-url", item->cve_url,
+ "update-restart", item->restart_enum,
+ "update-text", item->update_text,
+ "update-changelog", item->changelog,
+ "update-state", item->state_enum,
+ "update-issued", item->issued,
+ "update-updated", item->updated,
+ NULL);
+ g_object_unref (package);
}
/* all okay */
state->ret = TRUE;
- g_object_unref (results);
/* we're done */
pk_package_sack_merge_bool_state_finish (state, error);
+out:
+ if (update_details != NULL)
+ g_ptr_array_unref (update_details);
}
/**
@@ -701,7 +715,9 @@ pk_package_sack_merge_update_detail_async (PkPackageSack *sack, GCancellable *ca
/* save state */
state = g_slice_new0 (PkPackageSackState);
state->res = g_object_ref (res);
- state->cancellable = cancellable;
+ if (cancellable != NULL) {
+ state->cancellable = g_object_ref (cancellable);
+ }
state->sack = sack;
state->ret = FALSE;
g_object_add_weak_pointer (G_OBJECT (state->sack), (gpointer) &state->sack);
@@ -901,12 +917,12 @@ pk_package_sack_test_update_detail_cb (GObject *object, GAsyncResult *res, EggTe
}
void
-pk_package_sack_test (EggTest *test)
+pk_package_sack_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
gboolean ret;
PkPackageSack *sack;
PkPackage *package;
- const gchar *id;
gchar *text;
guint size;
PkInfoEnum info = PK_INFO_ENUM_UNKNOWN;
@@ -988,6 +1004,8 @@ pk_package_sack_test (EggTest *test)
"url", &text,
NULL);
egg_test_assert (test, (g_strcmp0 (text, "http://live.gnome.org/powertop") == 0));
+ g_object_unref (package);
+ g_free (text);
/************************************************************/
egg_test_title (test, "merge update detail results");
@@ -1031,7 +1049,6 @@ pk_package_sack_test (EggTest *test)
egg_test_assert (test, !ret);
g_object_unref (sack);
-out:
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index f296a1d..6d826cc 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -75,6 +75,7 @@ struct _PkPackageSackClass
GQuark pk_package_sack_error_quark (void);
GType pk_package_sack_get_type (void);
PkPackageSack *pk_package_sack_new (void);
+void pk_package_sack_test (gpointer user_data);
/* managing the array */
guint pk_package_sack_get_size (PkPackageSack *sack);
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index 5f1295f..b95503a 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -651,6 +651,20 @@ pk_package_finalize (GObject *object)
g_free (priv->id_arch);
g_free (priv->id_data);
g_free (priv->summary);
+ g_free (priv->license);
+ g_free (priv->description);
+ g_free (priv->url);
+ g_free (priv->update_updates);
+ g_free (priv->update_obsoletes);
+ g_free (priv->update_vendor_url);
+ g_free (priv->update_bugzilla_url);
+ g_free (priv->update_cve_url);
+ g_free (priv->update_text);
+ g_free (priv->update_changelog);
+ if (priv->update_issued != NULL)
+ g_date_free (priv->update_issued);
+ if (priv->update_updated != NULL)
+ g_date_free (priv->update_updated);
G_OBJECT_CLASS (pk_package_parent_class)->finalize (object);
}
@@ -675,8 +689,9 @@ pk_package_new (void)
#include "egg-test.h"
void
-pk_package_test (EggTest *test)
+pk_package_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
gboolean ret;
PkPackage *package;
const gchar *id;
@@ -733,7 +748,6 @@ pk_package_test (EggTest *test)
g_free (text);
g_object_unref (package);
-out:
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-package.h b/lib/packagekit-glib2/pk-package.h
index 0920961..762b004 100644
--- a/lib/packagekit-glib2/pk-package.h
+++ b/lib/packagekit-glib2/pk-package.h
@@ -71,6 +71,7 @@ struct _PkPackageClass
GQuark pk_package_error_quark (void);
GType pk_package_get_type (void);
PkPackage *pk_package_new (void);
+void pk_package_test (gpointer user_data);
gboolean pk_package_set_id (PkPackage *package,
const gchar *package_id,
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index eb6dedf..c391233 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -260,8 +260,9 @@ pk_progress_new (void)
#include "egg-test.h"
void
-pk_progress_test (EggTest *test)
+pk_progress_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
PkProgress *progress;
if (!egg_test_start (test, "PkProgress"))
diff --git a/lib/packagekit-glib2/pk-progress.h b/lib/packagekit-glib2/pk-progress.h
index edb1bfd..5fdc567 100644
--- a/lib/packagekit-glib2/pk-progress.h
+++ b/lib/packagekit-glib2/pk-progress.h
@@ -83,6 +83,7 @@ typedef enum {
typedef void (*PkProgressCallback) (PkProgress *progress,
PkProgressType type,
gpointer user_data);
+void pk_progress_test (gpointer user_data);
G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index f74507f..c9fc53e 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -111,6 +111,7 @@ pk_result_item_update_detail_free (PkResultItemUpdateDetail *item)
g_date_free (item->issued);
if (item->updated != NULL)
g_date_free (item->updated);
+ g_free (item);
}
/**
@@ -713,7 +714,7 @@ pk_results_get_exit_code (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemDetails's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_package_array (PkResults *results)
+pk_results_get_package_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->package_array);
@@ -776,7 +777,7 @@ pk_results_get_package_sack (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemPackage's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_details_array (PkResults *results)
+pk_results_get_details_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->details_array);
@@ -791,7 +792,7 @@ pk_results_get_details_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemUpdateDetail's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_update_detail_array (PkResults *results)
+pk_results_get_update_detail_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->update_detail_array);
@@ -806,7 +807,7 @@ pk_results_get_update_detail_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemCategory's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_category_array (PkResults *results)
+pk_results_get_category_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->category_array);
@@ -821,7 +822,7 @@ pk_results_get_category_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemDistroUpgrade's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_distro_upgrade_array (PkResults *results)
+pk_results_get_distro_upgrade_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->distro_upgrade_array);
@@ -836,7 +837,7 @@ pk_results_get_distro_upgrade_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemRequireRestart's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_require_restart_array (PkResults *results)
+pk_results_get_require_restart_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->require_restart_array);
@@ -851,7 +852,7 @@ pk_results_get_require_restart_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemTransaction's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_transaction_array (PkResults *results)
+pk_results_get_transaction_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->transaction_array);
@@ -866,7 +867,7 @@ pk_results_get_transaction_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemFiles's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_files_array (PkResults *results)
+pk_results_get_files_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->files_array);
@@ -881,7 +882,7 @@ pk_results_get_files_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemRepoSignatureRequired's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_repo_signature_required_array (PkResults *results)
+pk_results_get_repo_signature_required_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->repo_signature_required_array);
@@ -896,7 +897,7 @@ pk_results_get_repo_signature_required_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemEulaRequired's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_eula_required_array (PkResults *results)
+pk_results_get_eula_required_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->eula_required_array);
@@ -911,7 +912,7 @@ pk_results_get_eula_required_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemMediaChangeRequired's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_media_change_required_array (PkResults *results)
+pk_results_get_media_change_required_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->media_change_required_array);
@@ -926,7 +927,7 @@ pk_results_get_media_change_required_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemRepoDetail's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_repo_detail_array (PkResults *results)
+pk_results_get_repo_detail_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->repo_detail_array);
@@ -941,7 +942,7 @@ pk_results_get_repo_detail_array (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemErrorCode's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_error_code_array (PkResults *results)
+pk_results_get_error_code_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->error_code_array);
@@ -977,7 +978,7 @@ pk_results_get_error_code (PkResults *results)
* Return value: A #GPtrArray array of #PkResultItemMessage's, free with g_ptr_array_unref().
**/
GPtrArray *
-pk_results_get_message_array (PkResults *results)
+pk_results_get_message_array (const PkResults *results)
{
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
return g_ptr_array_ref (results->priv->message_array);
@@ -1065,8 +1066,9 @@ pk_results_new (void)
#include "egg-test.h"
void
-pk_results_test (EggTest *test)
+pk_results_test (gpointer user_data)
{
+ EggTest *test = (EggTest *) user_data;
gboolean ret;
PkResults *results;
PkExitEnum exit_enum;
@@ -1113,7 +1115,6 @@ pk_results_test (EggTest *test)
g_ptr_array_unref (packages);
g_object_unref (results);
-out:
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 2d0834a..46d7f54 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -256,10 +256,11 @@ typedef struct
GQuark pk_results_error_quark (void);
GType pk_results_get_type (void);
PkResults *pk_results_new (void);
+void pk_results_test (gpointer user_data);
/* set */
-gboolean pk_results_set_exit_code (PkResults *results,
- PkExitEnum exit_enum);
+gboolean pk_results_set_exit_code (PkResults *results,
+ PkExitEnum exit_enum);
/* add */
gboolean pk_results_add_package (PkResults *results,
@@ -346,20 +347,20 @@ PkPackageSack *pk_results_get_package_sack (PkResults *results);
const PkResultItemErrorCode *pk_results_get_error_code (PkResults *results);
/* get array objects */
-GPtrArray *pk_results_get_package_array (PkResults *results);
-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);
+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);
G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 62cd55f..a13abe8 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -24,6 +24,16 @@
#include <glib-object.h>
#include "egg-test.h"
#include "egg-debug.h"
+#include "egg-string.h"
+
+#include "pk-client.h"
+#include "pk-common.h"
+#include "pk-control.h"
+#include "pk-control-sync.h"
+#include "pk-enum.h"
+#include "pk-package-sack.h"
+#include "pk-results.h"
+#include "pk-version.h"
int
main (int argc, char **argv)
@@ -35,6 +45,7 @@ main (int argc, char **argv)
egg_debug_init (TRUE);
/* tests go here */
+ egg_string_test (test);
pk_common_test (test);
pk_enum_test (test);
pk_bitfield_test (test);
commit add0dc2feff8380c442cff241c20ffb3398dec0b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 2 14:32:30 2009 +0100
spec: Property names have to be WindowsStyleCaps
diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index 44313cf..aafc394 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -14,7 +14,7 @@
</doc:doc>
<!--*****************************************************************************************-->
- <property name="role" type="s" access="read">
+ <property name="Role" type="s" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -23,7 +23,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="status" type="s" access="read">
+ <property name="Status" type="s" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -32,7 +32,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="last-package" type="s" access="read">
+ <property name="LastPackage" type="s" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -41,7 +41,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="uid" type="u" access="read">
+ <property name="Uid" type="u" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -50,7 +50,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="percentage" type="u" access="read">
+ <property name="Percentage" type="u" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -62,7 +62,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="subpercentage" type="u" access="read">
+ <property name="Subpercentage" type="u" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -74,7 +74,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="allow-cancel" type="b" access="read">
+ <property name="AllowCancel" type="b" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -83,7 +83,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="caller-active" type="b" access="read">
+ <property name="CallerActive" type="b" access="read">
<doc:doc>
<doc:description>
<doc:para>
diff --git a/src/org.freedesktop.PackageKit.xml b/src/org.freedesktop.PackageKit.xml
index c229d03..6992c86 100644
--- a/src/org.freedesktop.PackageKit.xml
+++ b/src/org.freedesktop.PackageKit.xml
@@ -14,7 +14,7 @@
</doc:doc>
<!--*****************************************************************************************-->
- <property name="version-major" type="u" access="read">
+ <property name="VersionMajor" type="u" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -23,7 +23,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="version-minor" type="u" access="read">
+ <property name="VersionMinor" type="u" access="read">
<doc:doc>
<doc:description>
<doc:para>
@@ -32,7 +32,7 @@
</doc:description>
</doc:doc>
</property>
- <property name="version-micro" type="u" access="read">
+ <property name="VersionMicro" type="u" access="read">
<doc:doc>
<doc:description>
<doc:para>
More information about the PackageKit-commit
mailing list