[PackageKit-commit] packagekit: Branch 'master' - 75 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Wed Sep 9 06:43:47 PDT 2009
backends/dummy/pk-backend-dummy.c | 29
backends/yum/yum-comps-groups.conf | 3
backends/yum/yumBackend.py | 19
client/.gitignore | 2
client/Makefile.am | 82
client/pk-console-test.c | 1639 -----------------
client/pk-console.c | 2097 +++++------------------
client/pk-generate-pack.c | 232 +-
client/pk-monitor-test.c | 342 ---
client/pk-monitor.c | 284 ++-
client/pk-progress-bar.c | 1
client/pk-progress-bar.h | 1
client/pk-self-test.c | 3
client/pk-task-text.c | 463 -----
client/pk-task-text.h | 60
client/pk-text.c | 100 -
client/pk-text.h | 35
client/pk-tools-common.c | 143 -
client/pk-tools-common.h | 34
configure.ac | 24
contrib/PackageKit.spec.in | 7
contrib/browser-plugin/Makefile.am | 5
contrib/browser-plugin/pk-main.c | 1
contrib/browser-plugin/pk-plugin-install.c | 146 -
contrib/browser-plugin/pk-plugin-install.h | 1
contrib/command-not-found/.gitignore | 1
contrib/command-not-found/Makefile.am | 11
contrib/command-not-found/pk-command-not-found.c | 140 -
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/Makefile.am | 11
contrib/debuginfo-install/pk-debuginfo-install.c | 360 +--
contrib/debuginfo-install/pk-progress-bar.c | 357 ---
contrib/debuginfo-install/pk-progress-bar.h | 64
docs/api/Makefile.am | 19
docs/api/PackageKit-docs.sgml | 12
lib/Makefile.am | 6
lib/packagekit-glib2/.gitignore | 1
lib/packagekit-glib2/Makefile.am | 45
lib/packagekit-glib2/packagekit-private.h | 36
lib/packagekit-glib2/packagekit.h | 5
lib/packagekit-glib2/pk-client-sync.c | 1617 +++++++++++++++++
lib/packagekit-glib2/pk-client-sync.h | 289 +++
lib/packagekit-glib2/pk-client.c | 346 +++
lib/packagekit-glib2/pk-client.h | 5
lib/packagekit-glib2/pk-console-shared.c | 361 +++
lib/packagekit-glib2/pk-console-shared.h | 45
lib/packagekit-glib2/pk-control-sync.c | 330 ---
lib/packagekit-glib2/pk-control-sync.h | 79
lib/packagekit-glib2/pk-control.c | 100 +
lib/packagekit-glib2/pk-control.h | 7
lib/packagekit-glib2/pk-desktop.c | 407 ++++
lib/packagekit-glib2/pk-desktop.h | 92 +
lib/packagekit-glib2/pk-item.c | 997 ++++++++++
lib/packagekit-glib2/pk-item.h | 334 +++
lib/packagekit-glib2/pk-package-sack.c | 34
lib/packagekit-glib2/pk-package-sack.h | 5
lib/packagekit-glib2/pk-package.c | 86
lib/packagekit-glib2/pk-package.h | 5
lib/packagekit-glib2/pk-progress-bar.c | 358 +++
lib/packagekit-glib2/pk-progress-bar.h | 64
lib/packagekit-glib2/pk-progress.c | 120 +
lib/packagekit-glib2/pk-progress.h | 5
lib/packagekit-glib2/pk-results.c | 521 +----
lib/packagekit-glib2/pk-results.h | 271 --
lib/packagekit-glib2/pk-self-test.c | 7
lib/packagekit-glib2/pk-service-pack.c | 1126 ++++++++++++
lib/packagekit-glib2/pk-service-pack.h | 119 +
lib/packagekit-glib2/pk-task-sync.c | 294 +++
lib/packagekit-glib2/pk-task-sync.h | 65
lib/packagekit-glib2/pk-task-text.c | 496 +++++
lib/packagekit-glib2/pk-task-text.h | 60
lib/packagekit-glib2/pk-task-wrapper.c | 8
lib/packagekit-glib2/pk-task.c | 13
lib/packagekit-glib2/pk-task.h | 6
lib/packagekit-qt/src/client.cpp | 2
po/POTFILES.in | 7
po/bn_IN.po | 648 ++++---
po/cs.po | 124 -
po/es.po | 859 ++++-----
po/gu.po | 605 +++---
po/kn.po | 864 +++++----
po/ml.po | 605 +++---
po/mr.po | 394 ++--
po/nl.po | 405 ++--
po/pa.po | 838 +++++----
po/pl.po | 605 +++---
po/te.po | 856 +++++----
po/uk.po | 750 +++++---
src/Makefile.am | 10
src/org.freedesktop.PackageKit.Transaction.xml | 13
src/pk-backend-internal.h | 2
src/pk-backend-spawn.c | 2
src/pk-backend.c | 139 -
src/pk-backend.h | 2
src/pk-cache.c | 15
src/pk-cache.h | 6
src/pk-conf.c | 2
src/pk-engine.c | 2
src/pk-file-monitor.c | 2
src/pk-network-stack.h | 2
src/pk-network.h | 2
src/pk-polkit-action-lookup.c | 14
src/pk-spawn.c | 2
src/pk-syslog.h | 2
src/pk-transaction-db.c | 2
src/pk-transaction-db.h | 2
src/pk-transaction-extra.c | 137 -
src/pk-transaction-list.c | 2
src/pk-transaction-list.h | 2
src/pk-transaction.c | 230 +-
src/pk-transaction.h | 2
114 files changed, 13463 insertions(+), 10190 deletions(-)
New commits:
commit de05e437f3a739a84eb721eabf7e9ac05525bfc2
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 14:41:35 2009 +0100
trivial: fix up a few translations to be easier to translate
diff --git a/lib/packagekit-glib2/pk-task-text.c b/lib/packagekit-glib2/pk-task-text.c
index b571488..20130ee 100644
--- a/lib/packagekit-glib2/pk-task-text.c
+++ b/lib/packagekit-glib2/pk-task-text.c
@@ -60,11 +60,12 @@ dkp_task_text_untrusted_question (PkTask *task, guint request, PkResults *result
/* clear new line */
g_print ("\n");
- /* ask the user */
+ /* TRANSLATORS: ask the user if they are comfortable installing insecure packages */
ret = pk_console_get_prompt (_("Do you want to allow installing of unsigned software?"), FALSE);
if (ret) {
pk_task_user_accepted (task, request);
} else {
+ /* TRANSLATORS: tell the user we've not done anything */
g_print ("%s\n", _("The unsigned software will not be installed."));
pk_task_user_declined (task, request);
}
@@ -97,23 +98,39 @@ dkp_task_text_key_question (PkTask *task, guint request, PkResults *results)
/* create printable */
package = pk_package_id_to_printable (item->package_id);
+ /* TRANSLATORS: the package repository is signed by a key that is not recognised */
g_print ("%s\n", _("Software source signature required"));
+
+ /* TRANSLATORS: the package that is not signed by a known key */
g_print (" %s: %s\n", _("Package"), package);
+
+ /* TRANSLATORS: the package repository name */
g_print (" %s: %s\n", _("Software source name"), item->repository_name);
+
+ /* TRANSLATORS: the key URL */
g_print (" %s: %s\n", _("Key URL"), item->key_url);
+
+ /* TRANSLATORS: the username of the key */
g_print (" %s: %s\n", _("Key user"), item->key_userid);
+
+ /* TRANSLATORS: the key ID, usually a few hex digits */
g_print (" %s: %s\n", _("Key ID"), item->key_id);
+
+ /* TRANSLATORS: the key fingerprint, again, yet more hex */
g_print (" %s: %s\n", _("Key fingerprint"), item->key_fingerprint);
+
+ /* TRANSLATORS: the timestamp (a bit like a machine readable time) */
g_print (" %s: %s\n", _("Key Timestamp"), item->key_timestamp);
g_free (package);
}
- /* ask the user */
+ /* TRANSLATORS: ask the user if they want to import */
ret = pk_console_get_prompt (_("Do you accept this signature?"), FALSE);
if (ret) {
pk_task_user_accepted (task, request);
} else {
+ /* TRANSLATORS: tell the user we've not done anything */
g_print ("%s\n", _("The signature was not accepted."));
pk_task_user_declined (task, request);
}
@@ -148,20 +165,27 @@ dkp_task_text_eula_question (PkTask *task, guint request, PkResults *results)
/* create printable */
package = pk_package_id_to_printable (item->package_id);
+ /* TRANSLATORS: this is another name for a software licence that has to be read before installing */
g_print ("%s\n", _("End user licence agreement required"));
- g_print (" %s: %s\n", _("EULA ID"), item->eula_id);
+
+ /* TRANSLATORS: the package name that was trying to be installed */
g_print (" %s: %s\n", _("Package"), package);
+
+ /* TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA */
g_print (" %s: %s\n", _("Vendor"), item->vendor_name);
+
+ /* TRANSLATORS: the EULA text itself (long and boring) */
g_print (" %s: %s\n", _("Agreement"), item->license_agreement);
g_free (package);
}
- /* ask the user */
+ /* TRANSLATORS: ask the user if they've read and accepted the EULA */
ret = pk_console_get_prompt (_("Do you accept this agreement?"), FALSE);
if (ret) {
pk_task_user_accepted (task, request);
} else {
+ /* TRANSLATORS: tell the user we've not done anything */
g_print ("%s\n", _("The agreement was not accepted."));
pk_task_user_declined (task, request);
}
@@ -191,17 +215,25 @@ dkp_task_text_media_change_question (PkTask *task, guint request, PkResults *res
array = pk_results_get_media_change_required_array (results);
for (i=0; i<array->len; i++) {
item = g_ptr_array_index (array, i);
+ /* TRANSLATORS: the user needs to change media inserted into the computer */
g_print ("%s\n", _("Media change required"));
+
+ /* TRANSLATORS: the type, e.g. DVD, CD, etc */
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);
+
+ /* TRANSLATORS: the media label, usually like 'disk-1of3' */
+ g_print (" %s: %s\n", _("Media label"), item->media_id);
+
+ /* TRANSLATORS: the media description, usually like 'Fedora 12 disk 5' */
g_print (" %s: %s\n", _("Text"), item->media_text);
}
- /* ask the user */
+ /* TRANSLATORS: ask the user to insert the media */
ret = pk_console_get_prompt (_("Please insert the correct media"), FALSE);
if (ret) {
pk_task_user_accepted (task, request);
} else {
+ /* TRANSLATORS: tell the user we've not done anything as they are lazy */
g_print ("%s\n", _("The correct media was not inserted."));
pk_task_user_declined (task, request);
}
@@ -295,11 +327,12 @@ dkp_task_text_simulate_question (PkTask *task, guint request, PkResults *results
g_object_unref (package);
}
- /* ask the user */
+ /* TRANSLATORS: ask the user if the proposed changes are okay */
ret = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
if (ret) {
pk_task_user_accepted (task, request);
} else {
+ /* TRANSLATORS: tell the user we didn't do anything */
g_print ("%s\n", _("The transaction did not proceed."));
pk_task_user_declined (task, request);
}
commit 5203ecfb26fc39d045ea805f9b1ab6f29a7efef0
Merge: f40d7ca... 3540d88...
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 14:28:42 2009 +0100
Merge branch 'daemon-glib2'
commit 3540d8844a9bb57c84a8e6bc349a2188848272be
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 14:24:19 2009 +0100
yum: Add moblin-desktop to desktop-other metagroup
diff --git a/backends/yum/yum-comps-groups.conf b/backends/yum/yum-comps-groups.conf
index 24e63fd..e1ca846 100644
--- a/backends/yum/yum-comps-groups.conf
+++ b/backends/yum/yum-comps-groups.conf
@@ -3,7 +3,7 @@ admin-tools=base-system;system-tools,base-system;admin-tools,rpmfusion_free;hard
desktop-gnome=rpmfusion_free;gnome-desktop,desktops;gnome-desktop
desktop-kde=desktops;kde-desktop,rpmfusion_free;kde-desktop
desktop-xfce=desktops;xfce-desktop
-desktop-other=desktops;window-managers,desktops;sugar-desktop,desktops;lxde-desktop
+desktop-other=desktops;window-managers,desktops;sugar-desktop,desktops;lxde-desktop;moblin-desktop
education=apps;education,development;electronic-lab
fonts=base-system;fonts,base-system;legacy-fonts
games=apps;games,rpmfusion_free;games,rpmfusion_nonfree;games
commit 2ad60cc83809609235c956e9917ce7c63e7caf4b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 14:20:55 2009 +0100
Make glib2 compulsory, and convert all users to use the new library
diff --git a/client/Makefile.am b/client/Makefile.am
index d0b3bba..1cd3d54 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -54,16 +54,13 @@ 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 \
$(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
$(NULL)
pkcon_SOURCES = \
- pk-console-test.c \
+ pk-console.c \
$(NULL)
pkcon_LDADD = \
@@ -78,7 +75,7 @@ pkcon_CFLAGS = \
$(NULL)
pkmon_SOURCES = \
- pk-monitor-test.c \
+ pk-monitor.c \
$(NULL)
pkmon_LDADD = \
@@ -92,87 +89,22 @@ pkmon_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
-pkgenpack_SOURCES = \
- pk-generate-pack-test.c \
- $(NULL)
-
-pkgenpack_LDADD = \
- $(ARCHIVE_LIBS) \
- $(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(SQLITE_LIBS) \
- $(PK_GLIB2_LIBS) \
- $(NULL)
-
-pkgenpack_CFLAGS = \
- $(WARNINGFLAGS_C) \
- $(NULL)
-
-else
-
-PK_GLIB_LIBS = \
- $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
- $(NULL)
-
-pkcon_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- egg-string.c \
- egg-string.h \
- pk-console.c \
- pk-tools-common.c \
- pk-tools-common.h \
- $(NULL)
-
-pkcon_LDADD = \
- $(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
- $(NULL)
-
-pkcon_CFLAGS = \
- $(WARNINGFLAGS_C) \
- $(NULL)
-
-pkmon_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- pk-monitor.c \
- $(NULL)
-
-pkmon_LDADD = \
- $(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
- $(NULL)
-
-pkmon_CFLAGS = \
- $(WARNINGFLAGS_C) \
- $(NULL)
-
pkgenpack_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- egg-string.c \
- egg-string.h \
pk-generate-pack.c \
- pk-tools-common.c \
- pk-tools-common.h \
$(NULL)
pkgenpack_LDADD = \
$(ARCHIVE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(SQLITE_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(NULL)
pkgenpack_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
-endif
-
if EGG_BUILD_TESTS
check_PROGRAMS = \
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
deleted file mode 100644
index a0def35..0000000
--- a/client/pk-console-test.c
+++ /dev/null
@@ -1,1490 +0,0 @@
-/* -*- 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 <packagekit-glib2/packagekit-private.h>
-#include <sys/types.h>
-#include <pwd.h>
-#include <locale.h>
-
-#include "egg-debug.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 PkControl *control = NULL;
-static PkTaskText *task = NULL;
-static PkProgressBar *progressbar = NULL;
-static GCancellable *cancellable = 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_console_package_cb:
- **/
-static void
-pk_console_package_cb (const PkItemPackage *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_to_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 PkItemTransaction *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_to_printable (parts[1]);
- g_print (" - %s %s\n", parts[0], package);
- g_free (package);
- g_strfreev (parts);
- }
- g_strfreev (lines);
-}
-
-/**
- * pk_console_distro_upgrade_cb:
- **/
-static void
-pk_console_distro_upgrade_cb (const PkItemDistroUpgrade *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 PkItemCategory *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 PkItemUpdateDetail *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_to_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 PkItemRepoDetail *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 PkItemRequireRestart *obj, gpointer data)
-{
- gchar *package = NULL;
-
- /* create printable */
- 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 */
- 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 PkItemDetails *obj, gpointer data)
-{
- gchar *package = NULL;
-
- /* create printable */
- package = pk_package_id_to_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 PkItemMessage *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 (PkItemFiles *obj, gpointer data)
-{
- guint i;
-
- /* 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_progress_cb:
- **/
-static void
-pk_console_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
-{
- gint percentage;
- PkStatusEnum status;
-
- /* 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);
- if (status == PK_STATUS_ENUM_FINISHED)
- return;
- /* 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)
-{
- const PkItemErrorCode *error_item;
- PkResults *results;
- GError *error = NULL;
- GPtrArray *array;
- PkExitEnum exit_enum;
- PkRestartEnum restart;
- PkRoleEnum role;
-
- /* no more progress */
- pk_progress_bar_end (progressbar);
-
- /* get the results */
- results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
- if (results == NULL) {
- g_print ("Failed to complete: %s\n", error->message);
- g_error_free (error);
- goto out;
- }
-
- /* get the role */
- g_object_get (G_OBJECT(results), "role", &role, NULL);
-
- exit_enum = pk_results_get_exit_code (results);
-// if (exit_enum != PK_EXIT_ENUM_CANCELLED)
-// egg_test_failed (test, "failed to cancel search: %s", pk_exit_enum_to_text (exit_enum));
-
- /* check error code */
- error_item = pk_results_get_error_code (results);
-// if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED)
-// egg_test_failed (test, "failed to get error code: %i", error_item->code);
-// if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
-// egg_test_failed (test, "failed to get error message: %s", error_item->details);
-
- /* package */
- if (role != PK_ROLE_ENUM_INSTALL_PACKAGES &&
- role != PK_ROLE_ENUM_UPDATE_PACKAGES &&
- role != PK_ROLE_ENUM_UPDATE_SYSTEM &&
- role != PK_ROLE_ENUM_REMOVE_PACKAGES) {
- array = pk_results_get_package_array (results);
- g_ptr_array_foreach (array, (GFunc) pk_console_package_cb, NULL);
- g_ptr_array_unref (array);
- }
-
- /* 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);
-
- /* don't print files if we are DownloadPackages */
- if (role != PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
- array = pk_results_get_files_array (results);
- g_ptr_array_foreach (array, (GFunc) pk_console_files_cb, NULL);
- g_ptr_array_unref (array);
- }
-
- /* is there any restart to notify the user? */
- restart = pk_results_get_require_restart_worst (results);
- if (restart == PK_RESTART_ENUM_SYSTEM) {
- /* TRANSLATORS: a package needs to restart their system */
- g_print ("%s\n", _("Please restart the computer to complete the update."));
- } else if (restart == PK_RESTART_ENUM_SESSION) {
- /* TRANSLATORS: a package needs to restart the session */
- g_print ("%s\n", _("Please logout and login to complete the update."));
- } else if (restart == PK_RESTART_ENUM_SECURITY_SYSTEM) {
- /* TRANSLATORS: a package needs to restart their system (due to security) */
- g_print ("%s\n", _("Please restart the computer to complete the update as important security updates have been installed."));
- } else if (restart == PK_RESTART_ENUM_SECURITY_SESSION) {
- /* TRANSLATORS: a package needs to restart the session (due to security) */
- g_print ("%s\n", _("Please logout and login to complete the update as important security updates have been installed."));
- }
-out:
- if (results != NULL)
- g_object_unref (results);
- g_main_loop_quit (loop);
-}
-
-/**
- * pk_console_install_packages:
- **/
-static gboolean
-pk_console_install_packages (gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find the available package: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_task_install_packages_async (PK_TASK(task), package_ids, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_remove_packages:
- **/
-static gboolean
-pk_console_remove_packages (gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find the installed package: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_task_remove_packages_async (PK_TASK(task), package_ids, FALSE, FALSE, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_download_packages:
- **/
-static gboolean
-pk_console_download_packages (gchar **packages, const gchar *directory, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_client_download_packages_async (PK_CLIENT(task), package_ids, directory, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_update_packages:
- **/
-static gboolean
-pk_console_update_packages (gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_task_update_packages_async (PK_TASK(task), package_ids, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_get_requires:
- **/
-static gboolean
-pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids = NULL;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_client_get_requires_async (PK_CLIENT(task), filters, package_ids, TRUE, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_get_depends:
- **/
-static gboolean
-pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids = NULL;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_client_get_depends_async (PK_CLIENT(task), filters, package_ids, FALSE, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_get_details:
- **/
-static gboolean
-pk_console_get_details (gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids = NULL;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: There was an error getting the details about the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_client_get_details_async (PK_CLIENT(task), package_ids, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_get_files:
- **/
-static gboolean
-pk_console_get_files (gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids = NULL;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_client_get_files_async (PK_CLIENT(task), package_ids, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_console_get_update_detail
- **/
-static gboolean
-pk_console_get_update_detail (gchar **packages, GError **error)
-{
- gboolean ret = TRUE;
- gchar **package_ids = NULL;
- GError *error_local = NULL;
-
- package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
- if (package_ids == NULL) {
- /* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* do the async action */
- pk_client_get_update_detail_async (PK_CLIENT(task), package_ids, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-out:
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * 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_cb:
- **/
-static void
-pk_console_sigint_cb (int sig)
-{
- egg_debug ("Handling SIGINT");
-
- /* restore default ASAP, as the cancels might hang */
- signal (SIGINT, SIG_DFL);
-
- /* cancel any tasks still running */
- g_cancellable_cancel (cancellable);
-
- /* 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))
- g_string_append_printf (string, " %s\n", "install [packages]");
- if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_FILES))
- g_string_append_printf (string, " %s\n", "install-local [files]");
- if (pk_bitfield_contain (roles, PK_ROLE_ENUM_DOWNLOAD_PACKAGES))
- g_string_append_printf (string, " %s\n", "download [directory] [packages]");
- if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_SIGNATURE))
- 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_get_time_since_action_cb:
- **/
-static void
-pk_console_get_time_since_action_cb (GObject *object, GAsyncResult *res, gpointer data)
-{
- guint time_ms;
- GError *error = NULL;
-// PkControl *control = PK_CONTROL(object);
-
- /* get the results */
- time_ms = pk_control_get_time_since_action_finish (control, res, &error);
- if (time_ms == 0) {
- /* TRANSLATORS: we keep a database updated with the time that an action was last executed */
- g_print ("%s: %s\n", _("Failed to get the time since this action was last completed"), error->message);
- g_error_free (error);
- goto out;
- }
- g_print ("time is %is\n", time_ms);
-out:
- g_main_loop_quit (loop);
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean ret;
- 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;
- 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_cb);
-
- /* 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_new ();
- ret = pk_control_get_properties_sync (control, &error);
- if (!ret) {
- /* TRANSLATORS: we failed to contact the daemon */
- g_print ("%s: %s\n", _("Failed to contact PackageKit"), error->message);
- g_error_free (error);
- goto out_last;
- }
-
- /* get data */
- g_object_get (control,
- "roles", &roles,
- NULL);
-
- summary = pk_console_get_summary ();
- progressbar = pk_progress_bar_new ();
- pk_progress_bar_set_size (progressbar, 25);
- pk_progress_bar_set_padding (progressbar, 20);
-
- cancellable = g_cancellable_new ();
- context = g_option_context_new ("PackageKit Console Program");
- g_option_context_set_summary (context, summary) ;
- g_option_context_add_main_entries (context, options, NULL);
- 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 */
- task = pk_task_text_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;
- }
- /* fire off an async request */
- pk_client_search_name_async (PK_CLIENT(task), filters, details, cancellable,
- (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 (PK_CLIENT(task), filters, details, cancellable,
- (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 (PK_CLIENT(task), filters, details, cancellable,
- (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 (PK_CLIENT(task), filters, details, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
- } else {
- /* TRANSLATORS: the search type was provided, but invalid */
- error = g_error_new (1, 0, "%s", _("Invalid search type"));
- }
-
- } 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 to install is required"));
- retval = PK_EXIT_CODE_SYNTAX_INVALID;
- goto out;
- }
- nowait = !pk_console_install_packages (argv+2, &error);
-
- } else if (strcmp (mode, "install-local") == 0) {
- if (value == NULL) {
- /* TRANSLATORS: the user did not specify what they wanted to install */
- error = g_error_new (1, 0, "%s", _("A filename to install is required"));
- retval = PK_EXIT_CODE_SYNTAX_INVALID;
- goto out;
- }
- pk_task_install_files_async (PK_TASK(task), argv+2, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
-
- } else if (strcmp (mode, "install-sig") == 0) {
- if (value == NULL || details == NULL || parameter == NULL) {
- /* 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 (PK_CLIENT(task), PK_SIGTYPE_ENUM_GPG, details, parameter, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } 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;
- }
- nowait = !pk_console_remove_packages (argv+2, &error);
-
- } else if (strcmp (mode, "download") == 0) {
- if (value == NULL || details == NULL) {
- /* TRANSLATORS: the user did not specify anything about what to download or where */
- 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;
- }
- nowait = !pk_console_download_packages (argv+3, value, &error);
-
- } 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 (PK_CLIENT(task), value, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } 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 (PK_CLIENT(task), value, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else if (strcmp (mode, "update") == 0) {
- if (value == NULL) {
- /* do the system update */
- pk_task_update_system_async (PK_TASK(task), cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
- } else {
- nowait = !pk_console_update_packages (argv+2, &error);
- }
-
- } 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 (PK_CLIENT(task), filters, argv+2, cancellable,
- (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 (PK_CLIENT(task), value, TRUE, cancellable,
- (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 (PK_CLIENT(task), value, FALSE, cancellable,
- (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 (PK_CLIENT(task), value, details, parameter, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else if (strcmp (mode, "repo-list") == 0) {
- pk_client_get_repo_list_async (PK_CLIENT(task), filters, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else if (strcmp (mode, "get-time") == 0) {
- PkRoleEnum role;
- 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;
- }
- pk_control_get_time_since_action_async (control, role, cancellable,
- (GAsyncReadyCallback) pk_console_get_time_since_action_cb, NULL);
-
- } 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;
- }
- nowait = !pk_console_get_depends (filters, argv+2, &error);
-
- } else if (strcmp (mode, "get-distro-upgrades") == 0) {
- pk_client_get_distro_upgrades_async (PK_CLIENT(task), cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
-
- } 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;
- }
- nowait = !pk_console_get_update_detail (argv+2, &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;
- }
- nowait = !pk_console_get_requires (filters, argv+2, &error);
-
- } 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 (PK_CLIENT(task), filters, PK_PROVIDES_ENUM_CODEC, value, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } 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;
- }
- nowait = !pk_console_get_details (argv+2, &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;
- }
- nowait = !pk_console_get_files (argv+2, &error);
-
- } else if (strcmp (mode, "get-updates") == 0) {
- pk_client_get_updates_async (PK_CLIENT(task), filters, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else if (strcmp (mode, "get-categories") == 0) {
- pk_client_get_categories_async (PK_CLIENT(task), cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else if (strcmp (mode, "get-packages") == 0) {
- pk_client_get_packages_async (PK_CLIENT(task), filters, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } 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);
- nowait = TRUE;
-
- } else if (strcmp (mode, "get-filters") == 0) {
- g_object_get (control,
- "filters", &filters,
- NULL);
- text = pk_filter_bitfield_to_text (filters);
- g_strdelimit (text, ";", '\n');
- g_print ("%s\n", text);
- g_free (text);
- nowait = TRUE;
-
- } else if (strcmp (mode, "get-groups") == 0) {
- g_object_get (control,
- "groups", &groups,
- NULL);
- text = pk_group_bitfield_to_text (groups);
- g_strdelimit (text, ";", '\n');
- g_print ("%s\n", text);
- g_free (text);
- nowait = TRUE;
-
- } else if (strcmp (mode, "get-transactions") == 0) {
- pk_client_get_old_transactions_async (PK_CLIENT(task), 10, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else if (strcmp (mode, "refresh") == 0) {
- pk_client_refresh_cache_async (PK_CLIENT(task), FALSE, cancellable,
- (PkProgressCallback) pk_console_progress_cb, NULL,
- (GAsyncReadyCallback) pk_console_finished_cb, NULL);
-
- } else {
- /* TRANSLATORS: The user tried to use an unsupported option on the command line */
- error = g_error_new (1, 0, _("Option '%s' is not supported"), mode);
- }
-
- /* 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 (task);
- g_object_unref (cancellable);
-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-console.c b/client/pk-console.c
index 282a50b..05a675c 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
- * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2007-2009 Richard Hughes <richard at hughsie.com>
*
* Licensed under the GNU General Public License Version 2
*
@@ -21,79 +21,31 @@
#include "config.h"
-#include <string.h>
+//#include <string.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
-#include <sys/ioctl.h>
-#include <glib.h>
#include <glib/gi18n.h>
-#include <dbus/dbus-glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include <sys/types.h>
#include <pwd.h>
#include <locale.h>
#include "egg-debug.h"
-#include "egg-string.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;
static gboolean is_console = FALSE;
-static gboolean has_output_bar = FALSE;
-static gboolean need_requeue = FALSE;
static gboolean nowait = FALSE;
-static gboolean awaiting_space = FALSE;
-static guint timer_id = 0;
-static guint percentage_last = 0;
static PkControl *control = NULL;
-static PkClient *client_primary = NULL;
-static PkClient *client_secondary = NULL;
-static PkClient *client_sync = NULL;
-
-typedef struct {
- gint position;
- gboolean move_forward;
-} PulseState;
-
-/**
- * pk_console_bar:
- **/
-static void
-pk_console_bar (guint subpercentage)
-{
- guint section;
- guint i;
-
- /* don't pretty print */
- if (!is_console)
- return;
- if (!has_output_bar)
- return;
-
- /* restore cursor */
- g_print ("%c8", 0x1B);
-
- section = (guint) ((gfloat) PROGRESS_BAR_SIZE / (gfloat) 100.0 * (gfloat) subpercentage);
- g_print ("[");
- for (i=0; i<section; i++)
- g_print ("=");
- for (i=0; i<PROGRESS_BAR_SIZE-section; i++)
- g_print (" ");
- g_print ("] ");
- if (percentage_last != PK_CLIENT_PERCENTAGE_INVALID)
- g_print ("(%i%%) ", percentage_last);
- else
- g_print (" ");
- awaiting_space = TRUE;
-}
+static PkTaskText *task = NULL;
+static PkProgressBar *progressbar = NULL;
+static GCancellable *cancellable = NULL;
/**
* pk_strpad:
@@ -131,108 +83,62 @@ pk_strpad (const gchar *data, guint length)
}
/**
- * pk_console_start_bar:
- **/
-static void
-pk_console_start_bar (const gchar *text)
-{
- gchar *text_pad;
-
- /* make these all the same length */
- text_pad = pk_strpad (text, 50);
- g_print ("%s", text_pad);
- g_free (text_pad);
- has_output_bar = TRUE;
-
- /* save cursor in new position */
- g_print ("%c7", 0x1B);
- pk_console_bar (0);
-}
-
-/**
* pk_console_package_cb:
**/
static void
-pk_console_package_cb (PkClient *client, const PkPackageObj *obj, gpointer data)
+pk_console_package_cb (const PkItemPackage *obj, gpointer data)
{
- PkRoleEnum role;
gchar *package = NULL;
gchar *package_pad = NULL;
gchar *info_pad = NULL;
- gchar *text = NULL;
+ gchar **split = NULL;
/* ignore finished */
- if (obj->info == PK_INFO_ENUM_FINISHED)
+ if (obj->info_enum == PK_INFO_ENUM_FINISHED)
+ goto out;
+
+ /* split */
+ split = pk_package_id_split (obj->package_id);
+ if (split == NULL)
goto out;
/* make these all the same length */
- info_pad = pk_strpad (pk_info_enum_to_text (obj->info), 12);
+ info_pad = pk_strpad (pk_info_enum_to_text (obj->info_enum), 12);
+
+ /* create printable */
+ package = pk_package_id_to_printable (obj->package_id);
/* don't pretty print */
if (!is_console) {
- g_print ("%s %s-%s.%s\n", info_pad, obj->id->name, obj->id->version, obj->id->arch);
+ g_print ("%s %s\n", info_pad, package);
goto out;
}
/* pad the name-version */
- if (egg_strzero (obj->id->version))
- package = g_strdup (obj->id->name);
- else
- package = g_strdup_printf ("%s-%s", obj->id->name, obj->id->version);
package_pad = pk_strpad (package, 40);
-
- /* mark previous complete */
- if (has_output_bar)
- pk_console_bar (100);
-
- if (awaiting_space)
- g_print ("\n");
-
- pk_client_get_role (client, &role, NULL, NULL);
- if (role == PK_ROLE_ENUM_SEARCH_NAME ||
- role == PK_ROLE_ENUM_SEARCH_GROUP ||
- role == PK_ROLE_ENUM_SEARCH_FILE ||
- role == PK_ROLE_ENUM_SEARCH_DETAILS ||
- role == PK_ROLE_ENUM_GET_PACKAGES ||
- role == PK_ROLE_ENUM_GET_DEPENDS ||
- role == PK_ROLE_ENUM_GET_REQUIRES ||
- role == PK_ROLE_ENUM_GET_UPDATES ||
- role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
- role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES ||
- role == PK_ROLE_ENUM_SIMULATE_REMOVE_PACKAGES ||
- role == PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES) {
- /* don't do the bar */
- g_print ("%s\t%s\t%s\n", info_pad, package_pad, obj->summary);
- goto out;
- }
-
- text = g_strdup_printf ("%s\t%s", info_pad, package);
- pk_console_start_bar (text);
- g_free (text);
-
+ 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 (PkClient *client, const PkTransactionObj *obj, gpointer user_data)
+pk_console_transaction_cb (const PkItemTransaction *obj, gpointer user_data)
{
struct passwd *pw;
const gchar *role_text;
gchar **lines;
gchar **parts;
guint i, lines_len;
- PkPackageId *id;
+ gchar *package = NULL;
role_text = pk_role_enum_to_text (obj->role);
- if (awaiting_space)
- g_print ("\n");
/* 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 */
@@ -254,7 +160,7 @@ pk_console_transaction_cb (PkClient *client, const PkTransactionObj *obj, gpoint
g_print (" %s: %i\n", _("User ID"), obj->uid);
/* query real name */
- pw = getpwuid(obj->uid);
+ pw = getpwuid (obj->uid);
if (pw != NULL) {
if (pw->pw_name != NULL) {
/* TRANSLATORS: this is the username, e.g. hughsie */
@@ -275,89 +181,22 @@ pk_console_transaction_cb (PkClient *client, const PkTransactionObj *obj, gpoint
g_print (" %s\n", _("Affected packages: None"));
for (i=0; i<lines_len; i++) {
parts = g_strsplit (lines[i], "\t", 3);
- id = pk_package_id_new_from_string (parts[1]);
- g_print (" - %s %s", parts[0], id->name);
- if (!egg_strzero (id->version))
- g_print ("-%s", id->version);
- if (!egg_strzero (id->arch))
- g_print (".%s", id->arch);
- g_print ("\n");
- pk_package_id_free (id);
+
+ /* create printable */
+ package = pk_package_id_to_printable (parts[1]);
+ g_print (" - %s %s\n", parts[0], package);
+ g_free (package);
g_strfreev (parts);
}
g_strfreev (lines);
}
/**
- * pk_console_print_deps_list_info:
- **/
-static guint
-pk_console_print_deps_list_info (PkPackageList *list, PkInfoEnum info, const gchar *header)
-{
- const PkPackageObj *obj;
- gboolean ret = FALSE;
- guint found = 0;
- guint i;
- guint length;
-
- length = pk_package_list_get_size (list);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (list, i);
-
- /* are we interested in this type */
- if (obj->info != info)
- continue;
-
- /* 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-%s.%s\n", ++found, obj->id->name, obj->id->version, obj->id->arch);
- }
- return found;
-}
-
-/**
- * pk_console_print_deps_list:
- **/
-static guint
-pk_console_print_deps_list (PkPackageList *list)
-{
- guint found = 0;
-
- /* TRANSLATORS: When processing, we might have to remove other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REMOVING, _("The following packages have to be removed:"));
-
- /* TRANSLATORS: When processing, we might have to install other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_INSTALLING, _("The following packages have to be installed:"));
-
- /* TRANSLATORS: When processing, we might have to update other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_UPDATING, _("The following packages have to be updated:"));
-
- /* TRANSLATORS: When processing, we might have to reinstall other dependencies */
- found += pk_console_print_deps_list_info (list, PK_INFO_ENUM_REINSTALLING, _("The following packages have to be reinstalled:"));
-
- /* 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;
-}
-
-/**
* pk_console_distro_upgrade_cb:
**/
static void
-pk_console_distro_upgrade_cb (PkClient *client, const PkDistroUpgradeObj *obj, gpointer user_data)
+pk_console_distro_upgrade_cb (const PkItemDistroUpgrade *obj, gpointer user_data)
{
- if (awaiting_space)
- g_print ("\n");
/* 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 */
@@ -370,21 +209,19 @@ pk_console_distro_upgrade_cb (PkClient *client, const PkDistroUpgradeObj *obj, g
* pk_console_category_cb:
**/
static void
-pk_console_category_cb (PkClient *client, const PkCategoryObj *obj, gpointer user_data)
+pk_console_category_cb (const PkItemCategory *obj, gpointer user_data)
{
- if (awaiting_space)
- g_print ("\n");
/* 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 (!egg_strzero (obj->parent_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 (!egg_strzero (obj->summary)) {
+ if (obj->summary != NULL) {
/* TRANSLATORS: this is the summary of the group */
g_print (" %s: %s\n", _("Summary"), obj->summary);
}
@@ -396,80 +233,81 @@ pk_console_category_cb (PkClient *client, const PkCategoryObj *obj, gpointer use
* pk_console_update_detail_cb:
**/
static void
-pk_console_update_detail_cb (PkClient *client, const PkUpdateDetailObj *detail, gpointer data)
+pk_console_update_detail_cb (const PkItemUpdateDetail *detail, gpointer data)
{
gchar *issued;
gchar *updated;
+ gchar *package = NULL;
- if (awaiting_space)
- g_print ("\n");
/* 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_to_printable (detail->package_id);
+
/* TRANSLATORS: details about the update, package name and version */
- g_print (" %s: '%s-%s.%s'\n", _("Package"), detail->id->name, detail->id->version, detail->id->arch);
- if (!egg_strzero (detail->updates)) {
+ 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 (!egg_strzero (detail->obsoletes)) {
+ if (detail->obsoletes != NULL) {
/* TRANSLATORS: details about the update, any packages that this update obsoletes */
g_print (" %s: %s\n", _("Obsoletes"), detail->obsoletes);
}
- if (!egg_strzero (detail->vendor_url)) {
+ if (detail->vendor_url != NULL) {
/* TRANSLATORS: details about the update, the vendor URLs */
g_print (" %s: %s\n", _("Vendor"), detail->vendor_url);
}
- if (!egg_strzero (detail->bugzilla_url)) {
+ if (detail->bugzilla_url != NULL) {
/* TRANSLATORS: details about the update, the bugzilla URLs */
g_print (" %s: %s\n", _("Bugzilla"), detail->bugzilla_url);
}
- if (!egg_strzero (detail->cve_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 != PK_RESTART_ENUM_NONE) {
+ 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));
+ g_print (" %s: %s\n", _("Restart"), pk_restart_enum_to_text (detail->restart_enum));
}
- if (!egg_strzero (detail->update_text)) {
+ 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 (!egg_strzero (detail->changelog)) {
+ 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 != PK_UPDATE_STATE_ENUM_UNKNOWN) {
+ 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));
+ g_print (" %s: %s\n", _("State"), pk_update_state_enum_to_text (detail->state_enum));
}
issued = pk_iso8601_from_date (detail->issued);
- if (!egg_strzero (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 (!egg_strzero (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 (PkClient *client, const gchar *repo_id,
- const gchar *description, gboolean enabled, gpointer data)
+pk_console_repo_detail_cb (const PkItemRepoDetail *obj, gpointer data)
{
gchar *enabled_pad;
gchar *repo_pad;
- if (awaiting_space)
- g_print ("\n");
- if (enabled) {
+ if (obj->enabled) {
/* TRANSLATORS: if the repo is enabled */
enabled_pad = pk_strpad (_("Enabled"), 10);
} else {
@@ -477,153 +315,126 @@ pk_console_repo_detail_cb (PkClient *client, const gchar *repo_id,
enabled_pad = pk_strpad (_("Disabled"), 10);
}
- repo_pad = pk_strpad (repo_id, 25);
- g_print (" %s %s %s\n", enabled_pad, repo_pad, description);
+ 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_pulse_bar:
+ * pk_console_require_restart_cb:
**/
-static gboolean
-pk_console_pulse_bar (PulseState *pulse_state)
+static void
+pk_console_require_restart_cb (const PkItemRequireRestart *obj, gpointer data)
{
- gint i;
-
- if (!has_output_bar)
- return TRUE;
-
- /* restore cursor */
- g_print ("%c8", 0x1B);
-
- if (pulse_state->move_forward) {
- if (pulse_state->position == PROGRESS_BAR_SIZE - 1)
- pulse_state->move_forward = FALSE;
- else
- pulse_state->position++;
- } else if (!pulse_state->move_forward) {
- if (pulse_state->position == 1)
- pulse_state->move_forward = TRUE;
- else
- pulse_state->position--;
- }
+ gchar *package = NULL;
- g_print ("[");
- for (i=0; i<pulse_state->position-1; i++)
- g_print (" ");
- printf("==");
- for (i=0; i<PROGRESS_BAR_SIZE-pulse_state->position-1; i++)
- g_print (" ");
- g_print ("] ");
- if (percentage_last != PK_CLIENT_PERCENTAGE_INVALID)
- g_print ("(%i%%) ", percentage_last);
- else
- g_print (" ");
+ /* create printable */
+ package = pk_package_id_to_printable (obj->package_id);
- return TRUE;
+ 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_draw_pulse_bar:
+ * pk_console_details_cb:
**/
static void
-pk_console_draw_pulse_bar (void)
+pk_console_details_cb (const PkItemDetails *obj, gpointer data)
{
- static PulseState pulse_state;
+ gchar *package = NULL;
- /* have we already got zero percent? */
- if (timer_id != 0)
- return;
- if (is_console) {
- pulse_state.position = 1;
- pulse_state.move_forward = TRUE;
- timer_id = g_timeout_add (40, (GSourceFunc) pk_console_pulse_bar, &pulse_state);
- }
+ /* create printable */
+ package = pk_package_id_to_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_progress_changed_cb:
+ * pk_console_message_cb:
**/
static void
-pk_console_progress_changed_cb (PkClient *client, guint percentage, guint subpercentage,
- guint elapsed, guint remaining, gpointer data)
+pk_console_message_cb (const PkItemMessage *obj, gpointer data)
{
- if (!is_console) {
- if (percentage != PK_CLIENT_PERCENTAGE_INVALID)
- g_print ("%s: %i%%\n", _("Percentage"), percentage);
- else
- g_print ("%s: %s\n", _("Percentage"), _("Unknown"));
- return;
- }
- percentage_last = percentage;
- if (subpercentage == PK_CLIENT_PERCENTAGE_INVALID) {
- pk_console_bar (0);
- pk_console_draw_pulse_bar ();
- } else {
- if (timer_id != 0) {
- g_source_remove (timer_id);
- timer_id = 0;
- }
- pk_console_bar (subpercentage);
- }
+ /* 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_signature_finished_cb:
+ * pk_console_files_cb:
**/
static void
-pk_console_signature_finished_cb (PkClient *client, PkExitEnum exit_enum, guint runtime, gpointer data)
+pk_console_files_cb (PkItemFiles *obj, gpointer data)
{
- gboolean ret;
- GError *error = NULL;
+ guint i;
- egg_debug ("trying to requeue");
- ret = pk_client_requeue (client_primary, &error);
- if (!ret) {
- egg_warning ("failed to requeue action: %s", error->message);
- g_error_free (error);
- g_main_loop_quit (loop);
+ /* empty */
+ if (obj->files == NULL || obj->files[0] == NULL) {
+ /* TRANSLATORS: This where the package has no files */
+ g_print ("%s\n", _("No files"));
+ return;
}
-}
-/**
- * pk_console_require_restart_cb:
- **/
-static void
-pk_console_require_restart_cb (PkClient *client, const PkRequireRestartObj *obj, gpointer data)
-{
- if (obj->restart == PK_RESTART_ENUM_SYSTEM) {
- /* TRANSLATORS: a package requires the system to be restarted */
- g_print ("%s %s-%s.%s\n", _("System restart required by:"), obj->id->name, obj->id->version, obj->id->arch);
- } else if (obj->restart == PK_RESTART_ENUM_SESSION) {
- /* TRANSLATORS: a package requires the session to be restarted */
- g_print ("%s %s-%s.%s\n", _("Session restart required:"), obj->id->name, obj->id->version, obj->id->arch);
- } 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-%s.%s\n", _("System restart (security) required by:"), obj->id->name, obj->id->version, obj->id->arch);
- } 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-%s.%s\n", _("Session restart (security) required:"), obj->id->name, obj->id->version, obj->id->arch);
- } else if (obj->restart == PK_RESTART_ENUM_APPLICATION) {
- /* TRANSLATORS: a package requires the application to be restarted */
- g_print ("%s %s-%s.%s\n", _("Application restart required by:"), obj->id->name, obj->id->version, obj->id->arch);
+ /* 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_destroy_cb:
+ * pk_console_progress_cb:
**/
static void
-pk_console_destroy_cb (PkClient *client, gpointer data)
+pk_console_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
{
- gboolean ret;
+ gint percentage;
+ PkStatusEnum status;
+ const gchar *status_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);
+ if (status == PK_STATUS_ENUM_FINISHED)
+ return;
- /* exit our private loop if it's running */
- ret = g_main_loop_is_running (loop);
- if (ret) {
- egg_warning ("maybe quit loop due to transaction being destroyed?");
-// g_main_loop_quit (loop);
+ /* show new status on the bar */
+ status_text = pk_status_enum_to_localised_text (status);
+ pk_progress_bar_start (progressbar, status_text);
}
}
@@ -631,44 +442,106 @@ pk_console_destroy_cb (PkClient *client, gpointer data)
* pk_console_finished_cb:
**/
static void
-pk_console_finished_cb (PkClient *client, PkExitEnum exit_enum, guint runtime, gpointer data)
+pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
{
- PkRoleEnum role;
- const gchar *role_text;
- gfloat time_s;
- PkRestartEnum restart;
- gboolean ret;
+ const PkItemErrorCode *error_item;
+ PkResults *results;
GError *error = NULL;
+ GPtrArray *array;
+ PkExitEnum exit_enum;
+ PkRestartEnum restart;
+ PkRoleEnum role;
- pk_client_get_role (client, &role, NULL, NULL);
-
- /* mark previous complete */
- if (has_output_bar)
- pk_console_bar (100);
-
- /* cancel the spinning */
- if (timer_id != 0)
- g_source_remove (timer_id);
+ /* no more progress */
+ pk_progress_bar_end (progressbar);
- role_text = pk_role_enum_to_text (role);
- time_s = (gfloat) runtime / 1000.0;
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(task), res, &error);
+ if (results == NULL) {
+ g_print ("Failed to complete: %s\n", error->message);
+ g_error_free (error);
+ goto out;
+ }
- /* do we need to new line? */
- if (awaiting_space)
- g_print ("\n");
- egg_debug ("%s runtime was %.1f seconds", role_text, time_s);
+ /* get the role */
+ g_object_get (G_OBJECT(results), "role", &role, NULL);
+
+ exit_enum = pk_results_get_exit_code (results);
+// if (exit_enum != PK_EXIT_ENUM_CANCELLED)
+// egg_test_failed (test, "failed to cancel search: %s", pk_exit_enum_to_text (exit_enum));
+
+ /* check error code */
+ error_item = pk_results_get_error_code (results);
+// if (error_item->code != PK_ERROR_ENUM_TRANSACTION_CANCELLED)
+// egg_test_failed (test, "failed to get error code: %i", error_item->code);
+// if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
+// egg_test_failed (test, "failed to get error message: %s", error_item->details);
+
+ /* package */
+ if (role != PK_ROLE_ENUM_INSTALL_PACKAGES &&
+ role != PK_ROLE_ENUM_UPDATE_PACKAGES &&
+ role != PK_ROLE_ENUM_UPDATE_SYSTEM &&
+ role != PK_ROLE_ENUM_REMOVE_PACKAGES) {
+ array = pk_results_get_package_array (results);
+ g_ptr_array_foreach (array, (GFunc) pk_console_package_cb, NULL);
+ g_ptr_array_unref (array);
+ }
+
+ /* 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);
+
+ /* don't print files if we are DownloadPackages */
+ if (role != PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
+ array = pk_results_get_files_array (results);
+ g_ptr_array_foreach (array, (GFunc) pk_console_files_cb, NULL);
+ g_ptr_array_unref (array);
+ }
/* is there any restart to notify the user? */
- restart = pk_client_get_require_restart (client);
+ restart = pk_results_get_require_restart_worst (results);
if (restart == PK_RESTART_ENUM_SYSTEM) {
/* TRANSLATORS: a package needs to restart their system */
g_print ("%s\n", _("Please restart the computer to complete the update."));
} else if (restart == PK_RESTART_ENUM_SESSION) {
/* TRANSLATORS: a package needs to restart the session */
g_print ("%s\n", _("Please logout and login to complete the update."));
- } else if (restart == PK_RESTART_ENUM_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."));
@@ -676,453 +549,65 @@ pk_console_finished_cb (PkClient *client, PkExitEnum exit_enum, guint runtime, g
/* 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 (PkClient *client, PkBitfield filter, const gchar *package, GError **error)
-{
- PkPackageList *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 */
- if (awaiting_space)
- g_print ("\n");
-
- /* 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)
-{
- PkPackageList *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;
+ if (results != NULL)
+ g_object_unref (results);
+ g_main_loop_quit (loop);
}
/**
- * pk_console_install_stuff:
+ * pk_console_install_packages:
**/
static gboolean
-pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
+pk_console_install_packages (gchar **packages, GError **error)
{
gboolean ret = TRUE;
- gboolean installed;
- gboolean is_local;
- gboolean accept_changes;
- gchar *package_id = NULL;
- gchar **package_ids = NULL;
- gchar **files = NULL;
- guint i;
- guint length;
- PkPackageList *list;
- PkPackageList *list_single;
- GPtrArray *array_packages;
- GPtrArray *array_files;
+ gchar **package_ids;
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");
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+ if (package_ids == NULL) {
+ /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+ *error = g_error_new (1, 0, _("This tool could not find the available package: %s"), error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
goto out;
}
-
- /* 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) {
- /* present this to the user */
- if (awaiting_space)
- g_print ("\n");
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
-
- /* we chickened out */
- if (!accept_changes) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
- ret = FALSE;
- goto out;
- }
- }
- }
-
- /* reset */
- ret = pk_client_reset (client, &error_local);
- if (!ret) {
- /* 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) {
- /* present this to the user */
- if (awaiting_space)
- g_print ("\n");
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
-
- /* we chickened out */
- if (!accept_changes) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package install was canceled!"));
- ret = FALSE;
- goto out;
- }
- }
- }
-
- /* reset */
- ret = pk_client_reset (client, &error_local);
- if (!ret) {
- /* 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_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;
- }
- }
-
+ /* do the async action */
+ pk_task_install_packages_async (PK_TASK(task), package_ids, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
out:
- g_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 (PkClient *client, 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 (PkClient *client, gchar **packages, GError **error)
+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;
- PkPackageList *list;
- PkPackageList *list_single;
+ gchar **package_ids;
GError *error_local = NULL;
- array = g_ptr_array_new ();
- list = pk_package_list_new ();
- length = g_strv_length (packages);
- for (i=2; i<length; i++) {
- package_id = pk_console_perhaps_resolve (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);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages, &error_local);
+ if (package_ids == NULL) {
+ /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+ *error = g_error_new (1, 0, _("This tool could not find the installed package: %s"), error_local->message);
g_error_free (error_local);
- 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 */
- if (awaiting_space)
- g_print ("\n");
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- 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);
- }
-
+ /* do the async action */
+ pk_task_remove_packages_async (PK_TASK(task), package_ids, FALSE, FALSE, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
out:
- g_object_unref (list);
g_strfreev (package_ids);
- g_ptr_array_foreach (array, (GFunc) g_free, NULL);
- g_ptr_array_free (array, TRUE);
return ret;
}
@@ -1130,159 +615,55 @@ out:
* pk_console_download_packages:
**/
static gboolean
-pk_console_download_packages (PkClient *client, gchar **packages, const gchar *directory, GError **error)
+pk_console_download_packages (gchar **packages, const gchar *directory, GError **error)
{
gboolean ret = TRUE;
- gchar *package_id = NULL;
- gchar **package_ids = NULL;
- guint i;
- guint length;
- GPtrArray *array_packages;
+ gchar **package_ids;
GError *error_local = NULL;
- array_packages = g_ptr_array_new ();
- length = g_strv_length (packages);
- for (i=3; i<length; i++) {
- package_id = pk_console_perhaps_resolve (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");
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ if (package_ids == NULL) {
+ /* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
+ *error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
goto out;
}
- /* any to process? */
- if (array_packages->len > 0) {
- /* convert to strv */
- package_ids = pk_ptr_array_to_strv (array_packages);
-
- /* 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;
- }
- }
-
+ /* do the async action */
+ pk_client_download_packages_async (PK_CLIENT(task), package_ids, directory, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
out:
g_strfreev (package_ids);
- g_ptr_array_foreach (array_packages, (GFunc) g_free, NULL);
- g_ptr_array_free (array_packages, TRUE);
return ret;
}
/**
- * pk_console_update_package:
+ * pk_console_update_packages:
**/
static gboolean
-pk_console_update_package (PkClient *client, const gchar *package, GError **error)
+pk_console_update_packages (gchar **packages, GError **error)
{
- gboolean ret;
- gchar *package_id;
+ gboolean ret = TRUE;
gchar **package_ids;
- guint length;
GError *error_local = NULL;
- gboolean accept_changes;
- PkPackageList *list;
- PkPackageList *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) {
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+ if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not update %s: %s"), package, error_local->message);
+ *error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
g_error_free (error_local);
- 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)
+ ret = FALSE;
goto out;
-
- /* if there are no required packages, just do the remove */
- length = pk_package_list_get_size (list);
- if (length != 0) {
- /* present this to the user */
- if (awaiting_space)
- g_print ("\n");
-
- /* print the additional deps to the screen */
- pk_console_print_deps_list (list);
-
- /* TRANSLATORS: We are checking if it's okay to remove a list of packages */
- accept_changes = pk_console_get_prompt (_("Proceed with changes?"), FALSE);
-
- /* we chickened out */
- if (!accept_changes) {
- /* TRANSLATORS: There was an error removing the packages. The detailed error follows */
- *error = g_error_new (1, 0, "%s", _("The package 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);
- }
+ /* do the async action */
+ pk_task_update_packages_async (PK_TASK(task), package_ids, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
out:
- g_object_unref (list);
g_strfreev (package_ids);
- g_free (package_id);
return ret;
}
@@ -1290,29 +671,27 @@ out:
* pk_console_get_requires:
**/
static gboolean
-pk_console_get_requires (PkClient *client, PkBitfield filters, const gchar *package, GError **error)
+pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
{
- gboolean ret;
- gchar *package_id;
- gchar **package_ids;
+ gboolean ret = TRUE;
+ gchar **package_ids = NULL;
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) {
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not get the requirements for %s: %s"), package, error_local->message);
- 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);
+ *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
g_error_free (error_local);
+ ret = FALSE;
+ goto out;
}
+
+ /* do the async action */
+ pk_client_get_requires_async (PK_CLIENT(task), filters, package_ids, TRUE, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
g_strfreev (package_ids);
- g_free (package_id);
return ret;
}
@@ -1320,29 +699,27 @@ pk_console_get_requires (PkClient *client, PkBitfield filters, const gchar *pack
* pk_console_get_depends:
**/
static gboolean
-pk_console_get_depends (PkClient *client, PkBitfield filters, const gchar *package, GError **error)
+pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
{
- gboolean ret;
- gchar *package_id;
- gchar **package_ids;
+ gboolean ret = TRUE;
+ gchar **package_ids = NULL;
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) {
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not get the dependencies for %s: %s"), package, error_local->message);
+ *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
g_error_free (error_local);
+ ret = FALSE;
+ goto out;
}
+
+ /* do the async action */
+ pk_client_get_depends_async (PK_CLIENT(task), filters, package_ids, FALSE, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
g_strfreev (package_ids);
- g_free (package_id);
return ret;
}
@@ -1350,29 +727,27 @@ pk_console_get_depends (PkClient *client, PkBitfield filters, const gchar *packa
* pk_console_get_details:
**/
static gboolean
-pk_console_get_details (PkClient *client, const gchar *package, GError **error)
+pk_console_get_details (gchar **packages, GError **error)
{
- gboolean ret;
- gchar *package_id;
- gchar **package_ids;
+ gboolean ret = TRUE;
+ gchar **package_ids = NULL;
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) {
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the details about the package. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not get package details for %s: %s"), package, error_local->message);
- 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);
+ *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
g_error_free (error_local);
+ ret = FALSE;
+ goto out;
}
+
+ /* do the async action */
+ pk_client_get_details_async (PK_CLIENT(task), package_ids, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
g_strfreev (package_ids);
- g_free (package_id);
return ret;
}
@@ -1380,268 +755,27 @@ pk_console_get_details (PkClient *client, const gchar *package, GError **error)
* pk_console_get_files:
**/
static gboolean
-pk_console_get_files (PkClient *client, const gchar *package, GError **error)
+pk_console_get_files (gchar **packages, GError **error)
{
- gboolean ret;
- gchar *package_id;
- gchar **package_ids;
+ gboolean ret = TRUE;
+ gchar **package_ids = NULL;
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) {
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ if (package_ids == NULL) {
/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find the files for %s: %s"), package, error_local->message);
- 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);
+ *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
g_error_free (error_local);
- }
- g_strfreev (package_ids);
- g_free (package_id);
- return ret;
-}
-
-/**
- * pk_console_list_create:
- **/
-static gboolean
-pk_console_list_create (PkClient *client, const gchar *file, GError **error)
-{
- gboolean ret;
- GError *error_local = NULL;
- PkPackageList *list;
-
- /* file exists */
- ret = g_file_test (file, G_FILE_TEST_EXISTS);
- if (ret) {
- /* TRANSLATORS: There was an error getting the list of packages. The filename follows */
- *error = g_error_new (1, 0, _("File already exists: %s"), file);
- return FALSE;
- }
-
- /* TRANSLATORS: follows a list of packages to install */
- g_print ("%s...\n", _("Getting package list"));
-
- /* get all installed packages and save it to disk */
- ret = pk_client_get_packages (client_sync, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), &error_local);
- if (!ret) {
- /* TRANSLATORS: There was an error getting the list of packages. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not get package list: %s"), error_local->message);
- g_error_free (error_local);
- return FALSE;
- }
-
- /* save list to disk */
- list = pk_client_get_package_list (client_sync);
- ret = pk_obj_list_to_file (PK_OBJ_LIST(list), file);
- g_object_unref (list);
- if (!ret) {
- /* TRANSLATORS: There was an error saving the list */
- *error = g_error_new (1, 0, _("Failed to save to disk"));
- return FALSE;
- }
- return TRUE;
-}
-
-/**
- * pk_console_package_obj_name_equal:
- **/
-static gboolean
-pk_console_package_obj_name_equal (const PkPackageObj *obj1, const PkPackageObj *obj2)
-{
- return (g_strcmp0 (obj1->id->name, obj2->id->name) == 0);
-}
-
-/**
- * pk_console_list_diff:
- **/
-static gboolean
-pk_console_list_diff (PkClient *client, const gchar *file, GError **error)
-{
- gboolean ret;
- GError *error_local = NULL;
- PkPackageList *list;
- PkPackageList *list_copy;
- PkPackageList *new;
- const PkPackageObj *obj;
- guint i;
- guint length;
-
- /* file exists */
- ret = g_file_test (file, G_FILE_TEST_EXISTS);
- if (!ret) {
- /* TRANSLATORS: There was an error getting the list. The filename follows */
- *error = g_error_new (1, 0, _("File does not exist: %s"), file);
- return FALSE;
- }
-
- /* TRANSLATORS: follows a list of packages to install */
- g_print ("%s...\n", _("Getting package list"));
-
- /* get all installed packages */
- ret = pk_client_get_packages (client_sync, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), &error_local);
- if (!ret) {
- /* TRANSLATORS: There was an error getting the list of packages. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not get package list: %s"), error_local->message);
- g_error_free (error_local);
- return FALSE;
- }
-
- /* get two copies of the list */
- list = pk_client_get_package_list (client_sync);
- list_copy = pk_package_list_new ();
- pk_obj_list_add_list (PK_OBJ_LIST(list_copy), PK_OBJ_LIST(list));
-
- /* get installed copy */
- new = pk_package_list_new ();
- pk_obj_list_from_file (PK_OBJ_LIST(new), file);
-
- /* only compare the name */
- pk_obj_list_set_equal (PK_OBJ_LIST(list), (PkObjListCompareFunc) pk_console_package_obj_name_equal);
- pk_obj_list_set_equal (PK_OBJ_LIST(new), (PkObjListCompareFunc) pk_console_package_obj_name_equal);
- pk_obj_list_remove_list (PK_OBJ_LIST(list), PK_OBJ_LIST(new));
- pk_obj_list_remove_list (PK_OBJ_LIST(new), PK_OBJ_LIST(list_copy));
-
- /* TRANSLATORS: header to a list of packages newly added */
- g_print ("%s:\n", _("Packages to add"));
- length = PK_OBJ_LIST(list)->len;
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (list, i);
- g_print ("%i\t%s\n", i+1, obj->id->name);
- }
-
- /* TRANSLATORS: header to a list of packages removed */
- g_print ("%s:\n", _("Packages to remove"));
- length = PK_OBJ_LIST(new)->len;
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (new, i);
- g_print ("%i\t%s\n", i+1, obj->id->name);
- }
-
- g_object_unref (list);
- g_object_unref (list_copy);
- g_object_unref (new);
- return TRUE;
-}
-
-/**
- * pk_console_list_install:
- **/
-static gboolean
-pk_console_list_install (PkClient *client, const gchar *file, GError **error)
-{
- gboolean ret = FALSE;
- GError *error_local = NULL;
- PkPackageList *list;
- PkPackageList *new;
- PkBitfield filters;
- const PkPackageObj *obj;
- guint i;
- guint length;
- gchar *package_id;
- gchar **package_ids = NULL;
- GPtrArray *array;
-
- /* file exists */
- ret = g_file_test (file, G_FILE_TEST_EXISTS);
- if (!ret) {
- /* TRANSLATORS: There was an error getting the list. The filename follows */
- *error = g_error_new (1, 0, _("File does not exist: %s"), file);
- return FALSE;
- }
-
- /* TRANSLATORS: follows a list of packages to install */
- g_print ("%s...\n", _("Getting package list"));
-
- /* get all installed packages */
- ret = pk_client_get_packages (client_sync, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), &error_local);
- if (!ret) {
- /* TRANSLATORS: There was an error getting the list of packages. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not get package list: %s"), error_local->message);
- g_error_free (error_local);
- return FALSE;
- }
-
- /* get two copies of the list */
- list = pk_client_get_package_list (client_sync);
-
- /* get installed copy */
- new = pk_package_list_new ();
- pk_obj_list_from_file (PK_OBJ_LIST(new), file);
-
- /* only compare the name */
- pk_obj_list_set_equal (PK_OBJ_LIST(new), (PkObjListCompareFunc) pk_console_package_obj_name_equal);
- pk_obj_list_remove_list (PK_OBJ_LIST(new), PK_OBJ_LIST(list));
- array = g_ptr_array_new ();
-
-
- /* nothing to do */
- length = PK_OBJ_LIST(new)->len;
- if (length == 0) {
- /* TRANSLATORS: We didn't find any differences */
- *error = g_error_new (1, 0, _("No new packages need to be installed"));
ret = FALSE;
goto out;
}
- /* TRANSLATORS: follows a list of packages to install */
- g_print ("%s:\n", _("To install"));
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (new, i);
- g_print ("%s ", obj->id->name);
- }
- g_print ("\n");
-
- /* resolve */
- filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (new, i);
- /* TRANSLATORS: searching takes some time.... */
- g_print ("%.0f%%\t%s %s...", (100.0f/length)*i, _("Searching for package: "), obj->id->name);
- package_id = pk_console_perhaps_resolve (client, filters, obj->id->name, NULL);
- if (package_id == NULL) {
- /* TRANSLATORS: package was not found -- this is the end of a string ended in ... */
- g_print (" %s\n", _("not found."));
- } else {
- g_print (" %s\n", obj->id->version);
- g_ptr_array_add (array, package_id);
- /* no need to free */
- }
- }
-
- /* nothing to do */
- if (array->len == 0) {
- /* TRANSLATORS: We didn't find any packages to install */
- *error = g_error_new (1, 0, _("No packages can be found to install"));
- ret = FALSE;
- goto out;
- }
-
- /* TRANSLATORS: installing new packages from package list */
- g_print ("%s...\n", _("Installing packages"));
-
- /* install packages */
- package_ids = pk_package_ids_from_array (array);
- ret = pk_client_install_packages (client, FALSE, 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;
- }
-
+ /* do the async action */
+ pk_client_get_files_async (PK_CLIENT(task), package_ids, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
out:
- g_ptr_array_foreach (array, (GFunc) g_free, NULL);
- g_ptr_array_free (array, TRUE);
g_strfreev (package_ids);
-
- g_object_unref (list);
- g_object_unref (new);
return ret;
}
@@ -1649,269 +783,57 @@ out:
* pk_console_get_update_detail
**/
static gboolean
-pk_console_get_update_detail (PkClient *client, const gchar *package, GError **error)
+pk_console_get_update_detail (gchar **packages, GError **error)
{
- gboolean ret;
- gchar *package_id;
- gchar **package_ids;
+ gboolean ret = TRUE;
+ gchar **package_ids = NULL;
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) {
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+ if (package_ids == NULL) {
/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
- *error = g_error_new (1, 0, _("This tool could not find the update details for %s: %s"), package, error_local->message);
- 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);
+ *error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
g_error_free (error_local);
+ ret = FALSE;
+ goto out;
}
+
+ /* do the async action */
+ pk_client_get_update_detail_async (PK_CLIENT(task), package_ids, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+out:
g_strfreev (package_ids);
- g_free (package_id);
return ret;
}
/**
- * pk_console_error_code_cb:
- **/
-static void
-pk_console_error_code_cb (PkClient *client, 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");
- }
-
- if (awaiting_space)
- g_print ("\n");
- /* 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);
-}
-
-/**
- * pk_console_details_cb:
- **/
-static void
-pk_console_details_cb (PkClient *client, const PkDetailsObj *details, gpointer data)
-{
- /* if on console, clear the progress bar line */
- if (awaiting_space)
- g_print ("\n");
-
- /* TRANSLATORS: This a list of details about the package */
- g_print ("%s\n", _("Package description"));
- g_print (" package: %s-%s.%s\n", details->id->name, details->id->version, details->id->arch);
- g_print (" license: %s\n", details->license);
- g_print (" group: %s\n", pk_group_enum_to_text (details->group));
- g_print (" description: %s\n", details->description);
- g_print (" size: %lu bytes\n", (long unsigned int) details->size);
- g_print (" url: %s\n", details->url);
-}
-
-/**
- * pk_watch_message_cb:
- **/
-static void
-pk_watch_message_cb (PkClient *client, PkMessageEnum message, const gchar *details, 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 (message), details);
-}
-
-/**
- * pk_console_files_cb:
- **/
-static void
-pk_console_files_cb (PkClient *client, const gchar *package_id,
- const gchar *filelist, gpointer data)
-{
- PkRoleEnum role;
- gchar **filevector;
- gchar **current_file;
-
- /* 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;
- }
-
- filevector = g_strsplit (filelist, ";", 0);
-
- if (awaiting_space)
- g_print ("\n");
-
- if (*filevector != NULL) {
- /* TRANSLATORS: This a list files contained in the package */
- g_print ("%s\n", _("Package files"));
- current_file = filevector;
- while (*current_file != NULL) {
- g_print (" %s\n", *current_file);
- current_file++;
- }
- } else {
- /* TRANSLATORS: This where the package has no files */
- g_print ("%s\n", _("No files"));
- }
-
- g_strfreev (filevector);
-}
-
-/**
- * pk_console_repo_signature_required_cb:
- **/
-static void
-pk_console_repo_signature_required_cb (PkClient *client, const gchar *package_id, const gchar *repository_name,
- const gchar *key_url, const gchar *key_userid, const gchar *key_id,
- const gchar *key_fingerprint, const gchar *key_timestamp,
- PkSigTypeEnum type, gpointer data)
-{
- gboolean import;
- gboolean ret;
- GError *error = NULL;
-
- if (awaiting_space)
- g_print ("\n");
-
- /* 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_id);
- g_print ("Name: %s\n", repository_name);
- g_print ("URL: %s\n", key_url);
- g_print ("User: %s\n", key_userid);
- g_print ("ID: %s\n", key_id);
- g_print ("Fingerprint: %s\n", key_fingerprint);
- g_print ("Timestamp: %s\n", key_timestamp);
-
- /* 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;
- }
-
- /* we imported a signature */
- need_requeue = TRUE;
-}
-
-/**
- * pk_console_eula_required_cb:
- **/
-static void
-pk_console_eula_required_cb (PkClient *client, const gchar *eula_id, const gchar *package_id,
- const gchar *vendor_name, const gchar *license_agreement, gpointer data)
-{
- gboolean import;
- gboolean ret;
- GError *error = NULL;
-
- if (awaiting_space)
- g_print ("\n");
-
- /* TRANSLATORS: This a request for a EULA */
- g_print ("%s\n", _("End user license agreement required"));
- g_print ("Eula: %s\n", eula_id);
- g_print ("Package: %s\n", package_id);
- g_print ("Vendor: %s\n", vendor_name);
- g_print ("Agreement: %s\n", license_agreement);
-
- /* 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;
-}
-
-/**
* pk_connection_changed_cb:
**/
static void
-pk_connection_changed_cb (PkConnection *pconnection, gboolean connected, gpointer data)
+pk_connection_changed_cb (PkControl *control_, gboolean connected, gpointer data)
{
/* if the daemon crashed, don't hang around */
- if (awaiting_space)
- g_print ("\n");
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);
+ _exit (2);
}
}
/**
- * pk_console_sigint_handler:
+ * pk_console_sigint_cb:
**/
static void
-pk_console_sigint_handler (int sig)
+pk_console_sigint_cb (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);
- /* cancel any tasks */
- pk_client_get_role (client_primary, &role, NULL, NULL);
- if (role != PK_ROLE_ENUM_UNKNOWN) {
- ret = pk_client_cancel (client_primary, &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);
- }
- }
+ /* cancel any tasks still running */
+ g_cancellable_cancel (cancellable);
/* kill ourselves */
egg_debug ("Retrying SIGINT");
@@ -1944,9 +866,10 @@ pk_console_get_summary (void)
pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_GROUP) ||
pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_FILE))
g_string_append_printf (string, " %s\n", "search [name|details|group|file] [data]");
- if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_PACKAGES) ||
- pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_FILES))
- g_string_append_printf (string, " %s\n", "install [packages|files]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_PACKAGES))
+ g_string_append_printf (string, " %s\n", "install [packages]");
+ if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_FILES))
+ g_string_append_printf (string, " %s\n", "install-local [files]");
if (pk_bitfield_contain (roles, PK_ROLE_ENUM_DOWNLOAD_PACKAGES))
g_string_append_printf (string, " %s\n", "download [directory] [packages]");
if (pk_bitfield_contain (roles, PK_ROLE_ENUM_INSTALL_SIGNATURE))
@@ -1995,28 +918,48 @@ pk_console_get_summary (void)
}
/**
+ * pk_console_get_time_since_action_cb:
+ **/
+static void
+pk_console_get_time_since_action_cb (GObject *object, GAsyncResult *res, gpointer data)
+{
+ guint time_ms;
+ GError *error = NULL;
+// PkControl *control = PK_CONTROL(object);
+
+ /* get the results */
+ time_ms = pk_control_get_time_since_action_finish (control, res, &error);
+ if (time_ms == 0) {
+ /* TRANSLATORS: we keep a database updated with the time that an action was last executed */
+ g_print ("%s: %s\n", _("Failed to get the time since this action was last completed"), error->message);
+ g_error_free (error);
+ goto out;
+ }
+ g_print ("time is %is\n", time_ms);
+out:
+ g_main_loop_quit (loop);
+}
+
+/**
* main:
**/
int
main (int argc, char *argv[])
{
- DBusGConnection *system_connection;
+ gboolean ret;
GError *error = NULL;
- PkConnection *pconnection;
gboolean verbose = FALSE;
gboolean program_version = FALSE;
GOptionContext *context;
gchar *options_help;
gchar *filter = NULL;
- gchar *summary;
- gboolean ret = FALSE;
+ 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;
@@ -2043,30 +986,36 @@ main (int argc, char *argv[])
if (! g_thread_supported ())
g_thread_init (NULL);
- dbus_g_thread_init ();
g_type_init ();
/* do stuff on ctrl-c */
- signal (SIGINT, pk_console_sigint_handler);
+ signal (SIGINT, pk_console_sigint_cb);
/* check if we are on console */
if (isatty (fileno (stdout)) == 1)
is_console = TRUE;
- /* check dbus connections, exit if not valid */
- system_connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
- if (error) {
- egg_warning ("%s", error->message);
+ /* we need the roles early, as we only show the user only what they can do */
+ control = pk_control_new ();
+ ret = pk_control_get_properties_sync (control, &error);
+ if (!ret) {
+ /* TRANSLATORS: we failed to contact the daemon */
+ g_print ("%s: %s\n", _("Failed to contact PackageKit"), error->message);
g_error_free (error);
- /* TRANSLATORS: This is when we could not connect to the system bus, and is fatal */
- g_error (_("This tool could not connect to system DBUS."));
+ goto out_last;
}
- /* we need the roles early, as we only show the user only what they can do */
- control = pk_control_new ();
- roles = pk_control_get_actions (control, NULL);
+ /* get data */
+ g_object_get (control,
+ "roles", &roles,
+ NULL);
+
summary = pk_console_get_summary ();
+ progressbar = pk_progress_bar_new ();
+ pk_progress_bar_set_size (progressbar, 25);
+ pk_progress_bar_set_padding (progressbar, 30);
+ cancellable = g_cancellable_new ();
context = g_option_context_new ("PackageKit Console Program");
g_option_context_set_summary (context, summary) ;
g_option_context_add_main_entries (context, options, NULL);
@@ -2091,58 +1040,12 @@ main (int argc, char *argv[])
loop = g_main_loop_new (NULL, FALSE);
- pconnection = pk_connection_new ();
- g_signal_connect (pconnection, "connection-changed",
+ /* watch when the daemon aborts */
+ g_signal_connect (control, "connection-changed",
G_CALLBACK (pk_connection_changed_cb), loop);
- client_primary = pk_client_new ();
- pk_client_set_use_buffer (client_primary, TRUE, NULL);
- g_signal_connect (client_primary, "package",
- G_CALLBACK (pk_console_package_cb), NULL);
- g_signal_connect (client_primary, "transaction",
- G_CALLBACK (pk_console_transaction_cb), NULL);
- g_signal_connect (client_primary, "distro-upgrade",
- G_CALLBACK (pk_console_distro_upgrade_cb), NULL);
- g_signal_connect (client_primary, "category",
- G_CALLBACK (pk_console_category_cb), NULL);
- g_signal_connect (client_primary, "details",
- G_CALLBACK (pk_console_details_cb), NULL);
- g_signal_connect (client_primary, "files",
- G_CALLBACK (pk_console_files_cb), NULL);
- g_signal_connect (client_primary, "repo-signature-required",
- G_CALLBACK (pk_console_repo_signature_required_cb), NULL);
- g_signal_connect (client_primary, "eula-required",
- G_CALLBACK (pk_console_eula_required_cb), NULL);
- g_signal_connect (client_primary, "update-detail",
- G_CALLBACK (pk_console_update_detail_cb), NULL);
- g_signal_connect (client_primary, "repo-detail",
- G_CALLBACK (pk_console_repo_detail_cb), NULL);
- g_signal_connect (client_primary, "progress-changed",
- G_CALLBACK (pk_console_progress_changed_cb), NULL);
- g_signal_connect (client_primary, "finished",
- G_CALLBACK (pk_console_finished_cb), NULL);
- g_signal_connect (client_primary, "destroy",
- G_CALLBACK (pk_console_destroy_cb), NULL);
- g_signal_connect (client_primary, "require-restart",
- G_CALLBACK (pk_console_require_restart_cb), NULL);
- g_signal_connect (client_primary, "error-code",
- G_CALLBACK (pk_console_error_code_cb), NULL);
- g_signal_connect (client_primary, "message",
- G_CALLBACK (pk_watch_message_cb), NULL);
-
- client_sync = pk_client_new ();
- pk_client_set_use_buffer (client_sync, TRUE, NULL);
- pk_client_set_synchronous (client_sync, TRUE, NULL);
- g_signal_connect (client_sync, "finished",
- G_CALLBACK (pk_console_finished_cb), NULL);
- g_signal_connect (client_sync, "message",
- G_CALLBACK (pk_watch_message_cb), NULL);
- g_signal_connect (client_sync, "destroy",
- G_CALLBACK (pk_console_destroy_cb), NULL);
-
- client_secondary = pk_client_new ();
- g_signal_connect (client_secondary, "finished",
- G_CALLBACK (pk_console_signature_finished_cb), NULL);
+ /* create transactions */
+ task = pk_task_text_new ();
/* check filter */
if (filter != NULL) {
@@ -2179,7 +1082,10 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_search_name (client_primary, filters, details, &error);
+ /* fire off an async request */
+ pk_client_search_name_async (PK_CLIENT(task), filters, details, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (value, "details") == 0) {
if (details == NULL) {
@@ -2188,7 +1094,10 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_search_details (client_primary, filters, details, &error);
+ /* fire off an async request */
+ pk_client_search_details_async (PK_CLIENT(task), filters, details, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (value, "group") == 0) {
if (details == NULL) {
@@ -2197,7 +1106,10 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_search_group (client_primary, filters, details, &error);
+ /* fire off an async request */
+ pk_client_search_group_async (PK_CLIENT(task), filters, details, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (value, "file") == 0) {
if (details == NULL) {
@@ -2206,7 +1118,10 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_search_file (client_primary, filters, details, &error);
+ /* fire off an async request */
+ pk_client_search_file_async (PK_CLIENT(task), filters, details, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else {
/* TRANSLATORS: the search type was provided, but invalid */
error = g_error_new (1, 0, "%s", _("Invalid search type"));
@@ -2215,11 +1130,23 @@ main (int argc, char *argv[])
} else if (strcmp (mode, "install") == 0) {
if (value == NULL) {
/* TRANSLATORS: the user did not specify what they wanted to install */
- error = g_error_new (1, 0, "%s", _("A package name or filename to install is required"));
+ error = g_error_new (1, 0, "%s", _("A package name to install is required"));
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_install_stuff (client_primary, argv, &error);
+ nowait = !pk_console_install_packages (argv+2, &error);
+
+ } else if (strcmp (mode, "install-local") == 0) {
+ if (value == NULL) {
+ /* TRANSLATORS: the user did not specify what they wanted to install */
+ error = g_error_new (1, 0, "%s", _("A filename to install is required"));
+ retval = PK_EXIT_CODE_SYNTAX_INVALID;
+ goto out;
+ }
+ pk_task_install_files_async (PK_TASK(task), argv+2, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
} else if (strcmp (mode, "install-sig") == 0) {
if (value == NULL || details == NULL || parameter == NULL) {
@@ -2228,7 +1155,9 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_install_signature (client_primary, PK_SIGTYPE_ENUM_GPG, details, parameter, &error);
+ pk_client_install_signature_async (PK_CLIENT(task), PK_SIGTYPE_ENUM_GPG, details, parameter, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "remove") == 0) {
if (value == NULL) {
@@ -2237,7 +1166,8 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_remove_packages (client_primary, argv, &error);
+ nowait = !pk_console_remove_packages (argv+2, &error);
+
} else if (strcmp (mode, "download") == 0) {
if (value == NULL || details == NULL) {
/* TRANSLATORS: the user did not specify anything about what to download or where */
@@ -2252,7 +1182,8 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_FILE_NOT_FOUND;
goto out;
}
- ret = pk_console_download_packages (client_primary, argv, value, &error);
+ nowait = !pk_console_download_packages (argv+3, value, &error);
+
} else if (strcmp (mode, "accept-eula") == 0) {
if (value == NULL) {
/* TRANSLATORS: geeky error, 99.9999% of users won't see this */
@@ -2260,8 +1191,9 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_accept_eula (client_primary, value, &error);
- maybe_sync = FALSE;
+ pk_client_accept_eula_async (PK_CLIENT(task), value, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "rollback") == 0) {
if (value == NULL) {
@@ -2270,14 +1202,18 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_rollback (client_primary, value, &error);
+ pk_client_rollback_async (PK_CLIENT(task), value, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "update") == 0) {
if (value == NULL) {
/* do the system update */
- ret = pk_client_update_system (client_primary, TRUE, &error);
+ pk_task_update_system_async (PK_TASK(task), cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else {
- ret = pk_console_update_package (client_primary, value, &error);
+ nowait = !pk_console_update_packages (argv+2, &error);
}
} else if (strcmp (mode, "resolve") == 0) {
@@ -2287,7 +1223,9 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_resolve (client_primary, filters, argv+2, &error);
+ pk_client_resolve_async (PK_CLIENT(task), filters, argv+2, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "repo-enable") == 0) {
if (value == NULL) {
@@ -2296,7 +1234,9 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_repo_enable (client_primary, value, TRUE, &error);
+ pk_client_repo_enable_async (PK_CLIENT(task), value, TRUE, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "repo-disable") == 0) {
if (value == NULL) {
@@ -2305,7 +1245,9 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_repo_enable (client_primary, value, FALSE, &error);
+ pk_client_repo_enable_async (PK_CLIENT(task), value, FALSE, cancellable,
+ (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) {
@@ -2314,14 +1256,17 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_repo_set_data (client_primary, value, details, parameter, &error);
+ pk_client_repo_set_data_async (PK_CLIENT(task), value, details, parameter, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "repo-list") == 0) {
- ret = pk_client_get_repo_list (client_primary, filters, &error);
+ pk_client_get_repo_list_async (PK_CLIENT(task), filters, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} 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"));
@@ -2335,15 +1280,8 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_control_get_time_since_action (control, role, &time_ms, &error);
- if (!ret) {
- /* 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);
- maybe_sync = FALSE;
+ pk_control_get_time_since_action_async (control, role, cancellable,
+ (GAsyncReadyCallback) pk_console_get_time_since_action_cb, NULL);
} else if (strcmp (mode, "get-depends") == 0) {
if (value == NULL) {
@@ -2352,10 +1290,13 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_depends (client_primary, filters, value, &error);
+ nowait = !pk_console_get_depends (filters, argv+2, &error);
} else if (strcmp (mode, "get-distro-upgrades") == 0) {
- ret = pk_client_get_distro_upgrades (client_primary, &error);
+ pk_client_get_distro_upgrades_async (PK_CLIENT(task), cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
+
} else if (strcmp (mode, "get-update-detail") == 0) {
if (value == NULL) {
@@ -2364,7 +1305,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_update_detail (client_primary, value, &error);
+ nowait = !pk_console_get_update_detail (argv+2, &error);
} else if (strcmp (mode, "get-requires") == 0) {
if (value == NULL) {
@@ -2373,7 +1314,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_requires (client_primary, filters, value, &error);
+ nowait = !pk_console_get_requires (filters, argv+2, &error);
} else if (strcmp (mode, "what-provides") == 0) {
if (value == NULL) {
@@ -2382,7 +1323,9 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_client_what_provides (client_primary, filters, PK_PROVIDES_ENUM_CODEC, value, &error);
+ pk_client_what_provides_async (PK_CLIENT(task), filters, PK_PROVIDES_ENUM_CODEC, value, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "get-details") == 0) {
if (value == NULL) {
@@ -2391,7 +1334,7 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_details (client_primary, value, &error);
+ nowait = !pk_console_get_details (argv+2, &error);
} else if (strcmp (mode, "get-files") == 0) {
if (value == NULL) {
@@ -2400,82 +1343,59 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- ret = pk_console_get_files (client_primary, 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_primary, value, &error);
- maybe_sync = FALSE;
-
- } 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_primary, value, &error);
- maybe_sync = FALSE;
-
- } 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_primary, value, &error);
+ nowait = !pk_console_get_files (argv+2, &error);
} else if (strcmp (mode, "get-updates") == 0) {
- ret = pk_client_get_updates (client_primary, filters, &error);
+ pk_client_get_updates_async (PK_CLIENT(task), filters, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "get-categories") == 0) {
- ret = pk_client_get_categories (client_primary, &error);
+ pk_client_get_categories_async (PK_CLIENT(task), cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "get-packages") == 0) {
- ret = pk_client_get_packages (client_primary, filters, &error);
+ pk_client_get_packages_async (PK_CLIENT(task), filters, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
- } 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);
- maybe_sync = FALSE;
- /* these can never fail */
- ret = TRUE;
+ nowait = TRUE;
} else if (strcmp (mode, "get-filters") == 0) {
- filters = pk_control_get_filters (control, NULL);
+ g_object_get (control,
+ "filters", &filters,
+ NULL);
text = pk_filter_bitfield_to_text (filters);
g_strdelimit (text, ";", '\n');
g_print ("%s\n", text);
g_free (text);
- maybe_sync = FALSE;
- /* these can never fail */
- ret = TRUE;
+ nowait = TRUE;
} else if (strcmp (mode, "get-groups") == 0) {
- groups = pk_control_get_groups (control, NULL);
+ g_object_get (control,
+ "groups", &groups,
+ NULL);
text = pk_group_bitfield_to_text (groups);
g_strdelimit (text, ";", '\n');
g_print ("%s\n", text);
g_free (text);
- maybe_sync = FALSE;
- /* these can never fail */
- ret = TRUE;
+ nowait = TRUE;
} else if (strcmp (mode, "get-transactions") == 0) {
- ret = pk_client_get_old_transactions (client_primary, 10, &error);
+ pk_client_get_old_transactions_async (PK_CLIENT(task), 10, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else if (strcmp (mode, "refresh") == 0) {
- /* special case - this takes a long time, and doesn't do packages */
- pk_console_start_bar ("refresh-cache");
- ret = pk_client_refresh_cache (client_primary, FALSE, &error);
+ pk_client_refresh_cache_async (PK_CLIENT(task), FALSE, cancellable,
+ (PkProgressCallback) pk_console_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_console_finished_cb, NULL);
} else {
/* TRANSLATORS: The user tried to use an unsupported option on the command line */
@@ -2483,21 +1403,13 @@ main (int argc, char *argv[])
}
/* do we wait for the method? */
- if (maybe_sync && !nowait && ret)
+ if (!nowait && error == NULL)
g_main_loop_run (loop);
out:
- if (!ret) {
- if (error == NULL) {
- g_print ("Command failed in an unknown way. Please report!\n");
- } else if (g_str_has_prefix (error->message, "org.freedesktop.packagekit.")) {
- /* TRANSLATORS: User does not have permission to do this */
- g_print ("%s\n", _("Incorrect privileges for this operation"));
- } else {
- /* TRANSLATORS: Generic failure of what they asked to do */
- g_print ("%s: %s\n", _("Command failed"), error->message);
- g_error_free (error);
- }
+ if (error != NULL) {
+ /* 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;
}
@@ -2505,10 +1417,10 @@ out:
g_free (options_help);
g_free (filter);
g_free (summary);
+ g_object_unref (progressbar);
g_object_unref (control);
- g_object_unref (client_primary);
- g_object_unref (client_sync);
- g_object_unref (client_secondary);
+ g_object_unref (task);
+ g_object_unref (cancellable);
out_last:
return retval;
}
diff --git a/client/pk-generate-pack-test.c b/client/pk-generate-pack-test.c
deleted file mode 100644
index 9a6e33b..0000000
--- a/client/pk-generate-pack-test.c
+++ /dev/null
@@ -1,456 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- * Copyright (C) 2008 Shishir Goel <crazyontheedge at gmail.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 <unistd.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <locale.h>
-#include <glib.h>
-#include <glib/gi18n.h>
-#include <glib/gstdio.h>
-#include <packagekit-glib2/packagekit.h>
-#include <packagekit-glib2/packagekit-private.h>
-
-#include "egg-debug.h"
-
-static PkProgressBar *progressbar = NULL;
-static GCancellable *cancellable = NULL;
-
-/**
- * pk_generate_pack_get_filename:
- **/
-static gchar *
-pk_generate_pack_get_filename (const gchar *name, const gchar *directory)
-{
- gchar *filename = NULL;
- gchar *distro_id;
- gchar *iso_time = NULL;
-
- distro_id = pk_get_distro_id ();
- if (name != NULL) {
- filename = g_strdup_printf ("%s/%s-%s.%s", directory, name, distro_id, PK_SERVICE_PACK_FILE_EXTENSION);
- } else {
- iso_time = pk_iso8601_present ();
- /* don't include the time, just use the date prefix */
- iso_time[10] = '\0';
- filename = g_strdup_printf ("%s/updates-%s-%s.%s", directory, iso_time, distro_id, PK_SERVICE_PACK_FILE_EXTENSION);
- }
- g_free (distro_id);
- g_free (iso_time);
- return filename;
-}
-
-/**
- * pk_generate_pack_progress_cb:
- **/
-static void
-pk_generate_pack_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
-{
- gint percentage;
- PkStatusEnum status;
-
- /* 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);
- if (status == PK_STATUS_ENUM_FINISHED)
- return;
- /* TODO: translate */
- pk_progress_bar_start (progressbar, pk_status_enum_to_text (status));
- }
-}
-
-/**
- * pk_generate_pack_sigint_cb:
- **/
-static void
-pk_generate_pack_sigint_cb (int sig)
-{
- egg_debug ("Handling SIGINT");
-
- /* restore default */
- signal (SIGINT, SIG_DFL);
-
- /* cancel any tasks still running */
- g_cancellable_cancel (cancellable);
-
- /* kill ourselves */
- egg_debug ("Retrying SIGINT");
- kill (getpid (), SIGINT);
-}
-
-/* tiny helper to help us do the async operation */
-typedef struct {
- GError **error;
- GMainLoop *loop;
- gboolean ret;
-} PkGenpackHelper;
-
-/**
- * pk_generate_pack_generic_cb:
- **/
-static void
-pk_generate_pack_generic_cb (PkServicePack *pack, GAsyncResult *res, PkGenpackHelper *helper)
-{
- /* get the result */
- helper->ret = pk_service_pack_generic_finish (pack, res, helper->error);
- g_main_loop_quit (helper->loop);
-}
-
-/**
- * pk_generate_pack_create_for_updates:
- **/
-static gboolean
-pk_generate_pack_create_for_updates (PkServicePack *pack, const gchar *filename, gchar **excludes, GError **error)
-{
- gboolean ret;
- PkGenpackHelper *helper;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- helper = g_new0 (PkGenpackHelper, 1);
- helper->loop = g_main_loop_new (NULL, FALSE);
- helper->error = error;
-
- /* run async method */
- pk_service_pack_create_for_updates_async (pack, filename, excludes, cancellable,
- (PkProgressCallback) pk_generate_pack_progress_cb, NULL,
- (GAsyncReadyCallback) pk_generate_pack_generic_cb, helper);
- g_main_loop_run (helper->loop);
-
- ret = helper->ret;
-
- /* free temp object */
- g_main_loop_unref (helper->loop);
- g_free (helper);
-
- return ret;
-}
-
-/**
- * pk_generate_pack_create_for_package_ids:
- **/
-static gboolean
-pk_generate_pack_create_for_package_ids (PkServicePack *pack, const gchar *filename, gchar **package_ids, gchar **excludes, GError **error)
-{
- gboolean ret;
- PkGenpackHelper *helper;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- helper = g_new0 (PkGenpackHelper, 1);
- helper->loop = g_main_loop_new (NULL, FALSE);
- helper->error = error;
-
- /* run async method */
- pk_service_pack_create_for_package_ids_async (pack, filename, package_ids, excludes, cancellable,
- (PkProgressCallback) pk_generate_pack_progress_cb, NULL,
- (GAsyncReadyCallback) pk_generate_pack_generic_cb, helper);
- g_main_loop_run (helper->loop);
-
- ret = helper->ret;
-
- /* free temp object */
- g_main_loop_unref (helper->loop);
- g_free (helper);
-
- return ret;
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- GError *error = NULL;
- GOptionContext *context;
- gchar *options_help;
- gboolean ret;
- gchar *filename = NULL;
- PkClient *client = NULL;
- PkControl *control = NULL;
- PkBitfield roles;
- gchar *tempdir = NULL;
- gboolean exists;
- gboolean overwrite;
- gchar **excludes = NULL;
- gchar *package_id = NULL;
- PkServicePack *pack = NULL;
-
- gboolean verbose = FALSE;
- gchar *directory = NULL;
- gchar *package_list = NULL;
- gchar *package = NULL;
- gboolean updates = FALSE;
- gint retval = 1;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "with-package-list", 'l', 0, G_OPTION_ARG_STRING, &package_list,
- /* TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target */
- _("Set the file name of dependencies to be excluded"), NULL},
- { "output", 'o', 0, G_OPTION_ARG_STRING, &directory,
- /* TRANSLATORS: the output location */
- _("The output file or directory (the current directory is used if ommitted)"), NULL},
- { "package", 'p', 0, G_OPTION_ARG_STRING, &package,
- /* TRANSLATORS: put a list of packages in the pack */
- _("The package to be put into the service pack"), NULL},
- { "updates", 'u', 0, G_OPTION_ARG_NONE, &updates,
- /* TRANSLATORS: put all pending updates in the pack */
- _("Put all updates available in the service pack"), 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_generate_pack_sigint_cb);
-
- context = g_option_context_new ("PackageKit Pack Generator");
- 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);
- egg_debug_init (verbose);
-
- client = pk_client_new ();
- pack = pk_service_pack_new ();
- cancellable = g_cancellable_new ();
- progressbar = pk_progress_bar_new ();
- pk_progress_bar_set_size (progressbar, 25);
- pk_progress_bar_set_padding (progressbar, 20);
-
- /* neither options selected */
- if (package == NULL && !updates) {
- /* TRANSLATORS: This is when the user fails to supply the correct arguments */
- g_print ("%s\n", _("Neither --package or --updates option selected."));
- retval = 1;
- goto out;
- }
-
- /* both options selected */
- if (package != NULL && updates) {
- /* TRANSLATORS: This is when the user fails to supply just one argument */
- g_print ("%s\n", _("Both options selected."));
- retval = 1;
- goto out;
- }
-
- /* no argument given to --package */
- if (package != NULL && package[0] == '\0') {
- /* TRANSLATORS: This is when the user fails to supply the package name */
- g_print ("%s\n", _("A package name is required"));
- retval = 1;
- goto out;
- }
-
- /* no argument given to --output */
- if (directory != NULL && directory[0] == '\0') {
- /* TRANSLATORS: This is when the user fails to supply the output */
- g_print ("%s\n", _("A output directory or file name is required"));
- retval = 1;
- goto out;
- }
-
- /* fall back to the system copy */
- if (package_list == NULL)
- package_list = g_strdup (PK_SYSTEM_PACKAGE_LIST_FILENAME);
-
- /* fall back to CWD */
- if (directory == NULL)
- directory = g_get_current_dir ();
-
- /* are we dumb and can't do some actions */
- control = pk_control_new ();
- ret = pk_control_get_properties_sync (control, &error);
- if (!ret) {
- g_print ("Failed to startup: %s\n", error->message);
- goto out;
- }
-
- /* get data */
- g_object_get (control,
- "roles", &roles,
- NULL);
-
- if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_DEPENDS)) {
- /* TRANSLATORS: This is when the backend doesn't have the capability to get-depends */
- g_print ("%s (GetDepends)\n", _("The package manager cannot perform this type of operation."));
- retval = 1;
- goto out;
- }
- if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_DOWNLOAD_PACKAGES)) {
- /* TRANSLATORS: This is when the backend doesn't have the capability to download */
- g_print ("%s (DownloadPackage)\n", _("The package manager cannot perform this type of operation."));
- retval = 1;
- goto out;
- }
-
-#ifndef HAVE_ARCHIVE_H
- /* TRANSLATORS: This is when the distro didn't include libarchive support into PK */
- g_print ("%s\n", _("Service packs cannot be created as PackageKit was not built with libarchive support."));
- goto out;
-#endif
-
- /* the user can speciify a complete path */
- ret = g_file_test (directory, G_FILE_TEST_IS_DIR);
- if (ret) {
- filename = pk_generate_pack_get_filename (package, directory);
- } else {
- if (!g_str_has_suffix (directory, PK_SERVICE_PACK_FILE_EXTENSION)) {
- /* TRANSLATORS: the user specified an absolute path, but didn't get the extension correct */
- g_print ("%s .%s \n", _("If specifying a file, the service pack name must end with"), PK_SERVICE_PACK_FILE_EXTENSION);
- retval = 1;
- goto out;
- }
- filename = g_strdup (directory);
- }
-
- /* download packages to a temporary directory */
- tempdir = g_build_filename (g_get_tmp_dir (), "pack", NULL);
-
- /* check if file exists before we overwrite it */
- exists = g_file_test (filename, G_FILE_TEST_EXISTS);
-
- /*ask user input*/
- if (exists) {
- /* TRANSLATORS: This is when file already exists */
- overwrite = pk_console_get_prompt (_("A pack with the same name already exists, do you want to overwrite it?"), FALSE);
- if (!overwrite) {
- /* TRANSLATORS: This is when the pack was not overwritten */
- g_print ("%s\n", _("The pack was not overwritten."));
- retval = 1;
- goto out;
- }
- }
-
- /* get rid of temp directory if it already exists */
- g_rmdir (tempdir);
-
- /* make the temporary directory */
- retval = g_mkdir_with_parents (tempdir, 0777);
- if (retval != 0) {
- /* TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows */
- g_print ("%s '%s'\n", _("Failed to create directory:"), tempdir);
- retval = 1;
- goto out;
- }
- pk_service_pack_set_temp_directory (pack, tempdir);
-
- /* get the exclude list */
- excludes = NULL;
-#if 0
- ret = pk_obj_list_from_file (PK_OBJ_LIST(list), package_list);
- if (!ret) {
- /* TRANSLATORS: This is when the list of packages from the remote computer cannot be opened */
- g_print ("%s: '%s'\n", _("Failed to open package list."), package_list);
- retval = 1;
- goto out;
- }
-#endif
-
- /* resolve package name to package_id */
- if (!updates) {
- /* TRANSLATORS: The package name is being matched up to available packages */
- g_print ("%s\n", _("Finding package name."));
- package_id = pk_console_resolve_package (client, PK_FILTER_ENUM_NONE, package, &error);
- if (package_id == NULL) {
- /* TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows */
- g_print (_("Failed to find package '%s': %s"), package, error->message);
- g_error_free (error);
- retval = 1;
- goto out;
- }
- }
-
- /* TRANSLATORS: This is telling the user we are in the process of making the pack */
- g_print ("%s\n", _("Creating service pack..."));
- if (updates)
- ret = pk_generate_pack_create_for_updates (pack, filename, excludes, &error);
- else {
- gchar **package_ids;
- package_ids = pk_package_ids_from_id (package_id);
- ret = pk_generate_pack_create_for_package_ids (pack, filename, package_ids, excludes, &error);
- g_strfreev (package_ids);
- }
-
- /* no more progress */
- pk_progress_bar_end (progressbar);
-
- if (ret) {
- /* TRANSLATORS: we succeeded in making the file */
- g_print (_("Service pack created '%s'"), filename);
- g_print ("\n");
- retval = 0;
- } else {
- /* TRANSLATORS: we failed to make te file */
- g_print (_("Failed to create '%s': %s"), filename, error->message);
- g_print ("\n");
- g_error_free (error);
- }
-
-out:
- /* get rid of temp directory */
- g_rmdir (tempdir);
-
- g_object_unref (cancellable);
- if (progressbar != NULL)
- g_object_unref (progressbar);
- if (pack != NULL)
- g_object_unref (pack);
- if (client != NULL)
- g_object_unref (client);
- if (control != NULL)
- g_object_unref (control);
- g_free (tempdir);
- g_free (filename);
- g_free (package_id);
- g_free (directory);
- g_free (package_list);
- g_free (options_help);
- g_strfreev (excludes);
- return retval;
-}
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index 6be3f8d..f22fa17 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
- * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
* Copyright (C) 2008 Shishir Goel <crazyontheedge at gmail.com>
*
* Licensed under the GNU General Public License Version 2
@@ -26,17 +26,16 @@
#include <signal.h>
#include <stdlib.h>
#include <locale.h>
+#include <glib.h>
#include <glib/gi18n.h>
#include <glib/gstdio.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include "egg-debug.h"
-#include "egg-string.h"
-#include "pk-tools-common.h"
-
-static guint last_percentage = 0;
-static PkServicePack *pack = NULL;
+static PkProgressBar *progressbar = NULL;
+static GCancellable *cancellable = NULL;
/**
* pk_generate_pack_get_filename:
@@ -63,94 +62,131 @@ pk_generate_pack_get_filename (const gchar *name, const gchar *directory)
}
/**
- * pk_generate_pack_package_resolve:
+ * pk_generate_pack_progress_cb:
**/
-static gchar *
-pk_generate_pack_package_resolve (PkClient *client, PkBitfield filter, const gchar *package, GError **error)
+static void
+pk_generate_pack_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
{
- PkPackageList *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;
+ gint percentage;
+ PkStatusEnum status;
+
+ /* percentage */
+ if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
+ g_object_get (progress,
+ "percentage", &percentage,
+ NULL);
+ pk_progress_bar_set_percentage (progressbar, percentage);
+ }
- /* 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;
+ /* status */
+ if (type == PK_PROGRESS_TYPE_STATUS) {
+ g_object_get (progress,
+ "status", &status,
+ NULL);
+ if (status == PK_STATUS_ENUM_FINISHED)
+ return;
+ /* TODO: translate */
+ pk_progress_bar_start (progressbar, pk_status_enum_to_text (status));
+ }
}
/**
- * pk_generate_pack_package_cb:
+ * pk_generate_pack_sigint_cb:
**/
static void
-pk_generate_pack_package_cb (PkServicePack *pack_, const PkPackageObj *obj, gpointer data)
+pk_generate_pack_sigint_cb (int sig)
{
- g_return_if_fail (obj != NULL);
- /* TRANSLATORS: This is the state of the transaction */
- g_print ("%i%%\t%s %s-%s.%s\n", last_percentage, _("Downloading"), obj->id->name, obj->id->version, obj->id->arch);
+ egg_debug ("Handling SIGINT");
+
+ /* restore default */
+ signal (SIGINT, SIG_DFL);
+
+ /* cancel any tasks still running */
+ g_cancellable_cancel (cancellable);
+
+ /* kill ourselves */
+ egg_debug ("Retrying SIGINT");
+ kill (getpid (), SIGINT);
}
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ gboolean ret;
+} PkGenpackHelper;
+
/**
- * pk_generate_pack_percentage_cb:
+ * pk_generate_pack_generic_cb:
**/
static void
-pk_generate_pack_percentage_cb (PkServicePack *pack_, guint percentage, gpointer data)
+pk_generate_pack_generic_cb (PkServicePack *pack, GAsyncResult *res, PkGenpackHelper *helper)
{
- last_percentage = percentage;
+ /* get the result */
+ helper->ret = pk_service_pack_generic_finish (pack, res, helper->error);
+ g_main_loop_quit (helper->loop);
}
/**
- * pk_generate_pack_status_cb:
+ * pk_generate_pack_create_for_updates:
**/
-static void
-pk_generate_pack_status_cb (PkServicePack *pack_, PkServicePackStatus status, gpointer data)
+static gboolean
+pk_generate_pack_create_for_updates (PkServicePack *pack, const gchar *filename, gchar **excludes, GError **error)
{
- if (status == PK_SERVICE_PACK_STATUS_DOWNLOAD_PACKAGES) {
- /* TRANSLATORS: This is when the main packages are being downloaded */
- g_print ("%s\n", _("Downloading packages"));
- return;
- }
- if (status == PK_SERVICE_PACK_STATUS_DOWNLOAD_DEPENDENCIES) {
- /* TRANSLATORS: This is when the dependency packages are being downloaded */
- g_print ("%s\n", _("Downloading dependencies"));
- return;
- }
+ gboolean ret;
+ PkGenpackHelper *helper;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkGenpackHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_service_pack_create_for_updates_async (pack, filename, excludes, cancellable,
+ (PkProgressCallback) pk_generate_pack_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_generate_pack_generic_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ ret = helper->ret;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return ret;
}
/**
- * pk_generate_pack_sigint_cb:
+ * pk_generate_pack_create_for_package_ids:
**/
-static void
-pk_generate_pack_sigint_cb (int sig)
+static gboolean
+pk_generate_pack_create_for_package_ids (PkServicePack *pack, const gchar *filename, gchar **package_ids, gchar **excludes, GError **error)
{
gboolean ret;
- GError *error = NULL;
- egg_debug ("Handling SIGINT");
+ PkGenpackHelper *helper;
- /* restore default */
- signal (SIGINT, SIG_DFL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- /* cancel downloads */
- ret = pk_service_pack_cancel (pack, &error);
- if (!ret) {
- egg_warning ("failed to cancel: %s", error->message);
- g_error_free (error);
- }
+ /* create temp object */
+ helper = g_new0 (PkGenpackHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
- /* kill ourselves */
- egg_debug ("Retrying SIGINT");
- kill (getpid (), SIGINT);
+ /* run async method */
+ pk_service_pack_create_for_package_ids_async (pack, filename, package_ids, excludes, cancellable,
+ (PkProgressCallback) pk_generate_pack_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_generate_pack_generic_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ ret = helper->ret;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return ret;
}
/**
@@ -170,8 +206,9 @@ main (int argc, char *argv[])
gchar *tempdir = NULL;
gboolean exists;
gboolean overwrite;
- PkPackageList *list = NULL;
+ gchar **excludes = NULL;
gchar *package_id = NULL;
+ PkServicePack *pack = NULL;
gboolean verbose = FALSE;
gchar *directory = NULL;
@@ -219,6 +256,13 @@ main (int argc, char *argv[])
g_option_context_free (context);
egg_debug_init (verbose);
+ client = pk_client_new ();
+ pack = pk_service_pack_new ();
+ cancellable = g_cancellable_new ();
+ progressbar = pk_progress_bar_new ();
+ pk_progress_bar_set_size (progressbar, 25);
+ pk_progress_bar_set_padding (progressbar, 20);
+
/* neither options selected */
if (package == NULL && !updates) {
/* TRANSLATORS: This is when the user fails to supply the correct arguments */
@@ -236,7 +280,7 @@ main (int argc, char *argv[])
}
/* no argument given to --package */
- if (package != NULL && egg_strzero (package)) {
+ if (package != NULL && package[0] == '\0') {
/* TRANSLATORS: This is when the user fails to supply the package name */
g_print ("%s\n", _("A package name is required"));
retval = 1;
@@ -244,7 +288,7 @@ main (int argc, char *argv[])
}
/* no argument given to --output */
- if (directory != NULL && egg_strzero (directory)) {
+ if (directory != NULL && directory[0] == '\0') {
/* TRANSLATORS: This is when the user fails to supply the output */
g_print ("%s\n", _("A output directory or file name is required"));
retval = 1;
@@ -261,7 +305,18 @@ main (int argc, char *argv[])
/* are we dumb and can't do some actions */
control = pk_control_new ();
- roles = pk_control_get_actions (control, NULL);
+ ret = pk_control_get_properties_sync (control, &error);
+ if (!ret) {
+ /* TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup */
+ g_print ("%s: %s\n", _("The dameon failed to startup"), error->message);
+ goto out;
+ }
+
+ /* get data */
+ g_object_get (control,
+ "roles", &roles,
+ NULL);
+
if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_DEPENDS)) {
/* TRANSLATORS: This is when the backend doesn't have the capability to get-depends */
g_print ("%s (GetDepends)\n", _("The package manager cannot perform this type of operation."));
@@ -324,9 +379,11 @@ main (int argc, char *argv[])
retval = 1;
goto out;
}
+ pk_service_pack_set_temp_directory (pack, tempdir);
/* get the exclude list */
- list = pk_package_list_new ();
+ excludes = NULL;
+#if 0
ret = pk_obj_list_from_file (PK_OBJ_LIST(list), package_list);
if (!ret) {
/* TRANSLATORS: This is when the list of packages from the remote computer cannot be opened */
@@ -334,15 +391,13 @@ main (int argc, char *argv[])
retval = 1;
goto out;
}
+#endif
/* resolve package name to package_id */
if (!updates) {
- client = pk_client_new ();
- pk_client_set_use_buffer (client, TRUE, NULL);
- pk_client_set_synchronous (client, TRUE, NULL);
/* TRANSLATORS: The package name is being matched up to available packages */
g_print ("%s\n", _("Finding package name."));
- package_id = pk_generate_pack_package_resolve (client, PK_FILTER_ENUM_NONE, package, &error);
+ package_id = pk_console_resolve_package (client, PK_FILTER_ENUM_NONE, package, &error);
if (package_id == NULL) {
/* TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows */
g_print (_("Failed to find package '%s': %s"), package, error->message);
@@ -352,21 +407,20 @@ main (int argc, char *argv[])
}
}
- /* create pack and set initial values */
- pack = pk_service_pack_new ();
- g_signal_connect (pack, "package", G_CALLBACK (pk_generate_pack_package_cb), pack);
- g_signal_connect (pack, "percentage", G_CALLBACK (pk_generate_pack_percentage_cb), pack);
- g_signal_connect (pack, "status", G_CALLBACK (pk_generate_pack_status_cb), pack);
- pk_service_pack_set_filename (pack, filename);
- pk_service_pack_set_temp_directory (pack, tempdir);
- pk_service_pack_set_exclude_list (pack, list);
-
/* TRANSLATORS: This is telling the user we are in the process of making the pack */
g_print ("%s\n", _("Creating service pack..."));
if (updates)
- ret = pk_service_pack_create_for_updates (pack, &error);
- else
- ret = pk_service_pack_create_for_package_id (pack, package_id, &error);
+ ret = pk_generate_pack_create_for_updates (pack, filename, excludes, &error);
+ else {
+ gchar **package_ids;
+ package_ids = pk_package_ids_from_id (package_id);
+ ret = pk_generate_pack_create_for_package_ids (pack, filename, package_ids, excludes, &error);
+ g_strfreev (package_ids);
+ }
+
+ /* no more progress */
+ pk_progress_bar_end (progressbar);
+
if (ret) {
/* TRANSLATORS: we succeeded in making the file */
g_print (_("Service pack created '%s'"), filename);
@@ -383,12 +437,13 @@ out:
/* get rid of temp directory */
g_rmdir (tempdir);
+ g_object_unref (cancellable);
+ if (progressbar != NULL)
+ g_object_unref (progressbar);
if (pack != NULL)
g_object_unref (pack);
if (client != NULL)
g_object_unref (client);
- if (list != NULL)
- g_object_unref (list);
if (control != NULL)
g_object_unref (control);
g_free (tempdir);
@@ -397,5 +452,6 @@ out:
g_free (directory);
g_free (package_list);
g_free (options_help);
+ g_strfreev (excludes);
return retval;
}
diff --git a/client/pk-monitor-test.c b/client/pk-monitor-test.c
deleted file mode 100644
index 59b2b76..0000000
--- a/client/pk-monitor-test.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2007-2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <locale.h>
-#include <glib.h>
-#include <glib/gi18n.h>
-#include <packagekit-glib2/packagekit.h>
-
-#include "egg-debug.h"
-
-static gboolean verbose = FALSE;
-static PkClient *client = NULL;
-static GPtrArray *array = NULL;
-
-/**
- * pk_monitor_repo_list_changed_cb:
- **/
-static void
-pk_monitor_repo_list_changed_cb (PkControl *control, gpointer data)
-{
- g_print ("repo-list-changed\n");
-}
-
-/**
- * pk_monitor_updates_changed_cb:
- **/
-static void
-pk_monitor_updates_changed_cb (PkControl *control, gpointer data)
-{
- g_print ("updates-changed\n");
-}
-
-/**
- * pk_connection_changed_cb:
- **/
-static void
-pk_connection_changed_cb (PkControl *control, gboolean connected, gpointer data)
-{
- g_print ("daemon connected=%i\n", connected);
-}
-
-/**
- * pk_monitor_locked_cb:
- **/
-static void
-pk_monitor_locked_cb (PkControl *control, gboolean is_locked, gpointer data)
-{
- if (is_locked)
- g_print ("backend locked\n");
- else
- g_print ("backend unlocked\n");
-}
-
-/**
- * pk_monitor_adopt_cb:
- **/
-static void
-pk_monitor_adopt_cb (PkClient *_client, GAsyncResult *res, const gchar *tid)
-{
- GError *error = NULL;
- PkResults *results = NULL;
- PkExitEnum exit_enum;
-
- /* get the results */
- results = pk_client_generic_finish (client, res, &error);
- if (results == NULL) {
- egg_warning ("failed to adopt: %s", error->message);
- g_error_free (error);
- goto out;
- }
-
- exit_enum = pk_results_get_exit_code (results);
- g_print ("%s\texit code: %s\n", tid, pk_exit_enum_to_text (exit_enum));
-out:
- if (results != NULL)
- g_object_unref (results);
-}
-
-/**
- * pk_monitor_progress_cb:
- **/
-static void
-pk_monitor_progress_cb (PkProgress *progress, PkProgressType type, const gchar *tid)
-{
- PkRoleEnum role;
- PkStatusEnum status;
- guint percentage;
- gboolean allow_cancel;
- gchar *package_id;
-
- /* get data */
- g_object_get (progress,
- "role", &role,
- "status", &status,
- "percentage", &percentage,
- "allow-cancel", &allow_cancel,
- "package-id", &package_id,
- NULL);
-
- if (type == PK_PROGRESS_TYPE_ROLE) {
- g_print ("%s\trole %s\n", tid, pk_role_enum_to_text (role));
- } else if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
- g_print ("%s\tpackage %s\n", tid, package_id);
- } else if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
- g_print ("%s\tpercentage %i\n", tid, percentage);
- } else if (type == PK_PROGRESS_TYPE_ALLOW_CANCEL) {
- g_print ("%s\tallow_cancel %i\n", tid, allow_cancel);
- } else if (type == PK_PROGRESS_TYPE_STATUS) {
- g_print ("%s\tstatus %s\n", tid, pk_status_enum_to_text (status));
- }
- g_free (package_id);
-}
-
-/**
- * pk_monitor_list_add:
- **/
-static void
-pk_monitor_list_add (const gchar *transaction_id)
-{
- gchar *tid;
-
- /* adopt client */
- tid = g_strdup (transaction_id);
- pk_client_adopt_async (client, transaction_id, NULL,
- (PkProgressCallback) pk_monitor_progress_cb, tid,
- (GAsyncReadyCallback) pk_monitor_adopt_cb, tid);
- /* add tid to array */
- g_ptr_array_add (array, tid);
-}
-
-/**
- * pk_monitor_in_array:
- **/
-static gboolean
-pk_monitor_in_array (GPtrArray *_array, const gchar *text)
-{
- guint i;
- const gchar *tmp;
- for (i=0; i<_array->len; i++) {
- tmp = g_ptr_array_index (_array, i);
- if (g_strcmp0 (text, tmp) == 0)
- return TRUE;
- }
- return FALSE;
-}
-
-/**
- * pk_monitor_list_print:
- **/
-static void
-pk_monitor_list_print (gchar **list)
-{
- guint i;
- gboolean ret;
-
- g_print ("Transactions:\n");
- if (list[0] == NULL) {
- g_print (" [none]\n");
- return;
- }
- for (i=0; list[i] != NULL; i++) {
- g_print (" %i\t%s\n", i+1, list[i]);
-
- /* check to see if tid is in array */
- ret = pk_monitor_in_array (array, list[i]);
- if (!ret)
- pk_monitor_list_add (list[i]);
- }
-}
-
-/**
- * pk_monitor_get_transaction_list_cb:
- **/
-static void
-pk_monitor_get_transaction_list_cb (PkControl *control, GAsyncResult *res, gpointer user_data)
-{
- GError *error = NULL;
- gchar **list;
-
- /* get the result */
- list = pk_control_get_transaction_list_finish (control, res, &error);
- if (list == NULL) {
- g_print ("%s: %s", _("Failed to get transaction list"), error->message);
- g_error_free (error);
- return;
- }
- pk_monitor_list_print (list);
- g_strfreev (list);
-}
-
-/**
- * pk_monitor_get_transaction_list:
- **/
-static void
-pk_monitor_get_transaction_list (PkControl *control)
-{
- egg_debug ("refreshing task list");
- pk_control_get_transaction_list_async (control, NULL,
- (GAsyncReadyCallback) pk_monitor_get_transaction_list_cb, NULL);
-}
-
-/**
- * pk_monitor_get_daemon_state_cb:
- **/
-static void
-pk_monitor_get_daemon_state_cb (PkControl *control, GAsyncResult *res, gpointer user_data)
-{
- GError *error = NULL;
- gchar *state;
-
- /* get the result */
- state = pk_control_get_daemon_state_finish (control, res, &error);
- if (state == NULL) {
- g_print ("%s: %s", _("Failed to get daemon state"), error->message);
- g_error_free (error);
- goto out;
- }
- g_print ("Daemon state: '%s'\n", state);
-out:
- g_free (state);
-}
-
-/**
- * pk_monitor_get_daemon_state:
- **/
-static void
-pk_monitor_get_daemon_state (PkControl *control)
-{
- pk_control_get_daemon_state_async (control, NULL,
- (GAsyncReadyCallback) pk_monitor_get_daemon_state_cb, NULL);
-}
-
-
-/**
- * pk_monitor_task_list_changed_cb:
- **/
-static void
-pk_monitor_task_list_changed_cb (PkControl *control)
-{
- pk_monitor_get_transaction_list (control);
-
- /* only print state when verbose */
- if (verbose)
- pk_monitor_get_daemon_state (control);
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- GMainLoop *loop;
- gboolean program_version = FALSE;
- GOptionContext *context;
- gint retval = EXIT_SUCCESS;
- PkControl *control;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "version", '\0', 0, G_OPTION_ARG_NONE, &program_version,
- _("Show the program version and exit"), NULL},
- { NULL}
- };
-
- setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- if (! g_thread_supported ())
- g_thread_init (NULL);
- g_type_init ();
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: this is a program that monitors PackageKit */
- g_option_context_set_summary (context, _("PackageKit Monitor"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- if (program_version) {
- g_print (VERSION "\n");
- goto out;
- }
-
- egg_debug_init (verbose);
-
- loop = g_main_loop_new (NULL, FALSE);
-
- control = pk_control_new ();
- client = pk_client_new ();
- array = g_ptr_array_new_with_free_func (g_free);
- g_signal_connect (control, "locked",
- G_CALLBACK (pk_monitor_locked_cb), NULL);
- g_signal_connect (control, "repo-list-changed",
- G_CALLBACK (pk_monitor_repo_list_changed_cb), NULL);
- g_signal_connect (control, "updates-changed",
- G_CALLBACK (pk_monitor_updates_changed_cb), NULL);
- g_signal_connect (control, "transaction-list-changed",
- G_CALLBACK (pk_monitor_task_list_changed_cb), NULL);
- g_signal_connect (control, "connection-changed",
- G_CALLBACK (pk_connection_changed_cb), NULL);
-
- /* coldplug */
- pk_monitor_get_transaction_list (control);
-
- /* only print state when verbose */
- if (verbose)
- pk_monitor_get_daemon_state (control);
-
- /* spin */
- g_main_loop_run (loop);
-
- g_object_unref (control);
- g_object_unref (client);
- g_ptr_array_unref (array);
-out:
- return retval;
-}
diff --git a/client/pk-monitor.c b/client/pk-monitor.c
index 3d9a0e2..59b2b76 100644
--- a/client/pk-monitor.c
+++ b/client/pk-monitor.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
- * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2007-2009 Richard Hughes <richard at hughsie.com>
*
* Licensed under the GNU General Public License Version 2
*
@@ -21,90 +21,248 @@
#include "config.h"
-#include <string.h>
-#include <unistd.h>
#include <stdlib.h>
#include <locale.h>
#include <glib.h>
#include <glib/gi18n.h>
-#include <dbus/dbus-glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
-#include "pk-tools-common.h"
-
-static PkControl *control = NULL;
static gboolean verbose = FALSE;
+static PkClient *client = NULL;
+static GPtrArray *array = NULL;
/**
- * pk_monitor_task_list_changed_cb:
+ * pk_monitor_repo_list_changed_cb:
+ **/
+static void
+pk_monitor_repo_list_changed_cb (PkControl *control, gpointer data)
+{
+ g_print ("repo-list-changed\n");
+}
+
+/**
+ * pk_monitor_updates_changed_cb:
+ **/
+static void
+pk_monitor_updates_changed_cb (PkControl *control, gpointer data)
+{
+ g_print ("updates-changed\n");
+}
+
+/**
+ * pk_connection_changed_cb:
+ **/
+static void
+pk_connection_changed_cb (PkControl *control, gboolean connected, gpointer data)
+{
+ g_print ("daemon connected=%i\n", connected);
+}
+
+/**
+ * pk_monitor_locked_cb:
+ **/
+static void
+pk_monitor_locked_cb (PkControl *control, gboolean is_locked, gpointer data)
+{
+ if (is_locked)
+ g_print ("backend locked\n");
+ else
+ g_print ("backend unlocked\n");
+}
+
+/**
+ * pk_monitor_adopt_cb:
+ **/
+static void
+pk_monitor_adopt_cb (PkClient *_client, GAsyncResult *res, const gchar *tid)
+{
+ GError *error = NULL;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+
+ /* get the results */
+ results = pk_client_generic_finish (client, res, &error);
+ if (results == NULL) {
+ egg_warning ("failed to adopt: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ exit_enum = pk_results_get_exit_code (results);
+ g_print ("%s\texit code: %s\n", tid, pk_exit_enum_to_text (exit_enum));
+out:
+ if (results != NULL)
+ g_object_unref (results);
+}
+
+/**
+ * pk_monitor_progress_cb:
+ **/
+static void
+pk_monitor_progress_cb (PkProgress *progress, PkProgressType type, const gchar *tid)
+{
+ PkRoleEnum role;
+ PkStatusEnum status;
+ guint percentage;
+ gboolean allow_cancel;
+ gchar *package_id;
+
+ /* get data */
+ g_object_get (progress,
+ "role", &role,
+ "status", &status,
+ "percentage", &percentage,
+ "allow-cancel", &allow_cancel,
+ "package-id", &package_id,
+ NULL);
+
+ if (type == PK_PROGRESS_TYPE_ROLE) {
+ g_print ("%s\trole %s\n", tid, pk_role_enum_to_text (role));
+ } else if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
+ g_print ("%s\tpackage %s\n", tid, package_id);
+ } else if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
+ g_print ("%s\tpercentage %i\n", tid, percentage);
+ } else if (type == PK_PROGRESS_TYPE_ALLOW_CANCEL) {
+ g_print ("%s\tallow_cancel %i\n", tid, allow_cancel);
+ } else if (type == PK_PROGRESS_TYPE_STATUS) {
+ g_print ("%s\tstatus %s\n", tid, pk_status_enum_to_text (status));
+ }
+ g_free (package_id);
+}
+
+/**
+ * pk_monitor_list_add:
**/
static void
-pk_monitor_task_list_changed_cb (PkTaskList *tlist, gpointer data)
+pk_monitor_list_add (const gchar *transaction_id)
+{
+ gchar *tid;
+
+ /* adopt client */
+ tid = g_strdup (transaction_id);
+ pk_client_adopt_async (client, transaction_id, NULL,
+ (PkProgressCallback) pk_monitor_progress_cb, tid,
+ (GAsyncReadyCallback) pk_monitor_adopt_cb, tid);
+ /* add tid to array */
+ g_ptr_array_add (array, tid);
+}
+
+/**
+ * pk_monitor_in_array:
+ **/
+static gboolean
+pk_monitor_in_array (GPtrArray *_array, const gchar *text)
{
guint i;
- PkTaskListItem *item;
- guint length;
- gchar *state;
+ const gchar *tmp;
+ for (i=0; i<_array->len; i++) {
+ tmp = g_ptr_array_index (_array, i);
+ if (g_strcmp0 (text, tmp) == 0)
+ return TRUE;
+ }
+ return FALSE;
+}
- length = pk_task_list_get_size (tlist);
- g_print ("Tasks:\n");
- if (length == 0) {
- g_print ("[none]\n");
+/**
+ * pk_monitor_list_print:
+ **/
+static void
+pk_monitor_list_print (gchar **list)
+{
+ guint i;
+ gboolean ret;
+
+ g_print ("Transactions:\n");
+ if (list[0] == NULL) {
+ g_print (" [none]\n");
return;
}
- for (i=0; i<length; i++) {
- item = pk_task_list_get_item (tlist, i);
- g_print ("#%i\t%s\t%s (%s)\t%s\n", i+1, item->tid, pk_role_enum_to_text (item->role),
- pk_status_enum_to_text (item->status), item->text);
+ for (i=0; list[i] != NULL; i++) {
+ g_print (" %i\t%s\n", i+1, list[i]);
+
+ /* check to see if tid is in array */
+ ret = pk_monitor_in_array (array, list[i]);
+ if (!ret)
+ pk_monitor_list_add (list[i]);
}
+}
- /* only print state when verbose */
- if (verbose) {
- state = pk_control_get_daemon_state (control, NULL);
- g_print ("%s", state);
- g_free (state);
+/**
+ * pk_monitor_get_transaction_list_cb:
+ **/
+static void
+pk_monitor_get_transaction_list_cb (PkControl *control, GAsyncResult *res, gpointer user_data)
+{
+ GError *error = NULL;
+ gchar **list;
+
+ /* get the result */
+ list = pk_control_get_transaction_list_finish (control, res, &error);
+ if (list == NULL) {
+ g_print ("%s: %s", _("Failed to get transaction list"), error->message);
+ g_error_free (error);
+ return;
}
+ pk_monitor_list_print (list);
+ g_strfreev (list);
}
/**
- * pk_monitor_repo_list_changed_cb:
+ * pk_monitor_get_transaction_list:
**/
static void
-pk_monitor_repo_list_changed_cb (PkControl *_control, gpointer data)
+pk_monitor_get_transaction_list (PkControl *control)
{
- g_print ("repo-list-changed\n");
+ egg_debug ("refreshing task list");
+ pk_control_get_transaction_list_async (control, NULL,
+ (GAsyncReadyCallback) pk_monitor_get_transaction_list_cb, NULL);
}
/**
- * pk_monitor_updates_changed_cb:
+ * pk_monitor_get_daemon_state_cb:
**/
static void
-pk_monitor_updates_changed_cb (PkControl *_control, gpointer data)
+pk_monitor_get_daemon_state_cb (PkControl *control, GAsyncResult *res, gpointer user_data)
{
- g_print ("updates-changed\n");
+ GError *error = NULL;
+ gchar *state;
+
+ /* get the result */
+ state = pk_control_get_daemon_state_finish (control, res, &error);
+ if (state == NULL) {
+ g_print ("%s: %s", _("Failed to get daemon state"), error->message);
+ g_error_free (error);
+ goto out;
+ }
+ g_print ("Daemon state: '%s'\n", state);
+out:
+ g_free (state);
}
/**
- * pk_connection_changed_cb:
+ * pk_monitor_get_daemon_state:
**/
static void
-pk_connection_changed_cb (PkConnection *pconnection, gboolean connected, gpointer data)
+pk_monitor_get_daemon_state (PkControl *control)
{
- egg_debug ("connected=%i", connected);
+ pk_control_get_daemon_state_async (control, NULL,
+ (GAsyncReadyCallback) pk_monitor_get_daemon_state_cb, NULL);
}
+
/**
- * pk_monitor_locked_cb:
+ * pk_monitor_task_list_changed_cb:
**/
static void
-pk_monitor_locked_cb (PkControl *_control, gboolean is_locked, gpointer data)
+pk_monitor_task_list_changed_cb (PkControl *control)
{
- if (is_locked)
- g_print ("locked\n");
- else
- g_print ("unlocked\n");
+ pk_monitor_get_transaction_list (control);
+
+ /* only print state when verbose */
+ if (verbose)
+ pk_monitor_get_daemon_state (control);
}
/**
@@ -113,15 +271,11 @@ pk_monitor_locked_cb (PkControl *_control, gboolean is_locked, gpointer data)
int
main (int argc, char *argv[])
{
- PkTaskList *tlist;
- gboolean ret;
GMainLoop *loop;
- PkConnection *pconnection;
- gboolean connected;
gboolean program_version = FALSE;
- gchar *state;
GOptionContext *context;
gint retval = EXIT_SUCCESS;
+ PkControl *control;
const GOptionEntry options[] = {
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
@@ -138,7 +292,6 @@ main (int argc, char *argv[])
if (! g_thread_supported ())
g_thread_init (NULL);
- dbus_g_thread_init ();
g_type_init ();
context = g_option_context_new (NULL);
@@ -157,48 +310,33 @@ main (int argc, char *argv[])
loop = g_main_loop_new (NULL, FALSE);
- pconnection = pk_connection_new ();
- g_signal_connect (pconnection, "connection-changed",
- G_CALLBACK (pk_connection_changed_cb), loop);
- connected = pk_connection_valid (pconnection);
- egg_debug ("connected=%i", connected);
-
control = pk_control_new ();
+ client = pk_client_new ();
+ array = g_ptr_array_new_with_free_func (g_free);
g_signal_connect (control, "locked",
G_CALLBACK (pk_monitor_locked_cb), NULL);
g_signal_connect (control, "repo-list-changed",
G_CALLBACK (pk_monitor_repo_list_changed_cb), NULL);
g_signal_connect (control, "updates-changed",
G_CALLBACK (pk_monitor_updates_changed_cb), NULL);
-
- tlist = pk_task_list_new ();
- g_signal_connect (tlist, "changed",
- G_CALLBACK (pk_monitor_task_list_changed_cb), NULL);
- g_signal_connect (tlist, "status-changed",
+ g_signal_connect (control, "transaction-list-changed",
G_CALLBACK (pk_monitor_task_list_changed_cb), NULL);
+ g_signal_connect (control, "connection-changed",
+ G_CALLBACK (pk_connection_changed_cb), NULL);
- egg_debug ("refreshing task list");
- ret = pk_task_list_refresh (tlist);
- if (!ret) {
- g_print ("%s\n", _("Cannot show the list of transactions"));
- retval = EXIT_FAILURE;
- goto out;
- }
- pk_task_list_print (tlist);
+ /* coldplug */
+ pk_monitor_get_transaction_list (control);
/* only print state when verbose */
- if (verbose) {
- state = pk_control_get_daemon_state (control, NULL);
- g_print ("%s\n", state);
- g_free (state);
- }
+ if (verbose)
+ pk_monitor_get_daemon_state (control);
/* spin */
g_main_loop_run (loop);
g_object_unref (control);
- g_object_unref (tlist);
- g_object_unref (pconnection);
+ g_object_unref (client);
+ g_ptr_array_unref (array);
out:
return retval;
}
diff --git a/client/pk-tools-common.c b/client/pk-tools-common.c
deleted file mode 100644
index b021d27..0000000
--- a/client/pk-tools-common.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <glib.h>
-#include <stdio.h>
-#include <glib/gi18n.h>
-#include <packagekit-glib/packagekit.h>
-
-#include <egg-debug.h>
-
-#include "pk-tools-common.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';
- gboolean ret = FALSE;
-
- /* 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) fgetc (stdin);
-
- /* positive */
- if (answer == 'y' || answer == 'Y') {
- ret = TRUE;
- break;
- }
- /* negative */
- if (answer == 'n' || answer == 'N')
- break;
-
- /* default choice */
- if (answer == '\n' && defaultyes) {
- ret = TRUE;
- break;
- }
- if (answer == '\n' && !defaultyes)
- break;
- } while (TRUE);
-
- /* remove the trailing \n */
- answer = (gchar) fgetc (stdin);
- if (answer != '\n')
- ungetc (answer, stdin);
-
- return ret;
-}
-
-/**
- * pk_console_resolve:
- **/
-PkPackageList *
-pk_console_resolve (PkBitfield filter, const gchar *package, GError **error)
-{
- gboolean ret;
- guint length;
- PkPackageList *list = NULL;
- PkControl *control;
- PkClient *client;
- gchar **packages;
- GError *error_local = NULL;
- PkBitfield roles;
-
- /* get roles supported */
- control = pk_control_new ();
- roles = pk_control_get_actions (control, NULL);
-
- /* get new client */
- client = pk_client_new ();
- pk_client_set_use_buffer (client, TRUE, NULL);
- pk_client_set_synchronous (client, TRUE, NULL);
-
- /* we need to resolve it */
- packages = pk_package_ids_from_id (package);
- ret = pk_client_resolve (client, filter, packages, &error_local);
- g_strfreev (packages);
- if (!ret) {
- if (error != NULL)
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- /* get length of items found */
- list = pk_client_get_package_list (client);
- length = pk_package_list_get_size (list);
-
- /* didn't resolve to anything, try to get a provide */
- if (length == 0 && pk_bitfield_contain (roles, PK_ROLE_ENUM_WHAT_PROVIDES)) {
-
- g_object_unref (list);
- list = NULL;
-
- /* reset */
- ret = pk_client_reset (client, &error_local);
- if (!ret) {
- if (error != NULL)
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
- /* anything provide it? */
- ret = pk_client_what_provides (client, filter, PK_PROVIDES_ENUM_ANY, package, &error_local);
- if (!ret) {
- if (error != NULL)
- *error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- /* get length of items found again (we might have had success) */
- list = pk_client_get_package_list (client);
- }
-out:
- g_object_unref (control);
- g_object_unref (client);
- return list;
-}
-
-/**
- * pk_console_resolve_package_id:
- **/
-gchar *
-pk_console_resolve_package_id (const PkPackageList *list, GError **error)
-{
- guint i;
- guint length;
- const PkPackageObj *obj;
-
- length = pk_package_list_get_size (list);
-
- if (length == 0) {
- if (error != NULL) {
- /* TRANSLATORS: The package was not found in any software sources */
- *error = g_error_new (1, 0, _("The package could not be found"));
- }
- return NULL;
- }
-
- /* only found one, great! */
- if (length == 1) {
- obj = pk_package_list_get_obj (list, 0);
- return pk_package_id_to_string (obj->id);
- }
-
- /* TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages */
- g_print ("%s\n", _("More than one package matches:"));
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (list, i);
- g_print ("%i. %s-%s.%s\n", i+1, obj->id->name, obj->id->version, obj->id->arch);
- }
-
- /* TRANSLATORS: This finds out which package in the list to use */
- i = pk_console_get_number (_("Please choose the correct package: "), length);
- obj = pk_package_list_get_obj (list, i-1);
-
- return pk_package_id_to_string (obj->id);
-}
-
diff --git a/client/pk-tools-common.h b/client/pk-tools-common.h
deleted file mode 100644
index 6846629..0000000
--- a/client/pk-tools-common.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __PK_TOOLS_COMMON_H
-#define __PK_TOOLS_COMMON_H
-
-#include <glib.h>
-#include <packagekit-glib/packagekit.h>
-
-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);
-gchar *pk_console_resolve_package_id (const PkPackageList *list,
- GError **error);
-
-#endif /* __PK_TOOLS_COMMON_H */
diff --git a/configure.ac b/configure.ac
index 8e93dbf..c869a72 100644
--- a/configure.ac
+++ b/configure.ac
@@ -144,7 +144,7 @@ AM_GLIB_GNU_GETTEXT
dnl ---------------------------------------------------------------------------
dnl - Library dependencies
dnl ---------------------------------------------------------------------------
-GLIB_REQUIRED=2.14.0
+GLIB_REQUIRED=2.21.5
GIO_REQUIRED=2.16.1
DBUS_REQUIRED=1.1.1
DBUS_GLIB_REQUIRED=0.74
@@ -156,13 +156,6 @@ QTSQL_REQUIRED=4.4.0
QTXML_REQUIRED=4.4.0
dnl ---------------------------------------------------------------------------
-dnl - Make above strings available for packaging files (e.g. rpm spec files)
-dnl ---------------------------------------------------------------------------
-AC_SUBST(GLIB_REQUIRED)
-AC_SUBST(DBUS_REQUIRED)
-AC_SUBST(DBUS_GLIB_REQUIRED)
-
-dnl ---------------------------------------------------------------------------
dnl - Check library dependencies
dnl ---------------------------------------------------------------------------
PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED gobject-2.0)
@@ -555,18 +548,6 @@ if test x$build_glib = xyes; then
AC_DEFINE(PK_BUILD_GLIB,1,[Build glib code])
fi
-dnl ---------------------------------------------------------------------------
-dnl - Able to build GLib2 library
-dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(glib2, AS_HELP_STRING([--enable-glib2],[Build glib2 library (experimental)]),
- build_glib2=$enableval,build_glib2=no)
-AM_CONDITIONAL(PK_BUILD_GLIB2, test $build_glib2 = "yes")
-if test x$build_glib2 = xyes; then
- # needed for g_cancellable_connect() and g_ptr_array_ref()
- PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.22.0)
- AC_DEFINE(PK_BUILD_GLIB2,1,[Build glib2 code])
-fi
-
# backends
AC_ARG_ENABLE(alpm, AS_HELP_STRING([--enable-alpm],[use the ALPM backend]),enable_alpm=$enableval,enable_alpm=no)
AC_ARG_ENABLE(apt, AS_HELP_STRING([--enable-apt],[use the APT backend]),enable_apt=$enableval,enable_apt=no)
@@ -882,8 +863,7 @@ echo "
pm-utils scripts: ${build_pm_utils}
RUCK client: ${build_ruck}
QT library: ${build_qt}
- GLib: ${build_glib}
- GLib2: ${build_glib2}
+ GLib library (legacy): ${build_glib}
Managed bindings: ${build_managed}
Backends:
diff --git a/contrib/browser-plugin/Makefile.am b/contrib/browser-plugin/Makefile.am
index e2f8948..95e5469 100644
--- a/contrib/browser-plugin/Makefile.am
+++ b/contrib/browser-plugin/Makefile.am
@@ -16,13 +16,8 @@ packagekit_plugin_la_LIBADD = \
$(PK_BROWSER_PLUGIN_LIBS) \
$(NULL)
-if PK_BUILD_GLIB2
packagekit_plugin_la_LIBADD += \
$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la
-else
-packagekit_plugin_la_LIBADD += \
- $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
-endif
packagekit_plugin_la_SOURCES = \
pk-plugin.c \
diff --git a/contrib/browser-plugin/pk-plugin-install.c b/contrib/browser-plugin/pk-plugin-install.c
index 6564b3d..3283135 100644
--- a/contrib/browser-plugin/pk-plugin-install.c
+++ b/contrib/browser-plugin/pk-plugin-install.c
@@ -33,11 +33,7 @@
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <math.h>
-#ifdef PK_BUILD_GLIB2
#include <packagekit-glib2/packagekit.h>
-#else
-#include <packagekit-glib/packagekit.h>
-#endif
#include "pk-main.h"
#include "pk-plugin-install.h"
@@ -64,11 +60,7 @@ struct PkPluginInstallPrivate
gchar *display_name;
gchar **package_names;
PangoLayout *pango_layout;
-#ifdef PK_BUILD_GLIB2
PkClient *client;
-#else
- PkClientPool *client_pool;
-#endif
DBusGProxy *install_package_proxy;
DBusGProxyCall *install_package_call;
gint timeout;
@@ -238,8 +230,6 @@ out:
return data;
}
-#ifdef PK_BUILD_GLIB2
-
/**
* pk_plugin_install_finished_cb:
**/
@@ -403,147 +393,6 @@ pk_plugin_install_recheck (PkPluginInstall *self)
(GAsyncReadyCallback) pk_plugin_install_finished_cb, self);
}
-// package_ids = pk_package_ids_from_text ("glib2;2.14.0;i386;fedora&powertop");
-
-#else
-
-/**
- * pk_plugin_install_package_cb:
- **/
-static void
-pk_plugin_install_package_cb (PkClient *client, const PkPackageObj *obj, PkPluginInstall *self)
-{
- gchar *filename;
-
- /* if we didn't use displayname, use the summary */
- if (self->priv->display_name == NULL)
- self->priv->display_name = g_strdup (obj->summary);
-
- /* parse the data */
- if (obj->info == PK_INFO_ENUM_AVAILABLE) {
- if (self->priv->status == IN_PROGRESS)
- pk_plugin_install_set_status (self, AVAILABLE);
- else if (self->priv->status == INSTALLED)
- pk_plugin_install_set_status (self, UPGRADABLE);
- pk_plugin_install_set_available_version (self, obj->id->version);
- pk_plugin_install_set_available_package_name (self, obj->id->name);
-
-#if 0
- /* if we have data from the repo, override the user:
- * * we don't want the remote site pretending to install another package
- * * it might be localised if the backend supports it */
- if (obj->summary != NULL && obj->summary[0] != '\0')
- self->priv->display_name = g_strdup (obj->summary);
-#endif
-
- pk_plugin_install_clear_layout (self);
- pk_plugin_install_refresh (self);
-
- } else if (obj->info == PK_INFO_ENUM_INSTALLED) {
- if (self->priv->status == IN_PROGRESS)
- pk_plugin_install_set_status (self, INSTALLED);
- else if (self->priv->status == AVAILABLE)
- pk_plugin_install_set_status (self, UPGRADABLE);
- pk_plugin_install_set_installed_version (self, obj->id->version);
- pk_plugin_install_set_installed_package_name (self, obj->id->name);
-
- /* get desktop file information */
- filename = pk_plugin_install_get_best_desktop_file (self);
- if (filename != NULL) {
- self->priv->app_info = G_APP_INFO (g_desktop_app_info_new_from_filename (filename));
-#if 0
- /* override, as this will have translation */
- self->priv->display_name = g_strdup (g_app_info_get_name (self->priv->app_info));
-#endif
- }
- g_free (filename);
-
- if (self->priv->app_info != 0)
- pk_plugin_install_set_status (self, INSTALLED);
-
- pk_plugin_install_clear_layout (self);
- pk_plugin_install_refresh (self);
- }
-}
-
-/**
- * pk_plugin_install_error_code_cb:
- **/
-static void
-pk_plugin_install_error_code_cb (PkClient *client, PkErrorCodeEnum code, const gchar *details, PkPluginInstall *self)
-{
- pk_warning ("Error getting data from PackageKit: %s\n", details);
-
- if (self->priv->status == IN_PROGRESS) {
- pk_plugin_install_set_status (self, UNAVAILABLE);
- pk_plugin_install_clear_layout (self);
- pk_plugin_install_refresh (self);
- }
-}
-
-/**
- * pk_plugin_install_finished_cb:
- **/
-static void
-pk_plugin_install_finished_cb (PkClient *client, PkExitEnum exit_code, guint runtime, PkPluginInstall *self)
-{
- if (self->priv->status == IN_PROGRESS) {
- pk_plugin_install_set_status (self, UNAVAILABLE);
- pk_plugin_install_clear_layout (self);
- pk_plugin_install_refresh (self);
- }
-}
-
-/**
- * pk_plugin_install_recheck:
- **/
-static void
-pk_plugin_install_recheck (PkPluginInstall *self)
-{
- guint i;
- const gchar *data;
- gchar **package_ids;
- GError *error = NULL;
- PkClient *client;
- gboolean ret;
-
- self->priv->status = IN_PROGRESS;
- pk_plugin_install_set_available_version (self, NULL);
- pk_plugin_install_set_available_package_name (self, NULL);
- pk_plugin_install_set_installed_version (self, NULL);
- pk_plugin_install_set_installed_package_name (self, NULL);
-
- /* get data, if if does not exist */
- if (self->priv->package_names == NULL) {
- data = pk_plugin_get_data (PK_PLUGIN (self), "displayname");
- self->priv->display_name = g_strdup (data);
- data = pk_plugin_get_data (PK_PLUGIN (self), "packagenames");
- self->priv->package_names = g_strsplit (data, " ", -1);
- }
-
- for (i=0; self->priv->package_names[i] != NULL; i++) {
- package_ids = pk_package_ids_from_id (self->priv->package_names[i]);
- client = pk_client_pool_create (self->priv->client_pool);
-
- /* do async resolve */
- ret = pk_client_resolve (client, PK_FILTER_ENUM_NONE, package_ids, &error);
- if (!ret) {
- pk_warning ("%s", error->message);
- g_clear_error (&error);
- pk_client_pool_remove (self->priv->client_pool, client);
- }
- g_strfreev (package_ids);
- g_object_unref (client);
- }
-
- if (pk_client_pool_get_size (self->priv->client_pool) == 0 && self->priv->status == IN_PROGRESS) {
- pk_plugin_install_set_status (self, UNAVAILABLE);
- pk_plugin_install_clear_layout (self);
- pk_plugin_install_refresh (self);
- }
-}
-#endif
-
/**
* pk_plugin_install_append_markup:
**/
@@ -1289,11 +1138,7 @@ pk_plugin_install_finalize (GObject *object)
}
/* remove clients */
-#ifdef PK_BUILD_GLIB2
g_object_unref (self->priv->client);
-#else
- g_object_unref (self->priv->client_pool);
-#endif
G_OBJECT_CLASS (pk_plugin_install_parent_class)->finalize (object);
}
@@ -1335,16 +1180,7 @@ pk_plugin_install_init (PkPluginInstall *self)
self->priv->pango_layout = NULL;
self->priv->install_package_proxy = NULL;
self->priv->install_package_call = NULL;
-
-#ifdef PK_BUILD_GLIB2
self->priv->client = pk_client_new ();
-#else
- /* use a client pool to do everything async */
- self->priv->client_pool = pk_client_pool_new ();
- pk_client_pool_connect (self->priv->client_pool, "package", G_CALLBACK (pk_plugin_install_package_cb), G_OBJECT (self));
- pk_client_pool_connect (self->priv->client_pool, "error-code", G_CALLBACK (pk_plugin_install_error_code_cb), G_OBJECT (self));
- pk_client_pool_connect (self->priv->client_pool, "finished", G_CALLBACK (pk_plugin_install_finished_cb), G_OBJECT (self));
-#endif
}
/**
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index d07c07c..169c73f 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -15,47 +15,25 @@ INCLUDES = \
libexec_PROGRAMS = pk-command-not-found
-if PK_BUILD_GLIB2
-
PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
$(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
$(NULL)
pk_command_not_found_SOURCES = \
- pk-command-not-found-test.c \
- $(NULL)
-
-pk_command_not_found_LDADD = \
- $(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(PK_GLIB2_LIBS) \
- $(NULL)
-
-else
-
-PK_GLIB_LIBS = \
- $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
- $(NULL)
-
-pk_command_not_found_SOURCES = \
egg-debug.c \
egg-debug.h \
egg-string.c \
egg-string.h \
- pk-tools-common.c \
- pk-tools-common.h \
pk-command-not-found.c \
$(NULL)
pk_command_not_found_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(NULL)
-endif
-
pk_command_not_found_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
diff --git a/contrib/command-not-found/pk-command-not-found-test.c b/contrib/command-not-found/pk-command-not-found-test.c
deleted file mode 100644
index 9997d1e..0000000
--- a/contrib/command-not-found/pk-command-not-found-test.c
+++ /dev/null
@@ -1,798 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <locale.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <signal.h>
-#include <glib/gi18n.h>
-#include <dbus/dbus-glib.h>
-#include <packagekit-glib2/packagekit.h>
-#include <packagekit-glib2/packagekit-private.h>
-
-#include "egg-debug.h"
-#include "egg-string.h"
-
-#define PK_MAX_PATH_LEN 1023
-
-typedef enum {
- PK_CNF_POLICY_RUN,
- PK_CNF_POLICY_INSTALL,
- PK_CNF_POLICY_ASK,
- PK_CNF_POLICY_WARN,
- PK_CNF_POLICY_UNKNOWN
-} PkCnfPolicy;
-
-typedef struct {
- PkCnfPolicy single_match;
- PkCnfPolicy multiple_match;
- PkCnfPolicy single_install;
- PkCnfPolicy multiple_install;
- gboolean software_source_search;
- gchar **locations;
-} PkCnfPolicyConfig;
-
-static PkClient *client = NULL;
-static GCancellable *cancellable = NULL;
-
-/**
- * pk_cnf_find_alternatives_swizzle:
- *
- * Swizzle ordering, e.g. amke -> make
- **/
-static void
-pk_cnf_find_alternatives_swizzle (const gchar *cmd, guint len, GPtrArray *array)
-{
- guint i;
- gchar *possible;
- gchar swap;
-
- /* */
- for (i=0; i<len-1; i++) {
- possible = g_strdup (cmd);
- swap = possible[i];
- possible[i] = possible[i+1];
- possible[i+1] = swap;
- g_ptr_array_add (array, possible);
- }
-}
-
-/**
- * pk_cnf_find_alternatives_replace:
- *
- * Replace some easily confused chars, e.g. gnome-power-managir to gnome-power-manager
- **/
-static void
-pk_cnf_find_alternatives_replace (const gchar *cmd, guint len, GPtrArray *array)
-{
- guint i;
- gchar *possible;
- gchar temp;
-
- /* replace some easily confused chars */
- for (i=0; i<len; i++) {
- temp = cmd[i];
- if (temp == 'i') {
- possible = g_strdup (cmd);
- possible[i] = 'e';
- g_ptr_array_add (array, possible);
- }
- if (temp == 'e') {
- possible = g_strdup (cmd);
- possible[i] = 'i';
- g_ptr_array_add (array, possible);
- }
- if (temp == 'i') {
- possible = g_strdup (cmd);
- possible[i] = 'o';
- g_ptr_array_add (array, possible);
- }
- if (temp == 'c') {
- possible = g_strdup (cmd);
- possible[i] = 's';
- g_ptr_array_add (array, possible);
- }
- if (temp == 's') {
- possible = g_strdup (cmd);
- possible[i] = 'c';
- g_ptr_array_add (array, possible);
- }
- if (temp == 's') {
- possible = g_strdup (cmd);
- possible[i] = 'z';
- g_ptr_array_add (array, possible);
- }
- if (temp == 'z') {
- possible = g_strdup (cmd);
- possible[i] = 's';
- g_ptr_array_add (array, possible);
- }
- if (temp == 'k') {
- possible = g_strdup (cmd);
- possible[i] = 'c';
- g_ptr_array_add (array, possible);
- }
- if (temp == 'c') {
- possible = g_strdup (cmd);
- possible[i] = 'k';
- g_ptr_array_add (array, possible);
- }
- }
-}
-
-/**
- * pk_cnf_find_alternatives_truncate:
- *
- * Truncate first and last char, so lshall -> lshal
- **/
-static void
-pk_cnf_find_alternatives_truncate (const gchar *cmd, guint len, GPtrArray *array)
-{
- guint i;
- gchar *possible;
-
- /* truncate last char */
- possible = g_strdup (cmd);
- possible[len-1] = '\0';
- g_ptr_array_add (array, possible);
-
- /* truncate first char */
- possible = g_strdup (cmd);
- for (i=0; i<len-1; i++)
- possible[i] = possible[i+1];
- possible[len-1] = '\0';
- g_ptr_array_add (array, possible);
-}
-
-/**
- * pk_cnf_find_alternatives_remove_double:
- *
- * Remove double chars, e.g. gnome-power-manaager -> gnome-power-manager
- **/
-static void
-pk_cnf_find_alternatives_remove_double (const gchar *cmd, guint len, GPtrArray *array)
-{
- guint i, j;
- gchar *possible;
-
- for (i=1; i<len; i++) {
- if (cmd[i-1] == cmd[i]) {
- possible = g_strdup (cmd);
- for (j=i; j<len; j++)
- possible[j] = possible[j+1];
- possible[len-1] = '\0';
- g_ptr_array_add (array, possible);
- }
- }
-}
-
-/**
- * pk_cnf_find_alternatives_locale:
- *
- * Fix British spellings, e.g. colourdiff -> colordiff
- **/
-static void
-pk_cnf_find_alternatives_locale (const gchar *cmd, guint len, GPtrArray *array)
-{
- guint i, j;
- gchar *possible;
-
- for (i=1; i<len; i++) {
- if (cmd[i-1] == 'o' && cmd[i] == 'u') {
- possible = g_strdup (cmd);
- for (j=i; j<len; j++)
- possible[j] = possible[j+1];
- possible[len-1] = '\0';
- g_ptr_array_add (array, possible);
- }
- }
-}
-
-/**
- * pk_cnf_find_alternatives_case:
- *
- * Remove double chars, e.g. Lshal -> lshal
- **/
-static void
-pk_cnf_find_alternatives_case (const gchar *cmd, guint len, GPtrArray *array)
-{
- guint i;
- gchar *possible;
- gchar temp;
-
- for (i=0; i<len; i++) {
- temp = g_ascii_tolower (cmd[i]);
- if (temp != cmd[i]) {
- possible = g_strdup (cmd);
- possible[i] = temp;
- g_ptr_array_add (array, possible);
- }
- temp = g_ascii_toupper (cmd[i]);
- if (temp != cmd[i]) {
- possible = g_strdup (cmd);
- possible[i] = temp;
- g_ptr_array_add (array, possible);
- }
- }
-
- /* all lower */
- possible = g_strdup (cmd);
- for (i=0; i<len; i++)
- possible[i] = g_ascii_tolower (cmd[i]);
- if (strcmp (possible, cmd) != 0)
- g_ptr_array_add (array, possible);
- else
- g_free (possible);
-
- /* all upper */
- possible = g_strdup (cmd);
- for (i=0; i<len; i++)
- possible[i] = g_ascii_toupper (cmd[i]);
- if (strcmp (possible, cmd) != 0)
- g_ptr_array_add (array, possible);
- else
- g_free (possible);
-}
-
-/**
- * pk_cnf_find_alternatives:
- *
- * Generate a list of commands it might be
- **/
-static GPtrArray *
-pk_cnf_find_alternatives (const gchar *cmd, guint len)
-{
- GPtrArray *array;
- GPtrArray *possible;
- GPtrArray *unique;
- const gchar *cmdt;
- const gchar *cmdt2;
- guint i, j;
- gchar buffer_bin[PK_MAX_PATH_LEN+1];
- gchar buffer_sbin[PK_MAX_PATH_LEN+1];
- gboolean ret;
-
- array = g_ptr_array_new ();
- possible = g_ptr_array_new ();
- unique = g_ptr_array_new ();
- pk_cnf_find_alternatives_swizzle (cmd, len, possible);
- pk_cnf_find_alternatives_replace (cmd, len, possible);
- if (len > 3)
- pk_cnf_find_alternatives_truncate (cmd, len, possible);
- pk_cnf_find_alternatives_remove_double (cmd, len, possible);
- pk_cnf_find_alternatives_case (cmd, len, possible);
- pk_cnf_find_alternatives_locale (cmd, len, possible);
-
- /* remove duplicates using a helper array */
- for (i=0; i<possible->len; i++) {
- cmdt = g_ptr_array_index (possible, i);
- ret = TRUE;
- for (j=0; j<unique->len; j++) {
- cmdt2 = g_ptr_array_index (unique, j);
- if (strcmp (cmdt, cmdt2) == 0) {
- ret = FALSE;
- break;
- }
- }
- /* only add if not duplicate */
- if (ret)
- g_ptr_array_add (unique, (gpointer) cmdt);
- }
-
- /* ITS4: ignore, source is constant size */
- strncpy (buffer_bin, "/usr/bin/", PK_MAX_PATH_LEN);
-
- /* ITS4: ignore, source is constant size */
- strncpy (buffer_sbin, "/usr/sbin/", PK_MAX_PATH_LEN);
-
- /* remove any that exist (fast path) */
- for (i=0; i<unique->len; i++) {
- cmdt = g_ptr_array_index (unique, i);
-
- /* ITS4: ignore, size is checked */
- strncpy (&buffer_bin[9], cmdt, PK_MAX_PATH_LEN-9);
-
- /* ITS4: ignore, size is checked */
- strncpy (&buffer_sbin[10], cmdt, PK_MAX_PATH_LEN-10);
-
- /* does file exist in bindir (common case) */
- ret = g_file_test (buffer_bin, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE);
- if (ret) {
- g_ptr_array_add (array, g_strdup (cmdt));
- continue;
- }
-
- /* does file exist in sbindir */
- ret = g_file_test (buffer_sbin, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE);
- if (ret)
- g_ptr_array_add (array, g_strdup (cmdt));
- }
-
- g_ptr_array_foreach (possible, (GFunc) g_free, NULL);
- g_ptr_array_free (possible, TRUE);
- g_ptr_array_free (unique, TRUE);
- return array;
-}
-
-/**
- * pk_cnf_progress_cb:
- **/
-static void
-pk_cnf_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
-{
- PkStatusEnum status;
- const gchar *text = NULL;
-
- /* status */
- if (type != PK_PROGRESS_TYPE_STATUS)
- return;
-
- g_object_get (progress,
- "status", &status,
- NULL);
-
- switch (status) {
- case PK_STATUS_ENUM_DOWNLOAD_REPOSITORY:
- /* TRANSLATORS: downloading repo data so we can search */
- text = _("Downloading details about the software sources.");
- break;
- case PK_STATUS_ENUM_DOWNLOAD_FILELIST:
- /* TRANSLATORS: downloading file lists so we can search */
- text = _("Downloading filelists (this may take some time to complete).");
- break;
- case PK_STATUS_ENUM_WAITING_FOR_LOCK:
- /* TRANSLATORS: waiting for native lock */
- text = _("Waiting for package manager lock.");
- break;
- case PK_STATUS_ENUM_LOADING_CACHE:
- /* TRANSLATORS: loading package cache so we can search */
- text = _("Loading list of packages.");
- break;
- default:
- /* no need to print */
- text = NULL;
- }
-
- /* print to screen, still one line */
- if (text != NULL)
- g_print ("\n * %s.. ", text);
-}
-
-/**
- * pk_cnf_search_file:
- **/
-static gchar **
-pk_cnf_search_file (PkClient *client_, PkBitfield filter, const gchar *filename, GError **error)
-{
- gchar **package_ids = NULL;
- PkResults *results;
- GPtrArray *array = NULL;
- guint i;
- const PkItemPackage *item;
-
- /* get the list of possibles */
- results = pk_client_search_file_sync (client_, filter, filename, cancellable,
- (PkProgressCallback) pk_cnf_progress_cb, NULL, error);
- if (results == NULL)
- goto out;
-
- /* get the packages returned */
- array = pk_results_get_package_array (results);
- if (array == NULL) {
- *error = g_error_new (1, 0, "did not get package struct for %s", filename);
- goto out;
- }
-
- /* copy results into struct */
- package_ids = g_new0 (gchar *, array->len+1);
- for (i=0; i<array->len; i++) {
- item = g_ptr_array_index (array, i);
- package_ids[i] = g_strdup (item->package_id);
- }
-out:
- if (results != NULL)
- g_object_unref (results);
- if (array != NULL)
- g_ptr_array_unref (array);
- return package_ids;
-}
-
-/**
- * pk_cnf_find_available:
- *
- * Find software we could install
- **/
-static gboolean
-pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
-{
- GError *error = NULL;
- PkBitfield filters;
- gboolean ret = FALSE;
- guint i;
- gchar **package_ids = NULL;
- gchar *path = NULL;
- gchar **parts;
-
- /* do search */
- path = g_build_filename (prefix, cmd, NULL);
- egg_debug ("searching for %s", path);
- filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
- package_ids = pk_cnf_search_file (client, filters, path, &error);
- if (package_ids == NULL) {
- /* TRANSLATORS: we failed to find the package, this shouldn't happen */
- egg_warning ("%s: %s", _("Failed to search for file"), error->message);
- g_error_free (error);
- goto out;
- }
-
- /* nothing found */
- ret = (g_strv_length (package_ids) != 0);
- if (!ret)
- goto out;
-
- /* add all package names */
- for (i=0; package_ids[i] != NULL; i++) {
- parts = pk_package_id_split (package_ids[i]);
- g_ptr_array_add (array, g_strdup (parts[0]));
- egg_debug ("name=%s", parts[0]);
- g_strfreev (parts);
- }
-out:
- g_strfreev (package_ids);
- g_free (path);
- return ret;
-}
-
-/**
- * pk_cnf_get_policy_from_string:
- **/
-static PkCnfPolicy
-pk_cnf_get_policy_from_string (const gchar *policy_text)
-{
- if (policy_text == NULL)
- return PK_CNF_POLICY_UNKNOWN;
- if (strcmp (policy_text, "run") == 0)
- return PK_CNF_POLICY_RUN;
- if (strcmp (policy_text, "ask") == 0)
- return PK_CNF_POLICY_ASK;
- if (strcmp (policy_text, "warn") == 0)
- return PK_CNF_POLICY_WARN;
- return PK_CNF_POLICY_UNKNOWN;
-}
-
-/**
- * pk_cnf_get_policy_from_file:
- **/
-static PkCnfPolicy
-pk_cnf_get_policy_from_file (GKeyFile *file, const gchar *key)
-{
- PkCnfPolicy policy;
- gchar *policy_text;
- GError *error = NULL;
-
- /* get from file */
- policy_text = g_key_file_get_string (file, "CommandNotFound", key, &error);
- if (policy_text == NULL) {
- egg_warning ("failed to get key %s: %s", key, error->message);
- g_error_free (error);
- }
-
- /* convert to enum */
- policy = pk_cnf_get_policy_from_string (policy_text);
- g_free (policy_text);
- return policy;
-}
-
-/**
- * pk_cnf_get_config:
- **/
-static PkCnfPolicyConfig *
-pk_cnf_get_config (void)
-{
- GKeyFile *file;
- gchar *path;
- gboolean ret;
- GError *error = NULL;
- PkCnfPolicyConfig *config;
-
- /* create */
- config = g_new0 (PkCnfPolicyConfig, 1);
-
- /* set defaults if the conf file is not found */
- config->single_match = PK_CNF_POLICY_UNKNOWN;
- config->multiple_match = PK_CNF_POLICY_UNKNOWN;
- config->single_install = PK_CNF_POLICY_UNKNOWN;
- config->multiple_install = PK_CNF_POLICY_UNKNOWN;
- config->software_source_search = FALSE;
- config->locations = NULL;
-
- /* load file */
- file = g_key_file_new ();
- path = g_build_filename (SYSCONFDIR, "PackageKit", "CommandNotFound.conf", NULL);
- ret = g_key_file_load_from_file (file, path, G_KEY_FILE_NONE, &error);
- if (!ret) {
- egg_warning ("failed to open policy: %s", error->message);
- g_error_free (error);
- goto out;
- }
-
- /* get data */
- config->single_match = pk_cnf_get_policy_from_file (file, "SingleMatch");
- config->multiple_match = pk_cnf_get_policy_from_file (file, "MultipleMatch");
- config->single_install = pk_cnf_get_policy_from_file (file, "SingleInstall");
- config->multiple_install = pk_cnf_get_policy_from_file (file, "MultipleInstall");
- config->software_source_search = g_key_file_get_boolean (file, "CommandNotFound", "SoftwareSourceSearch", NULL);
- config->locations = g_key_file_get_string_list (file, "CommandNotFound", "SearchLocations", NULL, NULL);
-
- /* fallback */
- if (config->locations == NULL) {
- egg_warning ("not found SearchLocations, using fallback");
- config->locations = g_strsplit ("/usr/bin;/usr/sbin", ";", -1);
- }
-out:
- g_free (path);
- g_key_file_free (file);
- return config;
-}
-
-/**
- * pk_cnf_spawn_command:
- **/
-static gboolean
-pk_cnf_spawn_command (const gchar *exec)
-{
- gboolean ret;
- GError *error = NULL;
- ret = g_spawn_command_line_sync (exec, NULL, NULL, NULL, &error);
- if (!ret) {
- /* TRANSLATORS: we failed to launch the executable, the error follows */
- g_print ("%s '%s': %s", _("Failed to launch:"), exec, error->message);
- g_error_free (error);
- }
- return ret;
-}
-
-/**
- * pk_cnf_sigint_handler:
- **/
-static void
-pk_cnf_sigint_handler (int sig)
-{
- egg_debug ("Handling SIGINT");
-
- /* restore default ASAP, as the cancel might hang */
- signal (SIGINT, SIG_DFL);
-
- /* hopefully, cancel client */
- g_cancellable_cancel (cancellable);
-
- /* kill ourselves */
- egg_debug ("Retrying SIGINT");
- kill (getpid (), SIGINT);
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean ret;
- gboolean verbose = FALSE;
- GOptionContext *context;
- GPtrArray *array = NULL;
- GPtrArray *available = NULL;
- PkCnfPolicyConfig *config = NULL;
- guint i;
- guint len;
- gchar *text;
- const gchar *possible;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), 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);
- dbus_g_thread_init ();
- g_type_init ();
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Command Not Found"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- egg_debug_init (verbose);
-
- /* no input */
- if (argv[1] == NULL)
- goto out;
-
- /* do stuff on ctrl-c */
- signal (SIGINT, pk_cnf_sigint_handler);
-
- /* get policy config */
- config = pk_cnf_get_config ();
- client = pk_client_new ();
- cancellable = g_cancellable_new ();
-
- /* get length */
- len = egg_strlen (argv[1], 1024);
- if (len < 1)
- goto out;
-
- /* generate swizzles */
- array = pk_cnf_find_alternatives (argv[1], len);
-
- /* TRANSLATORS: the prefix of all the output telling the user why it's not executing */
- g_print ("%s ", _("Command not found."));
-
- /* one exact possibility */
- if (array->len == 1) {
- possible = g_ptr_array_index (array, 0);
- if (config->single_match == PK_CNF_POLICY_WARN) {
- /* TRANSLATORS: tell the user what we think the command is */
- g_print ("%s '%s'\n", _("Similar command is:"), possible);
-
- /* run */
- } else if (config->single_match == PK_CNF_POLICY_RUN) {
- pk_cnf_spawn_command (possible);
-
- /* ask */
- } else if (config->single_match == PK_CNF_POLICY_ASK) {
- /* TRANSLATORS: Ask the user if we should run the similar command */
- text = g_strdup_printf ("%s %s", _("Run similar command:"), possible);
- ret = pk_console_get_prompt (text, TRUE);
- if (ret)
- pk_cnf_spawn_command (possible);
- g_free (text);
- }
- goto out;
-
- /* multiple choice */
- } else if (array->len > 1) {
- if (config->multiple_match == PK_CNF_POLICY_WARN) {
- /* TRANSLATORS: show the user a list of commands that they could have meant */
- g_print ("%s:\n", _("Similar commands are:"));
- for (i=0; i<array->len; i++) {
- possible = g_ptr_array_index (array, i);
- g_print ("'%s'\n", possible);
- }
-
- /* ask */
- } else if (config->multiple_match == PK_CNF_POLICY_ASK) {
- /* TRANSLATORS: show the user a list of commands we could run */
- g_print ("%s:\n", _("Similar commands are:"));
- for (i=0; i<array->len; i++) {
- possible = g_ptr_array_index (array, i);
- g_print ("%i\t'%s'\n", i+1, possible);
- }
-
- /* TRANSLATORS: ask the user to choose a file to run */
- i = pk_console_get_number (_("Please choose a command to run"), array->len);
-
- /* run command */
- possible = g_ptr_array_index (array, i);
- pk_cnf_spawn_command (possible);
- }
- goto out;
-
- /* only search using PackageKit if configured to do so */
- } else if (config->software_source_search) {
- available = g_ptr_array_new ();
- pk_cnf_find_available (available, "/usr/bin", argv[1]);
- pk_cnf_find_available (available, "/usr/sbin", argv[1]);
- pk_cnf_find_available (available, "/bin", argv[1]);
- pk_cnf_find_available (available, "/sbin", argv[1]);
- if (available->len == 1) {
- possible = g_ptr_array_index (available, 0);
- if (config->single_install == PK_CNF_POLICY_WARN) {
- /* TRANSLATORS: tell the user what package provides the command */
- g_print ("%s '%s'\n", _("The package providing this file is:"), possible);
-
- /* ask */
- } else if (config->single_install == PK_CNF_POLICY_ASK) {
- /* TRANSLATORS: as the user if we want to install a package to provide the command */
- text = g_strdup_printf (_("Install package '%s' to provide command '%s'?"), possible, argv[1]);
- ret = pk_console_get_prompt (text, FALSE);
- g_free (text);
- if (ret) {
- text = g_strdup_printf ("pkcon install %s", possible);
- ret = pk_cnf_spawn_command (text);
- if (ret)
- pk_cnf_spawn_command (argv[1]);
- g_free (text);
- }
-
- /* install */
- } else if (config->single_install == PK_CNF_POLICY_INSTALL) {
- text = g_strdup_printf ("pkcon install %s", possible);
- pk_cnf_spawn_command (text);
- g_free (text);
- }
- goto out;
- } else if (available->len > 1) {
- if (config->multiple_install == PK_CNF_POLICY_WARN) {
- /* TRANSLATORS: Show the user a list of packages that provide this command */
- g_print ("%s\n", _("Packages providing this file are:"));
- for (i=0; i<available->len; i++) {
- possible = g_ptr_array_index (available, i);
- g_print ("'%s'\n", possible);
- }
-
- /* ask */
- } else if (config->multiple_install == PK_CNF_POLICY_ASK) {
- /* TRANSLATORS: Show the user a list of packages that they can install to provide this command */
- g_print ("%s:\n", _("Suitable packages are:"));
- for (i=0; i<available->len; i++) {
- possible = g_ptr_array_index (available, i);
- g_print ("%i\t'%s'\n", i+1, possible);
- }
-
- /* get selection */
- /* TRANSLATORS: ask the user to choose a file to install */
- i = pk_console_get_number (_("Please choose a package to install"), available->len);
-
- /* run command */
- possible = g_ptr_array_index (available, i);
- text = g_strdup_printf ("pkcon install %s", possible);
- ret = pk_cnf_spawn_command (text);
- if (ret)
- pk_cnf_spawn_command (argv[1]);
- g_free (text);
- }
- goto out;
- }
- }
-
- g_print ("\n");
-
-out:
- g_object_unref (client);
- g_object_unref (cancellable);
- if (config != NULL) {
- g_strfreev (config->locations);
- g_free (config);
- }
- if (array != NULL) {
- g_ptr_array_foreach (array, (GFunc) g_free, NULL);
- g_ptr_array_free (array, TRUE);
- }
- if (available != NULL) {
- g_ptr_array_foreach (available, (GFunc) g_free, NULL);
- g_ptr_array_free (available, TRUE);
- }
-
- return 0;
-}
-
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 77e4a40..9997d1e 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -28,13 +28,12 @@
#include <signal.h>
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include "egg-debug.h"
#include "egg-string.h"
-#include "pk-tools-common.h"
-
#define PK_MAX_PATH_LEN 1023
typedef enum {
@@ -55,6 +54,7 @@ typedef struct {
} PkCnfPolicyConfig;
static PkClient *client = NULL;
+static GCancellable *cancellable = NULL;
/**
* pk_cnf_find_alternatives_swizzle:
@@ -336,13 +336,22 @@ pk_cnf_find_alternatives (const gchar *cmd, guint len)
}
/**
- * pk_cnf_status_changed_cb:
+ * pk_cnf_progress_cb:
**/
static void
-pk_cnf_status_changed_cb (PkClient *client_, PkStatusEnum status, gpointer data)
+pk_cnf_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
{
+ PkStatusEnum status;
const gchar *text = NULL;
+ /* status */
+ if (type != PK_PROGRESS_TYPE_STATUS)
+ return;
+
+ g_object_get (progress,
+ "status", &status,
+ NULL);
+
switch (status) {
case PK_STATUS_ENUM_DOWNLOAD_REPOSITORY:
/* TRANSLATORS: downloading repo data so we can search */
@@ -371,6 +380,45 @@ pk_cnf_status_changed_cb (PkClient *client_, PkStatusEnum status, gpointer data)
}
/**
+ * pk_cnf_search_file:
+ **/
+static gchar **
+pk_cnf_search_file (PkClient *client_, PkBitfield filter, const gchar *filename, GError **error)
+{
+ gchar **package_ids = NULL;
+ PkResults *results;
+ GPtrArray *array = NULL;
+ guint i;
+ const PkItemPackage *item;
+
+ /* get the list of possibles */
+ results = pk_client_search_file_sync (client_, filter, filename, cancellable,
+ (PkProgressCallback) pk_cnf_progress_cb, NULL, error);
+ if (results == NULL)
+ goto out;
+
+ /* get the packages returned */
+ array = pk_results_get_package_array (results);
+ if (array == NULL) {
+ *error = g_error_new (1, 0, "did not get package struct for %s", filename);
+ goto out;
+ }
+
+ /* copy results into struct */
+ package_ids = g_new0 (gchar *, array->len+1);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ package_ids[i] = g_strdup (item->package_id);
+ }
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ if (array != NULL)
+ g_ptr_array_unref (array);
+ return package_ids;
+}
+
+/**
* pk_cnf_find_available:
*
* Find software we could install
@@ -378,76 +426,41 @@ pk_cnf_status_changed_cb (PkClient *client_, PkStatusEnum status, gpointer data)
static gboolean
pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
{
- PkControl *control;
GError *error = NULL;
- PkBitfield roles;
PkBitfield filters;
gboolean ret = FALSE;
- guint i, len;
- PkPackageList *list = NULL;
- const PkPackageObj *obj;
+ guint i;
+ gchar **package_ids = NULL;
gchar *path = NULL;
-
- control = pk_control_new ();
- client = pk_client_new ();
- pk_client_set_synchronous (client, TRUE, NULL);
- pk_client_set_use_buffer (client, TRUE, NULL);
- g_signal_connect (client, "status-changed",
- G_CALLBACK (pk_cnf_status_changed_cb), NULL);
- g_object_add_weak_pointer (G_OBJECT (client), (gpointer) &client);
-
- /* get what we support */
- roles = pk_control_get_actions (control, &error);
- if (roles == 0) {
- egg_warning ("Failed to contact PackageKit: %s", error->message);
- g_error_free (error);
- goto out;
- }
-
- /* can we search the repos */
- if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_FILE)) {
- egg_warning ("cannot search file");
- goto out;
- }
+ gchar **parts;
/* do search */
path = g_build_filename (prefix, cmd, NULL);
egg_debug ("searching for %s", path);
filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
- ret = pk_client_search_file (client, filters, path, &error);
- if (!ret) {
+ package_ids = pk_cnf_search_file (client, filters, path, &error);
+ if (package_ids == NULL) {
/* TRANSLATORS: we failed to find the package, this shouldn't happen */
egg_warning ("%s: %s", _("Failed to search for file"), error->message);
g_error_free (error);
goto out;
}
- /* get package list */
- list = pk_client_get_package_list (client);
- if (list == NULL) {
- egg_warning ("failed to get list");
- ret = FALSE;
- goto out;
- }
-
/* nothing found */
- len = PK_OBJ_LIST(list)->len;
- if (len == 0)
+ ret = (g_strv_length (package_ids) != 0);
+ if (!ret)
goto out;
/* add all package names */
- for (i=0; i<len; i++) {
- obj = pk_package_list_get_obj (list, i);
- g_ptr_array_add (array, g_strdup (obj->id->name));
- egg_warning ("obj->id->name=%s", obj->id->name);
+ for (i=0; package_ids[i] != NULL; i++) {
+ parts = pk_package_id_split (package_ids[i]);
+ g_ptr_array_add (array, g_strdup (parts[0]));
+ egg_debug ("name=%s", parts[0]);
+ g_strfreev (parts);
}
out:
- if (list != NULL)
- g_object_unref (list);
- g_object_unref (control);
- g_object_unref (client);
+ g_strfreev (package_ids);
g_free (path);
-
return ret;
}
@@ -566,29 +579,14 @@ pk_cnf_spawn_command (const gchar *exec)
static void
pk_cnf_sigint_handler (int sig)
{
- PkRoleEnum role;
- gboolean ret;
- GError *error = NULL;
egg_debug ("Handling SIGINT");
/* restore default ASAP, as the cancel might hang */
signal (SIGINT, SIG_DFL);
- /* nothing in progress */
- if (client == NULL)
- goto out;
-
/* hopefully, cancel client */
- 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 client: %s", error->message);
- g_error_free (error);
- }
- }
+ g_cancellable_cancel (cancellable);
-out:
/* kill ourselves */
egg_debug ("Retrying SIGINT");
kill (getpid (), SIGINT);
@@ -645,6 +643,8 @@ main (int argc, char *argv[])
/* get policy config */
config = pk_cnf_get_config ();
+ client = pk_client_new ();
+ cancellable = g_cancellable_new ();
/* get length */
len = egg_strlen (argv[1], 1024);
@@ -778,6 +778,8 @@ main (int argc, char *argv[])
g_print ("\n");
out:
+ g_object_unref (client);
+ g_object_unref (cancellable);
if (config != NULL) {
g_strfreev (config->locations);
g_free (config);
diff --git a/contrib/debuginfo-install/Makefile.am b/contrib/debuginfo-install/Makefile.am
index 0d41fd9..d8b6ff4 100644
--- a/contrib/debuginfo-install/Makefile.am
+++ b/contrib/debuginfo-install/Makefile.am
@@ -30,8 +30,6 @@ INCLUDES = \
bin_PROGRAMS = pk-debuginfo-install
-if PK_BUILD_GLIB2
-
PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
$(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
@@ -40,37 +38,15 @@ PK_GLIB2_LIBS = \
pk_debuginfo_install_SOURCES = \
egg-debug.c \
egg-debug.h \
- pk-debuginfo-install-test.c \
- $(NULL)
-
-pk_debuginfo_install_LDADD = \
- $(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(PK_GLIB2_LIBS) \
- $(NULL)
-
-else
-
-PK_GLIB_LIBS = \
- $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
- $(NULL)
-
-pk_debuginfo_install_SOURCES = \
- egg-debug.c \
- egg-debug.h \
pk-debuginfo-install.c \
- pk-progress-bar.c \
- pk-progress-bar.h \
$(NULL)
pk_debuginfo_install_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(NULL)
-endif
-
pk_debuginfo_install_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
diff --git a/contrib/debuginfo-install/pk-debuginfo-install-test.c b/contrib/debuginfo-install/pk-debuginfo-install-test.c
deleted file mode 100644
index c07ec65..0000000
--- a/contrib/debuginfo-install/pk-debuginfo-install-test.c
+++ /dev/null
@@ -1,933 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/* Test with ./pk-debuginfo-install bzip2-libs-1.0.5-5.fc11.i586 glib2-2.20.3-1.fc11.i586 */
-
-#include "config.h"
-
-#include <string.h>
-#include <locale.h>
-#include <glib/gi18n.h>
-#include <packagekit-glib2/packagekit.h>
-#include <packagekit-glib2/packagekit-private.h>
-
-#include "egg-debug.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_DEBUGINFO_EXIT_CODE_FAILED 1
-#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_GET_REPOLIST 3
-#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE 4
-#define PK_DEBUGINFO_EXIT_CODE_NOTHING_TO_DO 5
-#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_FIND_DEPS 6
-#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_INSTALL 7
-#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_DISABLE 8
-
-typedef struct {
- GPtrArray *enabled;
- GPtrArray *disabled;
- PkClient *client;
- PkProgressBar *progress_bar;
-} PkDebuginfoInstallPrivate;
-
-/**
- * pk_get_package_name_from_nevra:
- **/
-static gchar *
-pk_get_package_name_from_nevra (const gchar *nevra)
-{
- gchar *name = NULL;
- gchar **split;
- guint len;
-
- /* hal-info-data-version-arch */
- split = g_strsplit (nevra, "-", -1);
- len = g_strv_length (split);
-
- /* just the package name specified */
- if (len == 1) {
- name = g_strdup (split[0]);
- goto out;
- }
-
- /* ignore the version */
- g_free (split[len-2]);
- split[len-2] = NULL;
-
- /* ignore the arch */
- g_free (split[len-1]);
- split[len-1] = NULL;
-
- /* join up name elements */
- name = g_strjoinv ("-", split);
-out:
- g_strfreev (split);
- return name;
-}
-
-/**
- * pk_debuginfo_install_in_array:
- **/
-static gboolean
-pk_debuginfo_install_in_array (GPtrArray *array, const gchar *text)
-{
- guint i;
- gboolean ret = FALSE;
- const gchar *possible;
-
- /* compare each */
- for (i=0; i<array->len; i++) {
- possible = g_ptr_array_index (array, i);
- if (g_strcmp0 (text, possible) == 0) {
- ret = TRUE;
- break;
- }
- }
- return ret;
-}
-
-/**
- * pk_debuginfo_install_enable_repos:
- **/
-static gboolean
-pk_debuginfo_install_enable_repos (PkDebuginfoInstallPrivate *priv, GPtrArray *array, gboolean enable, GError **error)
-{
- guint i;
- gboolean ret = TRUE;
- PkResults *results = NULL;
- const gchar *repo_id;
- GError *error_local = NULL;
- PkExitEnum exit_enum;
-
- /* enable all debuginfo repos we found */
- for (i=0; i<array->len; i++) {
- repo_id = g_ptr_array_index (array, i);
-
- /* enable this repo */
- results = pk_client_repo_enable_sync (priv->client, repo_id, enable, NULL, NULL, NULL, &error_local);
- if (results == NULL) {
- *error = g_error_new (1, 0, "failed to enable %s: %s", repo_id, error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* test exit code */
- exit_enum = pk_results_get_exit_code (results);
- if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
- *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
- g_error_free (error_local);
- goto out;
- }
-
- egg_debug ("setting %s: %i", repo_id, enable);
- g_object_unref (results);
- }
-out:
- return ret;
-}
-
-/**
- * pk_debuginfo_install_progress_cb:
- **/
-static void
-pk_debuginfo_install_progress_cb (PkProgress *progress, PkProgressType type, PkDebuginfoInstallPrivate *priv)
-{
- gint percentage;
- gchar *package_id = NULL;
-
- if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
- g_object_get (progress, "percentage", &percentage, NULL);
- pk_progress_bar_set_percentage (priv->progress_bar, percentage);
- goto out;
- }
- if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
- g_object_get (progress, "package-id", &package_id, NULL);
- egg_debug ("now downloading %s", package_id);
- goto out;
- }
-out:
- g_free (package_id);
-}
-
-/**
- * pk_debuginfo_install_packages_install:
- **/
-static gboolean
-pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArray *array, GError **error)
-{
- gboolean ret = TRUE;
- PkResults *results = NULL;
- gchar **package_ids;
- GError *error_local = NULL;
- PkExitEnum exit_enum;
-
- /* mush back into a char** */
- package_ids = pk_ptr_array_to_strv (array);
-
- /* TRANSLATORS: we are starting to install the packages */
- pk_progress_bar_start (priv->progress_bar, _("Starting install"));
-
- /* enable this repo */
- results = pk_task_install_packages_sync (PK_TASK(priv->client), package_ids, NULL,
- (PkProgressCallback) pk_debuginfo_install_progress_cb, priv, &error_local);
- if (results == NULL) {
- *error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* test exit code */
- exit_enum = pk_results_get_exit_code (results);
- if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
- *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* end progressbar output */
- pk_progress_bar_end (priv->progress_bar);
-out:
- if (results != NULL)
- g_object_unref (results);
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_debuginfo_install_resolve_name_to_id:
- **/
-static gchar *
-pk_debuginfo_install_resolve_name_to_id (PkDebuginfoInstallPrivate *priv, const gchar *package_name, GError **error)
-{
- PkResults *results = NULL;
- const PkItemPackage *item;
- gchar *package_id = NULL;
- GPtrArray *list = NULL;
- GError *error_local = NULL;
- gchar **names;
- PkExitEnum exit_enum;
-
- /* resolve takes a char** */
- names = g_strsplit (package_name, ";", -1);
-
- /* resolve */
- results = pk_client_resolve_sync (priv->client, pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1), names, NULL, NULL, NULL, &error_local);
- if (results == NULL) {
- *error = g_error_new (1, 0, "failed to resolve: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- /* test exit code */
- exit_enum = pk_results_get_exit_code (results);
- if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
- *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
- g_error_free (error_local);
- goto out;
- }
-
- /* check we only got one match */
- list = pk_results_get_package_array (results);
- if (list->len == 0) {
- *error = g_error_new (1, 0, "no package %s found", package_name);
- goto out;
- }
- if (list->len > 1) {
- *error = g_error_new (1, 0, "more than one package found for %s", package_name);
- goto out;
- }
-
- /* get the package id */
- item = g_ptr_array_index (list, 0);
- package_id = g_strdup (item->package_id);
-out:
- if (results != NULL)
- g_object_unref (results);
- if (list != NULL)
- g_ptr_array_unref (list);
- g_strfreev (names);
- return package_id;
-}
-
-/**
- * pk_debuginfo_install_remove_suffix:
- **/
-static gboolean
-pk_debuginfo_install_remove_suffix (gchar *name, const gchar *suffix)
-{
- gboolean ret = FALSE;
- guint slen, len;
-
- if (!g_str_has_suffix (name, suffix))
- goto out;
-
- /* get lengths */
- len = strlen (name);
- slen = strlen (suffix);
-
- /* same string */
- if (len == slen)
- goto out;
-
- /* truncate */
- name[len-slen] = '\0';
- ret = TRUE;
-out:
- return ret;
-}
-
-/**
- * pk_debuginfo_install_print_array:
- **/
-static void
-pk_debuginfo_install_print_array (GPtrArray *array)
-{
- guint i;
- const gchar *package_id;
- gchar **split;
-
- for (i=0; i<array->len; i++) {
- package_id = g_ptr_array_index (array, i);
- split = pk_package_id_split (package_id);
- g_print ("%i\t%s-%s(%s)\t%s\n", i+1, split[0], split[1], split[2], split[3]);
- g_strfreev (split);
- }
-}
-
-/**
- * pk_debuginfo_install_name_to_debuginfo:
- **/
-static gchar *
-pk_debuginfo_install_name_to_debuginfo (const gchar *name)
-{
- gchar *name_debuginfo = NULL;
- gchar *name_tmp = NULL;
-
- /* nothing */
- if (name == NULL)
- goto out;
-
- name_tmp = g_strdup (name);
-
- /* remove suffix */
- pk_debuginfo_install_remove_suffix (name_tmp, "-libs");
-
- /* append -debuginfo */
- name_debuginfo = g_strjoin ("-", name_tmp, "debuginfo", NULL);
-out:
- g_free (name_tmp);
- return name_debuginfo;
-}
-
-/**
- * pk_debuginfo_install_add_deps:
- **/
-static gboolean
-pk_debuginfo_install_add_deps (PkDebuginfoInstallPrivate *priv, GPtrArray *packages_search, GPtrArray *packages_results, GError **error)
-{
- gboolean ret = TRUE;
- PkResults *results = NULL;
- const PkItemPackage *item;
- gchar *package_id = NULL;
- GPtrArray *list = NULL;
- GError *error_local = NULL;
- gchar **package_ids = NULL;
- gchar *name_debuginfo;
- guint i;
- gchar **split;
- PkExitEnum exit_enum;
-
- /* get depends for them all, not adding dup's */
- package_ids = pk_ptr_array_to_strv (packages_search);
- results = pk_client_get_depends_sync (priv->client, PK_FILTER_ENUM_NONE, package_ids, TRUE, NULL, NULL, NULL, &error_local);
- if (results == NULL) {
- *error = g_error_new (1, 0, "failed to get_depends: %s", error_local->message);
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* test exit code */
- exit_enum = pk_results_get_exit_code (results);
- if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
- *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
- g_error_free (error_local);
- ret = FALSE;
- goto out;
- }
-
- /* add dependant packages */
- list = pk_results_get_package_array (results);
- for (i=0; i<list->len; i++) {
- item = g_ptr_array_index (list, 0);
- split = pk_package_id_split (item->package_id);
- /* add -debuginfo */
- name_debuginfo = pk_debuginfo_install_name_to_debuginfo (split[0]);
- g_strfreev (split);
-
- /* resolve name */
- egg_debug ("resolving: %s", name_debuginfo);
- package_id = pk_debuginfo_install_resolve_name_to_id (priv, name_debuginfo, &error_local);
- if (package_id == NULL) {
- /* TRANSLATORS: we couldn't find the package name, non-fatal */
- g_print (_("Failed to find the package %s, or already installed: %s"), name_debuginfo, error_local->message);
- g_print ("\n");
- g_error_free (error_local);
- /* don't quit, this is non-fatal */
- error = NULL;
- }
-
- /* add to array to install */
- if (package_id != NULL && !g_str_has_suffix (package_id, "installed")) {
- egg_debug ("going to try to install (for deps): %s", package_id);
- g_ptr_array_add (packages_results, g_strdup (package_id));
- }
-
- g_free (package_id);
- g_free (name_debuginfo);
- }
-out:
- if (results != NULL)
- g_object_unref (results);
- if (list != NULL)
- g_ptr_array_unref (list);
- g_strfreev (package_ids);
- return ret;
-}
-
-/**
- * pk_debuginfo_install_get_repo_list:
- **/
-static gboolean
-pk_debuginfo_install_get_repo_list (PkDebuginfoInstallPrivate *priv, GError **error)
-{
- gboolean ret = FALSE;
- PkResults *results = NULL;
- PkExitEnum exit_enum;
- guint i;
- GPtrArray *array;
- GError *error_local = NULL;
- const PkItemRepoDetail *item;
-
- /* get all repo details */
- results = pk_client_get_repo_list_sync (priv->client, PK_FILTER_ENUM_NONE, NULL, NULL, NULL, &error_local);
- if (results == NULL) {
- *error = g_error_new (1, 0, "failed to get repo list: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
- /* test exit code */
- exit_enum = pk_results_get_exit_code (results);
- if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
- g_print ("failed to get repo list: %s", pk_exit_enum_to_text (exit_enum));
- goto out;
- }
-
- /* get results */
- array = pk_results_get_repo_detail_array (results);
- for (i=0; i<array->len; i++) {
- item = g_ptr_array_index (array, i);
- if (item->enabled)
- g_ptr_array_add (priv->enabled, g_strdup (item->repo_id));
- else
- g_ptr_array_add (priv->disabled, g_strdup (item->repo_id));
- }
- ret = TRUE;
-out:
- if (results != NULL)
- g_object_unref (results);
- return ret;
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean ret;
- GError *error = NULL;
- GPtrArray *added_repos = NULL;
- GPtrArray *package_ids_recognised = NULL;
- GPtrArray *package_ids_to_install = NULL;
- guint i;
- guint retval = 0;
- gchar *package_id;
- gchar *name;
- gchar *name_debuginfo;
- gboolean verbose = FALSE;
- gboolean simulate = FALSE;
- gboolean no_depends = FALSE;
- gboolean quiet = FALSE;
- GOptionContext *context;
- const gchar *repo_id;
- gchar *repo_id_debuginfo;
- PkDebuginfoInstallPrivate *priv = NULL;
- guint step = 1;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "simulate", 's', 0, G_OPTION_ARG_NONE, &simulate,
- /* command line argument, simulate what would be done, but don't actually do it */
- _("Don't actually install any packages, only simulate what would be installed"), NULL },
- { "no-depends", 'n', 0, G_OPTION_ARG_NONE, &no_depends,
- /* command line argument, do we skip packages that depend on the ones specified */
- _("Do not install dependencies of the core packages"), NULL },
- { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet,
- /* command line argument, do we operate quietly */
- _("Do not display information or progress"), NULL },
- { NULL}
- };
-
- setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- if (! g_thread_supported ())
- g_thread_init (NULL);
- g_type_init ();
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Debuginfo Installer"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- egg_debug_init (verbose);
-
- /* no input */
- if (argv[1] == NULL) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: the use needs to specify a list of package names on the command line */
- g_print (_("ERROR: Specify package names to install."));
- g_print ("\n");
- }
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED;
- goto out;
- }
-
- /* clear private struct */
- priv = g_new0 (PkDebuginfoInstallPrivate, 1);
-
- /* store as strings */
- priv->enabled = g_ptr_array_new ();
- priv->disabled = g_ptr_array_new ();
- added_repos = g_ptr_array_new ();
- package_ids_to_install = g_ptr_array_new ();
- package_ids_recognised = g_ptr_array_new ();
-
- /* create #PkClient */
- priv->client = PK_CLIENT(pk_task_text_new ());
-
- /* use text progressbar */
- priv->progress_bar = pk_progress_bar_new ();
- pk_progress_bar_set_size (priv->progress_bar, 25);
- pk_progress_bar_set_padding (priv->progress_bar, 60);
-
- /* should be vocal? */
- if (!quiet) {
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: we are getting the list of repositories */
- g_print (_("Getting sources list"));
- g_print ("...");
- }
-
- /* get all enabled repos */
- ret = pk_debuginfo_install_get_repo_list (priv, &error);
- if (!ret) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: operation was not successful */
- g_print ("%s ", _("FAILED."));
- }
- /* TRANSLATORS: we're failed to enable the sources, detailed error follows */
- g_print ("Failed to enable sources list: %s", error->message);
- g_print ("\n");
- g_error_free (error);
-
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE;
- goto out;
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print ("%s ", _("OK."));
-
- /* TRANSLATORS: tell the user what we found */
- g_print (_("Found %i enabled and %i disabled sources."), priv->enabled->len, priv->disabled->len);
- g_print ("\n");
-
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: we're finding repositories that match out pattern */
- g_print (_("Finding debugging sources"));
- g_print ("...");
- }
-
- /* find all debuginfo repos for repos that are enabled */
- for (i=0; i<priv->enabled->len; i++) {
-
- /* is already a -debuginfo */
- repo_id = g_ptr_array_index (priv->enabled, i);
- if (g_str_has_suffix (repo_id, "-debuginfo")) {
- egg_debug ("already enabled: %s", repo_id);
- continue;
- }
-
- /* has a debuginfo repo */
- repo_id_debuginfo = g_strjoin ("-", repo_id, "debuginfo", NULL);
- ret = pk_debuginfo_install_in_array (priv->disabled, repo_id_debuginfo);
- if (ret) {
- /* add to list to change back at the end */
- g_ptr_array_add (added_repos, g_strdup (repo_id_debuginfo));
- } else {
- egg_debug ("no debuginfo repo for %s", repo_id_debuginfo);
- }
-
- g_free (repo_id_debuginfo);
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print ("%s ", _("OK."));
-
- /* TRANSLATORS: tell the user what we found */
- g_print (_("Found %i disabled debuginfo repos."), added_repos->len);
- g_print ("\n");
-
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: we're now enabling all the debug sources we found */
- g_print (_("Enabling debugging sources"));
- g_print ("...");
- }
-
- /* enable all debuginfo repos we found */
- ret = pk_debuginfo_install_enable_repos (priv, added_repos, TRUE, &error);
- if (!ret) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: operation was not successful */
- g_print ("%s ", _("FAILED."));
- }
- /* TRANSLATORS: we're failed to enable the sources, detailed error follows */
- g_print ("Failed to enable debugging sources: %s", error->message);
- g_print ("\n");
- g_error_free (error);
-
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE;
- goto out;
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print ("%s ", _("OK."));
-
- /* TRANSLATORS: tell the user how many we enabled */
- g_print (_("Enabled %i debugging sources."), added_repos->len);
- g_print ("\n");
-
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: we're now finding packages that match in all the repos */
- g_print (_("Finding debugging packages"));
- g_print ("...");
- }
-
- /* parse arguments and resolve to packages */
- for (i=1; argv[i] != NULL; i++) {
- name = pk_get_package_name_from_nevra (argv[i]);
-
- /* resolve name */
- package_id = pk_debuginfo_install_resolve_name_to_id (priv, name, &error);
- if (package_id == NULL) {
- /* TRANSLATORS: we couldn't find the package name, non-fatal */
- g_print (_("Failed to find the package %s: %s"), name, error->message);
- g_print ("\n");
- g_error_free (error);
- /* don't quit, this is non-fatal */
- error = NULL;
- }
-
- /* add to array to install */
- if (package_id != NULL) {
- egg_debug ("going to try to install: %s", package_id);
- g_ptr_array_add (package_ids_recognised, package_id);
- } else {
- goto not_found;
- }
-
- /* convert into basename */
- name_debuginfo = pk_debuginfo_install_name_to_debuginfo (name);
- egg_debug ("install %s [%s]", argv[i], name_debuginfo);
-
- /* resolve name */
- package_id = pk_debuginfo_install_resolve_name_to_id (priv, name_debuginfo, &error);
- if (package_id == NULL) {
- /* TRANSLATORS: we couldn't find the debuginfo package name, non-fatal */
- g_print (_("Failed to find the debuginfo package %s: %s"), name_debuginfo, error->message);
- g_print ("\n");
- g_error_free (error);
- /* don't quit, this is non-fatal */
- error = NULL;
- }
-
- /* add to array to install */
- if (package_id != NULL && !g_str_has_suffix (package_id, "installed")) {
- egg_debug ("going to try to install: %s", package_id);
- g_ptr_array_add (package_ids_to_install, g_strdup (package_id));
- }
-
- g_free (name_debuginfo);
-not_found:
- g_free (package_id);
- g_free (name);
- }
-
- /* no packages? */
- if (package_ids_to_install->len == 0) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: operation was not successful */
- g_print ("%s ", _("FAILED."));
- }
-
- /* TRANSLATORS: no debuginfo packages could be found to be installed */
- g_print (_("Found no packages to install."));
- g_print ("\n");
-
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_NOTHING_TO_DO;
- goto out;
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print ("%s ", _("OK."));
-
- /* TRANSLATORS: tell the user we found some packages, and then list them */
- g_print (_("Found %i packages:"), package_ids_to_install->len);
- g_print ("\n");
- }
-
- /* optional */
- if (!no_depends) {
-
- /* save for later logic */
- i = package_ids_to_install->len;
-
- /* should be vocal? */
- if (!quiet) {
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: tell the user we are searching for deps */
- g_print (_("Finding packages that depend on these packages"));
- g_print ("...");
- }
-
- ret = pk_debuginfo_install_add_deps (priv, package_ids_recognised, package_ids_to_install, &error);
- if (!ret) {
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: operation was not successful */
- g_print ("%s ", _("FAILED."));
- }
- /* TRANSLATORS: could not install, detailed error follows */
- g_print (_("Could not find dependant packages: %s"), error->message);
- g_print ("\n");
- g_error_free (error);
-
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_FIND_DEPS;
- goto out;
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print ("%s ", _("OK."));
-
- if (i < package_ids_to_install->len) {
- /* TRANSLATORS: tell the user we found some more packages */
- g_print (_("Found %i extra packages."), package_ids_to_install->len - i);
- g_print ("\n");
- } else {
- /* TRANSLATORS: tell the user we found some more packages */
- g_print (_("No extra packages required."));
- g_print ("\n");
- }
- }
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: tell the user we found some packages (and deps), and then list them */
- g_print (_("Found %i packages to install:"), package_ids_to_install->len);
- g_print ("\n");
- }
-
- /* print list */
- if (!quiet)
- pk_debuginfo_install_print_array (package_ids_to_install);
-
- /* simulate mode for testing */
- if (simulate) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: simulate mode is a testing mode where we quit before the action */
- g_print (_("Not installing packages in simulate mode"));
- g_print ("\n");
- }
- goto out;
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: we are now installing the debuginfo packages we found earlier */
- g_print (_("Installing packages"));
- g_print ("...\n");
- }
-
- /* install */
- ret = pk_debuginfo_install_packages_install (priv, package_ids_to_install, &error);
- if (!ret) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: operation was not successful */
- g_print ("%s ", _("FAILED."));
- }
- /* TRANSLATORS: could not install, detailed error follows */
- g_print (_("Could not install packages: %s"), error->message);
- g_print ("\n");
- g_error_free (error);
-
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_INSTALL;
- goto out;
- }
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print (_("OK."));
- g_print ("\n");
- }
-out:
- if (package_ids_to_install != NULL) {
- g_ptr_array_foreach (package_ids_to_install, (GFunc) g_free, NULL);
- g_ptr_array_free (package_ids_to_install, TRUE);
- }
- if (package_ids_recognised != NULL) {
- g_ptr_array_foreach (package_ids_recognised, (GFunc) g_free, NULL);
- g_ptr_array_free (package_ids_recognised, TRUE);
- }
- if (added_repos != NULL) {
-
- /* should be vocal? */
- if (!quiet) {
- /* starting this section */
- g_print ("%i. ", step++);
-
- /* TRANSLATORS: we are now disabling all debuginfo repos we previously enabled */
- g_print (_("Disabling sources previously enabled"));
- g_print ("...");
- }
- /* disable all debuginfo repos we previously enabled */
- ret = pk_debuginfo_install_enable_repos (priv, added_repos, FALSE, &error);
- if (!ret) {
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: operation was not successful */
- g_print ("%s ", _("FAILED."));
- }
- /* TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows */
- g_print (_("Could not disable the debugging sources: %s"), error->message);
- g_print ("\n");
- g_error_free (error);
-
- /* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_DISABLE;
-
- } else {
-
- /* should be vocal? */
- if (!quiet) {
- /* TRANSLATORS: all completed 100% */
- g_print ("%s ", _("OK."));
-
- /* TRANSLATORS: we disabled all the debugging repos that we enabled before */
- g_print (_("Disabled %i debugging sources."), added_repos->len);
- g_print ("\n");
- }
- }
-
- g_ptr_array_foreach (added_repos, (GFunc) g_free, NULL);
- g_ptr_array_free (added_repos, TRUE);
- }
- if (priv->enabled != NULL) {
- g_ptr_array_foreach (priv->enabled, (GFunc) g_free, NULL);
- g_ptr_array_free (priv->enabled, TRUE);
- }
- if (priv->disabled != NULL) {
- g_ptr_array_foreach (priv->disabled, (GFunc) g_free, NULL);
- g_ptr_array_free (priv->disabled, TRUE);
- }
- if (priv->client != NULL)
- g_object_unref (priv->client);
- if (priv->progress_bar != NULL)
- g_object_unref (priv->progress_bar);
- g_free (priv);
- return retval;
-}
-
diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index 81e6c19..c07ec65 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -26,9 +26,8 @@
#include <string.h>
#include <locale.h>
#include <glib/gi18n.h>
-#include <packagekit-glib/packagekit.h>
-
-#include "pk-progress-bar.h"
+#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include "egg-debug.h"
@@ -93,18 +92,6 @@ out:
}
/**
- * pk_debuginfo_install_repo_details_cb:
- **/
-static void
-pk_debuginfo_install_repo_details_cb (PkClient *client, const gchar *repo_id, const gchar *description, gboolean enabled, PkDebuginfoInstallPrivate *priv)
-{
- if (enabled)
- g_ptr_array_add (priv->enabled, g_strdup (repo_id));
- else
- g_ptr_array_add (priv->disabled, g_strdup (repo_id));
-}
-
-/**
* pk_debuginfo_install_in_array:
**/
static gboolean
@@ -133,86 +120,104 @@ pk_debuginfo_install_enable_repos (PkDebuginfoInstallPrivate *priv, GPtrArray *a
{
guint i;
gboolean ret = TRUE;
+ PkResults *results = NULL;
const gchar *repo_id;
GError *error_local = NULL;
+ PkExitEnum exit_enum;
/* enable all debuginfo repos we found */
for (i=0; i<array->len; i++) {
repo_id = g_ptr_array_index (array, i);
- /* reset client */
- ret = pk_client_reset (priv->client, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to reset: %s", error_local->message);
+ /* enable this repo */
+ results = pk_client_repo_enable_sync (priv->client, repo_id, enable, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to enable %s: %s", repo_id, error_local->message);
g_error_free (error_local);
+ ret = FALSE;
goto out;
}
- /* enable this repo */
- ret = pk_client_repo_enable (priv->client, repo_id, enable, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to enable %s: %s", repo_id, error_local->message);
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
g_error_free (error_local);
goto out;
}
+
egg_debug ("setting %s: %i", repo_id, enable);
+ g_object_unref (results);
}
out:
return ret;
}
/**
+ * pk_debuginfo_install_progress_cb:
+ **/
+static void
+pk_debuginfo_install_progress_cb (PkProgress *progress, PkProgressType type, PkDebuginfoInstallPrivate *priv)
+{
+ gint percentage;
+ gchar *package_id = NULL;
+
+ if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
+ g_object_get (progress, "percentage", &percentage, NULL);
+ pk_progress_bar_set_percentage (priv->progress_bar, percentage);
+ goto out;
+ }
+ if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
+ g_object_get (progress, "package-id", &package_id, NULL);
+ egg_debug ("now downloading %s", package_id);
+ goto out;
+ }
+out:
+ g_free (package_id);
+}
+
+/**
* pk_debuginfo_install_packages_install:
**/
static gboolean
pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArray *array, GError **error)
{
gboolean ret = TRUE;
+ PkResults *results = NULL;
gchar **package_ids;
GError *error_local = NULL;
- PkExitEnum exit;
+ PkExitEnum exit_enum;
/* mush back into a char** */
- package_ids = pk_package_ids_from_array (array);
-
- /* reset client */
- ret = pk_client_reset (priv->client, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to reset: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
+ package_ids = pk_ptr_array_to_strv (array);
/* TRANSLATORS: we are starting to install the packages */
pk_progress_bar_start (priv->progress_bar, _("Starting install"));
/* enable this repo */
- ret = pk_client_install_packages (priv->client, TRUE, package_ids, &error_local);
- if (!ret) {
- /* need to handle retry with only_trusted=FALSE */
- g_object_get (priv->client, "exit", &exit, NULL);
- if (exit == PK_EXIT_ENUM_NEED_UNTRUSTED) {
- egg_debug ("need to handle untrusted");
-
- /* retry new action with untrusted */
- pk_client_set_only_trusted (priv->client, FALSE);
- g_clear_error (&error_local);
- ret = pk_client_requeue (priv->client, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to requeue transaction: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
- } else {
- *error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
+ results = pk_task_install_packages_sync (PK_TASK(priv->client), package_ids, NULL,
+ (PkProgressCallback) pk_debuginfo_install_progress_cb, priv, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
}
/* end progressbar output */
pk_progress_bar_end (priv->progress_bar);
out:
+ if (results != NULL)
+ g_object_unref (results);
g_strfreev (package_ids);
return ret;
}
@@ -223,53 +228,52 @@ out:
static gchar *
pk_debuginfo_install_resolve_name_to_id (PkDebuginfoInstallPrivate *priv, const gchar *package_name, GError **error)
{
- gboolean ret;
- const PkPackageObj *obj;
- const PkPackageId *id;
+ PkResults *results = NULL;
+ const PkItemPackage *item;
gchar *package_id = NULL;
- PkPackageList *list = NULL;
+ GPtrArray *list = NULL;
GError *error_local = NULL;
gchar **names;
- guint len;
+ PkExitEnum exit_enum;
/* resolve takes a char** */
names = g_strsplit (package_name, ";", -1);
- /* reset client */
- ret = pk_client_reset (priv->client, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to reset: %s", error_local->message);
+ /* resolve */
+ results = pk_client_resolve_sync (priv->client, pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1), names, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", error_local->message);
g_error_free (error_local);
goto out;
}
- /* resolve */
- ret = pk_client_resolve (priv->client, pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1), names, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to resolve: %s", error_local->message);
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
g_error_free (error_local);
goto out;
}
/* check we only got one match */
- list = pk_client_get_package_list (priv->client);
- len = PK_OBJ_LIST(list)->len;
- if (len == 0) {
+ list = pk_results_get_package_array (results);
+ if (list->len == 0) {
*error = g_error_new (1, 0, "no package %s found", package_name);
goto out;
}
- if (len > 1) {
+ if (list->len > 1) {
*error = g_error_new (1, 0, "more than one package found for %s", package_name);
goto out;
}
/* get the package id */
- obj = pk_package_list_get_obj (list, 0);
- id = pk_package_obj_get_id (obj);
- package_id = pk_package_id_to_string (id);
+ item = g_ptr_array_index (list, 0);
+ package_id = g_strdup (item->package_id);
out:
+ if (results != NULL)
+ g_object_unref (results);
if (list != NULL)
- g_object_unref (list);
+ g_ptr_array_unref (list);
g_strfreev (names);
return package_id;
}
@@ -308,14 +312,14 @@ static void
pk_debuginfo_install_print_array (GPtrArray *array)
{
guint i;
- PkPackageId *id;
const gchar *package_id;
+ gchar **split;
for (i=0; i<array->len; i++) {
package_id = g_ptr_array_index (array, i);
- id = pk_package_id_new_from_string (package_id);
- g_print ("%i\t%s-%s(%s)\t%s\n", i+1, id->name, id->version, id->arch, id->data);
- pk_package_id_free (id);
+ split = pk_package_id_split (package_id);
+ g_print ("%i\t%s-%s(%s)\t%s\n", i+1, split[0], split[1], split[2], split[3]);
+ g_strfreev (split);
}
}
@@ -350,43 +354,45 @@ out:
static gboolean
pk_debuginfo_install_add_deps (PkDebuginfoInstallPrivate *priv, GPtrArray *packages_search, GPtrArray *packages_results, GError **error)
{
- gboolean ret;
- const PkPackageObj *obj;
- const PkPackageId *id;
+ gboolean ret = TRUE;
+ PkResults *results = NULL;
+ const PkItemPackage *item;
gchar *package_id = NULL;
- PkPackageList *list = NULL;
+ GPtrArray *list = NULL;
GError *error_local = NULL;
gchar **package_ids = NULL;
gchar *name_debuginfo;
- guint len;
guint i;
+ gchar **split;
+ PkExitEnum exit_enum;
- /* reset client */
- ret = pk_client_reset (priv->client, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to reset: %s", error_local->message);
+ /* get depends for them all, not adding dup's */
+ package_ids = pk_ptr_array_to_strv (packages_search);
+ results = pk_client_get_depends_sync (priv->client, PK_FILTER_ENUM_NONE, package_ids, TRUE, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to get_depends: %s", error_local->message);
g_error_free (error_local);
+ ret = FALSE;
goto out;
}
- /* get depends for them all, not adding dup's */
- package_ids = pk_package_ids_from_array (packages_search);
- ret = pk_client_get_depends (priv->client, PK_FILTER_ENUM_NONE, package_ids, TRUE, &error_local);
- if (!ret) {
- *error = g_error_new (1, 0, "failed to get_depends: %s", error_local->message);
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
g_error_free (error_local);
+ ret = FALSE;
goto out;
}
/* add dependant packages */
- list = pk_client_get_package_list (priv->client);
- len = PK_OBJ_LIST(list)->len;
- for (i=0; i<len; i++) {
- obj = pk_package_list_get_obj (list, 0);
- id = pk_package_obj_get_id(obj);
-
+ list = pk_results_get_package_array (results);
+ for (i=0; i<list->len; i++) {
+ item = g_ptr_array_index (list, 0);
+ split = pk_package_id_split (item->package_id);
/* add -debuginfo */
- name_debuginfo = pk_debuginfo_install_name_to_debuginfo (id->name);
+ name_debuginfo = pk_debuginfo_install_name_to_debuginfo (split[0]);
+ g_strfreev (split);
/* resolve name */
egg_debug ("resolving: %s", name_debuginfo);
@@ -410,110 +416,57 @@ pk_debuginfo_install_add_deps (PkDebuginfoInstallPrivate *priv, GPtrArray *packa
g_free (name_debuginfo);
}
out:
+ if (results != NULL)
+ g_object_unref (results);
if (list != NULL)
- g_object_unref (list);
+ g_ptr_array_unref (list);
g_strfreev (package_ids);
return ret;
}
/**
- * pk_debuginfo_install_progress_changed_cb:
+ * pk_debuginfo_install_get_repo_list:
**/
-static void
-pk_debuginfo_install_progress_changed_cb (PkClient *client, guint percentage, guint subpercentage,
- guint elapsed, guint remaining, PkDebuginfoInstallPrivate *priv)
+static gboolean
+pk_debuginfo_install_get_repo_list (PkDebuginfoInstallPrivate *priv, GError **error)
{
- PkRoleEnum role;
- pk_client_get_role (client, &role, NULL, NULL);
+ gboolean ret = FALSE;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ guint i;
+ GPtrArray *array;
+ GError *error_local = NULL;
+ const PkItemRepoDetail *item;
- /* ignore everything except InstallPackages */
- if (role != PK_ROLE_ENUM_INSTALL_PACKAGES) {
- egg_debug ("ignoring %s progress", pk_role_enum_to_text (role));
+ /* get all repo details */
+ results = pk_client_get_repo_list_sync (priv->client, PK_FILTER_ENUM_NONE, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to get repo list: %s", error_local->message);
+ g_error_free (error_local);
goto out;
}
- pk_progress_bar_set_percentage (priv->progress_bar, percentage);
-out:
- return;
-}
-
-/**
- * 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_debuginfo_install_package_cb:
- **/
-static void
-pk_debuginfo_install_package_cb (PkClient *client, const PkPackageObj *obj, PkDebuginfoInstallPrivate *priv)
-{
- PkRoleEnum role;
- gchar *package = NULL;
- gchar *info_pad = NULL;
- gchar *text = NULL;
-
- /* get role */
- pk_client_get_role (client, &role, NULL, NULL);
-
- /* ignore some */
- if (obj->info == PK_INFO_ENUM_FINISHED)
- goto out;
- if (role != PK_ROLE_ENUM_INSTALL_PACKAGES)
- goto out;
-
- /* make these all the same length */
- info_pad = pk_strpad (pk_info_enum_to_text (obj->info), 12);
-
- /* don't pretty print if not on console */
- if (FALSE) {
- g_print ("%s %s-%s.%s\n", info_pad, obj->id->name, obj->id->version, obj->id->arch);
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ g_print ("failed to get repo list: %s", pk_exit_enum_to_text (exit_enum));
goto out;
}
- /* pad the name-version */
- if (obj->id->version == NULL ||
- obj->id->version[0] == '\0')
- package = g_strdup (obj->id->name);
- else
- package = g_strdup_printf ("%s-%s", obj->id->name, obj->id->version);
- text = g_strdup_printf ("%s\t%s", info_pad, package);
- pk_progress_bar_start (priv->progress_bar, text);
-
+ /* get results */
+ array = pk_results_get_repo_detail_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ if (item->enabled)
+ g_ptr_array_add (priv->enabled, g_strdup (item->repo_id));
+ else
+ g_ptr_array_add (priv->disabled, g_strdup (item->repo_id));
+ }
+ ret = TRUE;
out:
- g_free (text);
- g_free (package);
- g_free (info_pad);
+ if (results != NULL)
+ g_object_unref (results);
+ return ret;
}
/**
@@ -539,8 +492,7 @@ main (int argc, char *argv[])
GOptionContext *context;
const gchar *repo_id;
gchar *repo_id_debuginfo;
- PkDebuginfoInstallPrivate _priv;
- PkDebuginfoInstallPrivate *priv = &_priv;
+ PkDebuginfoInstallPrivate *priv = NULL;
guint step = 1;
const GOptionEntry options[] = {
@@ -558,9 +510,6 @@ main (int argc, char *argv[])
{ NULL}
};
- /* clear private struct */
- memset (priv, 0, sizeof (PkDebuginfoInstallPrivate));
-
setlocale (LC_ALL, "");
bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
@@ -592,6 +541,9 @@ main (int argc, char *argv[])
goto out;
}
+ /* clear private struct */
+ priv = g_new0 (PkDebuginfoInstallPrivate, 1);
+
/* store as strings */
priv->enabled = g_ptr_array_new ();
priv->disabled = g_ptr_array_new ();
@@ -600,12 +552,7 @@ main (int argc, char *argv[])
package_ids_recognised = g_ptr_array_new ();
/* create #PkClient */
- priv->client = pk_client_new ();
- g_signal_connect (priv->client, "repo-detail", G_CALLBACK (pk_debuginfo_install_repo_details_cb), priv);
- g_signal_connect (priv->client, "progress-changed", G_CALLBACK (pk_debuginfo_install_progress_changed_cb), priv);
- g_signal_connect (priv->client, "package", G_CALLBACK (pk_debuginfo_install_package_cb), priv);
- pk_client_set_synchronous (priv->client, TRUE, NULL);
- pk_client_set_use_buffer (priv->client, TRUE, NULL);
+ priv->client = PK_CLIENT(pk_task_text_new ());
/* use text progressbar */
priv->progress_bar = pk_progress_bar_new ();
@@ -623,13 +570,20 @@ main (int argc, char *argv[])
}
/* get all enabled repos */
- ret = pk_client_get_repo_list (priv->client, PK_FILTER_ENUM_NONE, &error);
+ ret = pk_debuginfo_install_get_repo_list (priv, &error);
if (!ret) {
- g_print ("failed to get repo list: %s", error->message);
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+ /* TRANSLATORS: we're failed to enable the sources, detailed error follows */
+ g_print ("Failed to enable sources list: %s", error->message);
+ g_print ("\n");
g_error_free (error);
/* return correct failure retval */
- retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_GET_REPOLIST;
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE;
goto out;
}
@@ -973,6 +927,7 @@ out:
g_object_unref (priv->client);
if (priv->progress_bar != NULL)
g_object_unref (priv->progress_bar);
+ g_free (priv);
return retval;
}
diff --git a/contrib/debuginfo-install/pk-progress-bar.c b/contrib/debuginfo-install/pk-progress-bar.c
deleted file mode 120000
index 328b7f0..0000000
--- a/contrib/debuginfo-install/pk-progress-bar.c
+++ /dev/null
@@ -1 +0,0 @@
-../../lib/packagekit-glib2/pk-progress-bar.c
\ No newline at end of file
diff --git a/contrib/debuginfo-install/pk-progress-bar.h b/contrib/debuginfo-install/pk-progress-bar.h
deleted file mode 120000
index 154855a..0000000
--- a/contrib/debuginfo-install/pk-progress-bar.h
+++ /dev/null
@@ -1 +0,0 @@
-../../lib/packagekit-glib2/pk-progress-bar.h
\ No newline at end of file
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 5e70935..976a9be 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = python
+SUBDIRS = python packagekit-glib2
if PK_BUILD_QT
SUBDIRS += packagekit-qt
@@ -12,7 +12,3 @@ if PK_BUILD_GLIB
SUBDIRS += packagekit-glib
endif
-if PK_BUILD_GLIB2
-SUBDIRS += packagekit-glib2
-endif
-
diff --git a/lib/packagekit-glib2/pk-client-sync.c b/lib/packagekit-glib2/pk-client-sync.c
index 9278226..d12d390 100644
--- a/lib/packagekit-glib2/pk-client-sync.c
+++ b/lib/packagekit-glib2/pk-client-sync.c
@@ -343,6 +343,7 @@ pk_client_get_details_sync (PkClient *client, gchar **package_ids, GCancellable
/**
* pk_client_get_update_detail_sync:
* @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
* @cancellable: a #GCancellable or %NULL
* @progress_callback: the function to run when the progress changes
* @progress_user_data: data to pass to @progress_callback
diff --git a/lib/packagekit-glib2/pk-console-shared.c b/lib/packagekit-glib2/pk-console-shared.c
index 62b2432..04c2c61 100644
--- a/lib/packagekit-glib2/pk-console-shared.c
+++ b/lib/packagekit-glib2/pk-console-shared.c
@@ -201,3 +201,161 @@ pk_console_resolve_packages (PkClient *client, PkBitfield filter, gchar **packag
return package_ids;
}
+/**
+ * pk_status_enum_to_localised_text:
+ **/
+const gchar *
+pk_status_enum_to_localised_text (PkStatusEnum status)
+{
+ const gchar *text = NULL;
+ switch (status) {
+ case PK_STATUS_ENUM_UNKNOWN:
+ /* TRANSLATORS: This is when the transaction status is not known */
+ text = _("Unknown state");
+ break;
+ case PK_STATUS_ENUM_SETUP:
+ /* TRANSLATORS: transaction state, the daemon is in the process of starting */
+ text = _("Starting");
+ break;
+ case PK_STATUS_ENUM_WAIT:
+ /* TRANSLATORS: transaction state, the transaction is waiting for another to complete */
+ text = _("Waiting in queue");
+ break;
+ case PK_STATUS_ENUM_RUNNING:
+ /* TRANSLATORS: transaction state, just started */
+ text = _("Running");
+ break;
+ case PK_STATUS_ENUM_QUERY:
+ /* TRANSLATORS: transaction state, is querying data */
+ text = _("Querying");
+ break;
+ case PK_STATUS_ENUM_INFO:
+ /* TRANSLATORS: transaction state, getting data from a server */
+ text = _("Getting information");
+ break;
+ case PK_STATUS_ENUM_REMOVE:
+ /* TRANSLATORS: transaction state, removing packages */
+ text = _("Removing packages");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD:
+ /* TRANSLATORS: transaction state, downloading package files */
+ text = _("Downloading packages");
+ break;
+ case PK_STATUS_ENUM_INSTALL:
+ /* TRANSLATORS: transaction state, installing packages */
+ text = _("Installing packages");
+ break;
+ case PK_STATUS_ENUM_REFRESH_CACHE:
+ /* TRANSLATORS: transaction state, refreshing internal lists */
+ text = _("Refreshing software list");
+ break;
+ case PK_STATUS_ENUM_UPDATE:
+ /* TRANSLATORS: transaction state, installing updates */
+ text = _("Installing updates");
+ break;
+ case PK_STATUS_ENUM_CLEANUP:
+ /* TRANSLATORS: transaction state, removing old packages, and cleaning config files */
+ text = _("Cleaning up packages");
+ break;
+ case PK_STATUS_ENUM_OBSOLETE:
+ /* TRANSLATORS: transaction state, obsoleting old packages */
+ text = _("Obsoleting packages");
+ break;
+ case PK_STATUS_ENUM_DEP_RESOLVE:
+ /* TRANSLATORS: transaction state, checking the transaction before we do it */
+ text = _("Resolving dependencies");
+ break;
+ case PK_STATUS_ENUM_SIG_CHECK:
+ /* TRANSLATORS: transaction state, checking if we have all the security keys for the operation */
+ text = _("Checking signatures");
+ break;
+ case PK_STATUS_ENUM_ROLLBACK:
+ /* TRANSLATORS: transaction state, when we return to a previous system state */
+ text = _("Rolling back");
+ break;
+ case PK_STATUS_ENUM_TEST_COMMIT:
+ /* TRANSLATORS: transaction state, when we're doing a test transaction */
+ text = _("Testing changes");
+ break;
+ case PK_STATUS_ENUM_COMMIT:
+ /* TRANSLATORS: transaction state, when we're writing to the system package database */
+ text = _("Committing changes");
+ break;
+ case PK_STATUS_ENUM_REQUEST:
+ /* TRANSLATORS: transaction state, requesting data from a server */
+ text = _("Requesting data");
+ break;
+ case PK_STATUS_ENUM_FINISHED:
+ /* TRANSLATORS: transaction state, all done! */
+ text = _("Finished");
+ break;
+ case PK_STATUS_ENUM_CANCEL:
+ /* TRANSLATORS: transaction state, in the process of cancelling */
+ text = _("Cancelling");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_REPOSITORY:
+ /* TRANSLATORS: transaction state, downloading metadata */
+ text = _("Downloading repository information");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST:
+ /* TRANSLATORS: transaction state, downloading metadata */
+ text = _("Downloading list of packages");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_FILELIST:
+ /* TRANSLATORS: transaction state, downloading metadata */
+ text = _("Downloading file lists");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_CHANGELOG:
+ /* TRANSLATORS: transaction state, downloading metadata */
+ text = _("Downloading lists of changes");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_GROUP:
+ /* TRANSLATORS: transaction state, downloading metadata */
+ text = _("Downloading groups");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO:
+ /* TRANSLATORS: transaction state, downloading metadata */
+ text = _("Downloading update information");
+ break;
+ case PK_STATUS_ENUM_REPACKAGING:
+ /* TRANSLATORS: transaction state, repackaging delta files */
+ text = _("Repackaging files");
+ break;
+ case PK_STATUS_ENUM_LOADING_CACHE:
+ /* TRANSLATORS: transaction state, loading databases */
+ text = _("Loading cache");
+ break;
+ case PK_STATUS_ENUM_SCAN_APPLICATIONS:
+ /* TRANSLATORS: transaction state, scanning for running processes */
+ text = _("Scanning applications");
+ break;
+ case PK_STATUS_ENUM_GENERATE_PACKAGE_LIST:
+ /* TRANSLATORS: transaction state, generating a list of packages installed on the system */
+ text = _("Generating package lists");
+ break;
+ case PK_STATUS_ENUM_WAITING_FOR_LOCK:
+ /* TRANSLATORS: transaction state, when we're waiting for the native tools to exit */
+ text = _("Waiting for package manager lock");
+ break;
+ case PK_STATUS_ENUM_WAITING_FOR_AUTH:
+ /* TRANSLATORS: waiting for user to type in a password */
+ text = _("Waiting for authentication");
+ break;
+ case PK_STATUS_ENUM_SCAN_PROCESS_LIST:
+ /* TRANSLATORS: we are updating the list of processes */
+ text = _("Updating running applications");
+ break;
+ case PK_STATUS_ENUM_CHECK_EXECUTABLE_FILES:
+ /* TRANSLATORS: we are checking executable files currently in use */
+ text = _("Checking applications in use");
+ break;
+ case PK_STATUS_ENUM_CHECK_LIBRARIES:
+ /* TRANSLATORS: we are checking for libraries currently in use */
+ text = _("Checking libraries in use");
+ break;
+ default:
+ egg_warning ("status unrecognised: %s", pk_status_enum_to_text (status));
+ }
+ return text;
+}
+
diff --git a/lib/packagekit-glib2/pk-console-shared.h b/lib/packagekit-glib2/pk-console-shared.h
index 1da5336..b7d4a5a 100644
--- a/lib/packagekit-glib2/pk-console-shared.h
+++ b/lib/packagekit-glib2/pk-console-shared.h
@@ -37,6 +37,7 @@ gchar **pk_console_resolve_packages (PkClient *client,
PkBitfield filter,
gchar **packages,
GError **error);
+const gchar *pk_status_enum_to_localised_text (PkStatusEnum status);
#endif /* __PK_CONSOLE_SHARED_H */
diff --git a/lib/packagekit-glib2/pk-progress-bar.c b/lib/packagekit-glib2/pk-progress-bar.c
index d64562a..506b660 100644
--- a/lib/packagekit-glib2/pk-progress-bar.c
+++ b/lib/packagekit-glib2/pk-progress-bar.c
@@ -94,8 +94,8 @@ pk_progress_bar_draw (PkProgressBar *self, gint percentage)
for (i=0; i<self->priv->size - section; i++)
g_print (" ");
g_print ("] ");
- if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
- g_print ("(%i%%) ", self->priv->percentage);
+ if (percentage >= 0 && percentage < 100)
+ g_print ("(%i%%) ", percentage);
else
g_print (" ");
return TRUE;
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 62a3c58..5bf15d0 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,15 +2,10 @@
# 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-generate-pack-test.c
client/pk-monitor.c
-client/pk-monitor-test.c
-client/pk-tools-common.c
contrib/browser-plugin/pk-plugin-install.c
contrib/command-not-found/pk-command-not-found.c
-contrib/command-not-found/pk-command-not-found-test.c
contrib/debuginfo-install/pk-debuginfo-install.c
contrib/device-rebind/pk-device-rebind.c
data/packagekit-catalog.xml.in
commit e45956feebfbb4fe6cbdbc0982a144f528689eec
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 13:27:14 2009 +0100
trivial: Fix up a metric boatload of GtkDoc problems in the new glib2 library
diff --git a/docs/api/PackageKit-docs.sgml b/docs/api/PackageKit-docs.sgml
index 2aa1a72..1b509de 100644
--- a/docs/api/PackageKit-docs.sgml
+++ b/docs/api/PackageKit-docs.sgml
@@ -68,6 +68,9 @@
<xi:include href="xml/pk-control.xml"/>
<xi:include href="xml/pk-task.xml"/>
<xi:include href="xml/pk-desktop.xml"/>
+ <xi:include href="xml/pk-progress.xml"/>
+ <xi:include href="xml/pk-results.xml"/>
+ <xi:include href="xml/pk-package-sack.xml"/>
<xi:include href="xml/pk-service-pack.xml"/>
</reference>
@@ -81,6 +84,7 @@
<xi:include href="xml/egg-debug.xml"/>
<xi:include href="xml/pk-common.xml"/>
<xi:include href="xml/pk-enum.xml"/>
+ <xi:include href="xml/pk-item.xml"/>
<xi:include href="xml/pk-package-id.xml"/>
<xi:include href="xml/pk-package-ids.xml"/>
</reference>
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index 8ce5d71..a495015 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -33,6 +33,7 @@
#include <packagekit-glib2/pk-package-id.h>
#include <packagekit-glib2/pk-package-ids.h>
#include <packagekit-glib2/pk-package-sack.h>
+#include <packagekit-glib2/pk-progress.h>
#include <packagekit-glib2/pk-results.h>
#include <packagekit-glib2/pk-service-pack.h>
#include <packagekit-glib2/pk-task.h>
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 3754827..24da179 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -21,9 +21,9 @@
/**
* SECTION:pk-client
- * @short_description: GObject class for PackageKit client access
+ * @short_description: For creating new transactions
*
- * A nice GObject to use for accessing PackageKit asynchronously. If you're
+ * A 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
@@ -1686,6 +1686,7 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
/**
* pk_client_get_update_detail_async:
* @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
* @cancellable: a #GCancellable or %NULL
* @progress_callback: the function to run when the progress changes
* @progress_user_data: data to pass to @progress_callback
diff --git a/lib/packagekit-glib2/pk-client.h b/lib/packagekit-glib2/pk-client.h
index a77306b..d15fa1c 100644
--- a/lib/packagekit-glib2/pk-client.h
+++ b/lib/packagekit-glib2/pk-client.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-client
- * @short_description: An abstract client GObject
- */
-
#ifndef __PK_CLIENT_H
#define __PK_CLIENT_H
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 1b99e52..670dde5 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -19,6 +19,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:pk-control
+ * @short_description: For querying data about PackageKit
+ *
+ * A GObject to use for accessing PackageKit asynchronously.
+ */
+
#include "config.h"
#include <string.h>
@@ -776,6 +783,7 @@ out:
/**
* pk_control_get_time_since_action_async:
* @control: a valid #PkControl instance
+ * @role: the role enum, e.g. %PK_ROLE_ENUM_GET_UPDATES
* @cancellable: a #GCancellable or %NULL
* @callback: the function to run on completion
* @user_data: the data to pass to @callback
@@ -1066,6 +1074,7 @@ out:
/**
* pk_control_can_authorize_async:
* @control: a valid #PkControl instance
+ * @action_id: The action ID, for instance "org.freedesktop.PackageKit.install-untrusted"
* @cancellable: a #GCancellable or %NULL
* @callback: the function to run on completion
* @user_data: the data to pass to @callback
@@ -1250,17 +1259,15 @@ out:
/**
* pk_control_get_properties_async:
* @control: a valid #PkControl instance
- * @proxy_http: a HTTP proxy string such as "username:password at server.lan:8080"
- * @proxy_ftp: a FTP proxy string such as "server.lan:8080"
* @cancellable: a #GCancellable or %NULL
* @callback: the function to run on completion
* @user_data: the data to pass to @callback
*
- * Set a proxy on the PK daemon
+ * Gets global properties from the daemon.
**/
void
pk_control_get_properties_async (PkControl *control, GCancellable *cancellable,
- GAsyncReadyCallback callback, gpointer user_data)
+ GAsyncReadyCallback callback, gpointer user_data)
{
GSimpleAsyncResult *res;
PkControlState *state;
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index c32ecdb..2e01022 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-control
- * @short_description: An abstract control access GObject
- */
-
#ifndef __PK_CONTROL_H
#define __PK_CONTROL_H
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index efc14a8..31e5513 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -21,9 +21,10 @@
/**
* SECTION:pk-desktop
- * @short_description: Client singleton access to desktop metadata about a package
+ * @short_description: Find desktop metadata about a package
*
- * Desktop metadata such as icon name and localised summary may be stored here
+ * Desktop metadata such as icon name and localised summary may be stored in
+ * a local sqlite cache, and this module allows applications to query this.
*/
#include "config.h"
diff --git a/lib/packagekit-glib2/pk-item.c b/lib/packagekit-glib2/pk-item.c
index 8320b54..3a0088e 100644
--- a/lib/packagekit-glib2/pk-item.c
+++ b/lib/packagekit-glib2/pk-item.c
@@ -21,7 +21,10 @@
/**
* SECTION:pk-item
- * @short_description: TODO
+ * @short_description: A single piece of information from a transaction
+ *
+ * These objects represent single items of data from the transaction, and are
+ * often present in lists (#PkResults) or just refcounted in client programs.
*/
#include "config.h"
@@ -603,7 +606,6 @@ pk_item_message_unref (PkItemMessage *item)
/**
* pk_item_package_new:
- * @results: a valid #PkResults instance
*
* Adds a package to the results set.
*
@@ -627,7 +629,6 @@ pk_item_package_new (PkInfoEnum info_enum, const gchar *package_id, const gchar
/**
* pk_item_details_new:
- * @results: a valid #PkResults instance
*
* Adds some package details to the results set.
*
@@ -654,7 +655,6 @@ pk_item_details_new (const gchar *package_id, const gchar *license,
/**
* pk_item_update_detail_new:
- * @results: a valid #PkResults instance
*
* Adds some update details to the results set.
*
@@ -691,7 +691,6 @@ pk_item_update_detail_new (const gchar *package_id, const gchar *updates,
/**
* pk_item_category_new:
- * @results: a valid #PkResults instance
*
* Adds a category item to the results set.
*
@@ -717,7 +716,6 @@ pk_item_category_new (const gchar *parent_id, const gchar *cat_id, const gchar *
/**
* pk_item_distro_upgrade_new:
- * @results: a valid #PkResults instance
*
* Adds a distribution upgrade item to the results set.
*
@@ -741,7 +739,6 @@ pk_item_distro_upgrade_new (PkUpdateStateEnum state_enum, const gchar *name, con
/**
* pk_item_require_restart_new:
- * @results: a valid #PkResults instance
*
* Adds a require restart item to the results set.
*
@@ -764,7 +761,6 @@ pk_item_require_restart_new (PkRestartEnum restart_enum, const gchar *package_id
/**
* pk_item_transaction_new:
- * @results: a valid #PkResults instance
*
* Adds a transaction item to the results set.
*
@@ -796,7 +792,6 @@ pk_item_transaction_new (const gchar *tid, const gchar *timespec,
/**
* pk_item_files_new:
- * @results: a valid #PkResults instance
*
* Adds some files details to the results set.
*
@@ -819,7 +814,6 @@ pk_item_files_new (const gchar *package_id, gchar **files)
/**
* pk_item_repo_signature_required_new:
- * @results: a valid #PkResults instance
*
* Adds some repository signature details to the results set.
*
@@ -850,7 +844,6 @@ pk_item_repo_signature_required_new (const gchar *package_id, const gchar *repos
/**
* pk_item_eula_required_new:
- * @results: a valid #PkResults instance
*
* Adds some EULA details to the results set.
*
@@ -875,7 +868,6 @@ pk_item_eula_required_new (const gchar *eula_id, const gchar *package_id,
/**
* pk_item_media_change_required_new:
- * @results: a valid #PkResults instance
*
* Adds some media change details to the results set.
*
@@ -898,7 +890,6 @@ pk_item_media_change_required_new (PkMediaTypeEnum media_type_enum, const gchar
/**
* pk_item_repo_detail_new:
- * @results: a valid #PkResults instance
*
* Adds some repository details to the results set.
*
@@ -921,7 +912,6 @@ pk_item_repo_detail_new (const gchar *repo_id, const gchar *description, gboolea
/**
* pk_item_error_code_new:
- * @results: a valid #PkResults instance
*
* Adds some error details to the results set.
*
@@ -941,7 +931,6 @@ pk_item_error_code_new (PkErrorCodeEnum code_enum, const gchar *details)
/**
* pk_item_message_new:
- * @results: a valid #PkResults instance
*
* Adds some message details to the results set.
*
diff --git a/lib/packagekit-glib2/pk-item.h b/lib/packagekit-glib2/pk-item.h
index a0eb9e5..a441e73 100644
--- a/lib/packagekit-glib2/pk-item.h
+++ b/lib/packagekit-glib2/pk-item.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-item
- * @short_description: Abstract items
- */
-
#ifndef __PK_ITEM_H
#define __PK_ITEM_H
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index e054c0b..c3a7fb8 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -21,7 +21,11 @@
/**
* SECTION:pk-package-sack
- * @short_description: TODO
+ * @short_description: A sack of packages that can be manipulated
+ *
+ * A package sack is a set of packages that can have operations done on them
+ * in parallel. This might be adding summary text for bare package ID's, or
+ * to add package or update details.
*/
#include "config.h"
@@ -159,7 +163,6 @@ out:
* pk_package_sack_remove_package:
* @sack: a valid #PkPackageSack instance
* @package: a valid #PkPackage instance
- * @package_id: a package_id descriptor
*
* Removes a package reference from the sack. The pointers have to match exactly.
*
@@ -303,6 +306,7 @@ pk_package_sack_sort_compare_info_func (PkPackage **a, PkPackage **b)
/**
* pk_package_sack_sort_package_id:
+ * @sack: a valid #PkPackageSack instance
*
* Sorts by Package ID
**/
@@ -315,6 +319,7 @@ pk_package_sack_sort_package_id (PkPackageSack *sack)
/**
* pk_package_sack_sort_summary:
+ * @sack: a valid #PkPackageSack instance
*
* Sorts by summary
**/
@@ -327,6 +332,7 @@ pk_package_sack_sort_summary (PkPackageSack *sack)
/**
* pk_package_sack_sort_info:
+ * @sack: a valid #PkPackageSack instance
*
* Sorts by PkInfoEnum
**/
@@ -497,8 +503,10 @@ out:
/**
* pk_package_sack_merge_resolve_async:
- * @package_sack: a valid #PkPackageSack instance
+ * @sack: a valid #PkPackageSack 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: the function to run on completion
* @user_data: the data to pass to @callback
*
@@ -539,7 +547,7 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
/**
* pk_package_sack_merge_generic_finish:
- * @package_sack: a valid #PkPackageSack instance
+ * @sack: a valid #PkPackageSack instance
* @res: the #GAsyncResult
* @error: A #GError or %NULL
*
@@ -548,11 +556,11 @@ pk_package_sack_merge_resolve_async (PkPackageSack *sack, GCancellable *cancella
* Return value: %TRUE for success
**/
gboolean
-pk_package_sack_merge_generic_finish (PkPackageSack *package_sack, GAsyncResult *res, GError **error)
+pk_package_sack_merge_generic_finish (PkPackageSack *sack, GAsyncResult *res, GError **error)
{
GSimpleAsyncResult *simple;
- g_return_val_if_fail (PK_IS_PACKAGE_SACK (package_sack), FALSE);
+ g_return_val_if_fail (PK_IS_PACKAGE_SACK (sack), FALSE);
g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@@ -636,8 +644,10 @@ out:
/**
* pk_package_sack_merge_details_async:
- * @package_sack: a valid #PkPackageSack instance
+ * @sack: a valid #PkPackageSack 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: the function to run on completion
* @user_data: the data to pass to @callback
*
@@ -755,8 +765,10 @@ out:
/**
* pk_package_sack_merge_update_detail_async:
- * @package_sack: a valid #PkPackageSack instance
+ * @sack: a valid #PkPackageSack 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: the function to run on completion
* @user_data: the data to pass to @callback
*
diff --git a/lib/packagekit-glib2/pk-package-sack.h b/lib/packagekit-glib2/pk-package-sack.h
index 38325e1..d4b3762 100644
--- a/lib/packagekit-glib2/pk-package-sack.h
+++ b/lib/packagekit-glib2/pk-package-sack.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-package-sack
- * @short_description: An abstract package sack GObject
- */
-
#ifndef __PK_PACKAGE_SACK_H
#define __PK_PACKAGE_SACK_H
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index 0ffd3e8..2aa5562 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -31,6 +31,7 @@
#include <packagekit-glib2/pk-package.h>
#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-package-id.h>
#include "egg-debug.h"
@@ -46,10 +47,6 @@ static void pk_package_finalize (GObject *object);
struct _PkPackagePrivate
{
gchar *id;
- gchar *id_name;
- gchar *id_version;
- gchar *id_arch;
- gchar *id_data;
gchar *summary;
PkInfoEnum info;
gchar *license;
@@ -78,10 +75,6 @@ enum {
enum {
PROP_0,
PROP_ID,
- PROP_ID_NAME,
- PROP_ID_VERSION,
- PROP_ID_ARCH,
- PROP_ID_DATA,
PROP_SUMMARY,
PROP_INFO,
PROP_LICENSE,
@@ -110,7 +103,7 @@ G_DEFINE_TYPE (PkPackage, pk_package, G_TYPE_OBJECT)
/**
* pk_package_set_id:
* @package: a valid #PkPackage instance
- * @id: the valid package_id
+ * @package_id: the valid package_id
* @error: a %GError to put the error code and message in, or %NULL
*
* Sets the package object to have the given ID
@@ -154,10 +147,6 @@ pk_package_set_id (PkPackage *package, const gchar *package_id, GError **error)
/* save */
priv->id = g_strdup (package_id);
- priv->id_name = g_strdup (sections[0]);
- priv->id_version = g_strdup (sections[1]);
- priv->id_arch = g_strdup (sections[2]);
- priv->id_data = g_strdup (sections[3]);
out:
g_strfreev (sections);
return ret;
@@ -187,11 +176,12 @@ pk_package_get_id (PkPackage *package)
void
pk_package_print (PkPackage *package)
{
- PkPackagePrivate *priv;
+ gchar **split;
g_return_if_fail (PK_IS_PACKAGE (package));
- priv = package->priv;
- g_print ("%s-%s.%s\t%s\t%s\n", priv->id_name, priv->id_version, priv->id_arch, priv->id_data, priv->summary);
+ split = pk_package_id_split (package->priv->id);
+ g_print ("%s-%s.%s\t%s\t%s\n", split[0], split[1], split[2], split[3], package->priv->summary);
+ g_strfreev (split);
}
/**
@@ -207,18 +197,6 @@ pk_package_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
case PROP_ID:
g_value_set_string (value, priv->id);
break;
- case PROP_ID_NAME:
- g_value_set_string (value, priv->id_name);
- break;
- case PROP_ID_VERSION:
- g_value_set_string (value, priv->id_version);
- break;
- case PROP_ID_ARCH:
- g_value_set_string (value, priv->id_arch);
- break;
- case PROP_ID_DATA:
- g_value_set_string (value, priv->id_data);
- break;
case PROP_SUMMARY:
g_value_set_string (value, priv->summary);
break;
@@ -396,42 +374,6 @@ pk_package_class_init (PkPackageClass *klass)
g_object_class_install_property (object_class, PROP_ID, pspec);
/**
- * PkPackage:id-name:
- */
- pspec = g_param_spec_string ("id-name", NULL,
- "The package name, e.g. 'gnome-power-manager'",
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_ID_NAME, pspec);
-
- /**
- * PkPackage:id-version:
- */
- pspec = g_param_spec_string ("id-version", NULL,
- "The package version, e.g. '0.1.2'",
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_ID_VERSION, pspec);
-
- /**
- * PkPackage:id-arch:
- */
- pspec = g_param_spec_string ("id-arch", NULL,
- "The package architecture, e.g. 'i386'",
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_ID_ARCH, pspec);
-
- /**
- * PkPackage:id-data:
- */
- pspec = g_param_spec_string ("id-data", NULL,
- "The package data, e.g. 'fedora'",
- NULL,
- G_PARAM_READABLE);
- g_object_class_install_property (object_class, PROP_ID_DATA, pspec);
-
- /**
* PkPackage:summary:
*/
pspec = g_param_spec_string ("summary", NULL,
@@ -628,10 +570,6 @@ pk_package_finalize (GObject *object)
PkPackagePrivate *priv = package->priv;
g_free (priv->id);
- g_free (priv->id_name);
- g_free (priv->id_version);
- g_free (priv->id_arch);
- g_free (priv->id_data);
g_free (priv->summary);
g_free (priv->license);
g_free (priv->description);
@@ -693,8 +631,8 @@ pk_package_test (gpointer user_data)
egg_test_assert (test, (id == NULL));
/************************************************************/
- egg_test_title (test, "get name of unset package");
- g_object_get (package, "id-name", &text, NULL);
+ egg_test_title (test, "get id of unset package");
+ g_object_get (package, "id", &text, NULL);
egg_test_assert (test, (text == NULL));
g_free (text);
@@ -719,14 +657,14 @@ pk_package_test (gpointer user_data)
egg_test_assert (test, ret);
/************************************************************/
- egg_test_title (test, "get id of unset package");
+ egg_test_title (test, "get id of set package");
id = pk_package_get_id (package);
egg_test_assert (test, (g_strcmp0 (id, "gnome-power-manager;0.1.2;i386;fedora") == 0));
/************************************************************/
- egg_test_title (test, "get name of unset package");
- g_object_get (package, "id-name", &text, NULL);
- egg_test_assert (test, (g_strcmp0 (text, "gnome-power-manager") == 0));
+ egg_test_title (test, "get name of set package");
+ g_object_get (package, "id", &text, NULL);
+ egg_test_assert (test, (g_strcmp0 (text, "gnome-power-manager;0.1.2;i386;fedora") == 0));
g_free (text);
g_object_unref (package);
diff --git a/lib/packagekit-glib2/pk-package.h b/lib/packagekit-glib2/pk-package.h
index 762b004..fed7031 100644
--- a/lib/packagekit-glib2/pk-package.h
+++ b/lib/packagekit-glib2/pk-package.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-package
- * @short_description: An abstract package GObject
- */
-
#ifndef __PK_PACKAGE_H
#define __PK_PACKAGE_H
diff --git a/lib/packagekit-glib2/pk-progress-bar.c b/lib/packagekit-glib2/pk-progress-bar.c
index af3bf1c..d64562a 100644
--- a/lib/packagekit-glib2/pk-progress-bar.c
+++ b/lib/packagekit-glib2/pk-progress-bar.c
@@ -317,6 +317,7 @@ pk_progress_bar_init (PkProgressBar *self)
/**
* pk_progress_bar_new:
+ *
* Return value: A new progress_bar class instance.
**/
PkProgressBar *
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 38131c8..17f97d2 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -21,9 +21,10 @@
/**
* SECTION:pk-progress
- * @short_description: GObject class for PackageKit progress access
+ * @short_description: Transaction progress information
*
- * A nice GObject to use for accessing PackageKit asynchronously
+ * This GObject is available to clients to be able to query details about
+ * the transaction. All of the details on this object are stored as properties.
*/
#include "config.h"
diff --git a/lib/packagekit-glib2/pk-progress.h b/lib/packagekit-glib2/pk-progress.h
index 5fdc567..2ea62bc 100644
--- a/lib/packagekit-glib2/pk-progress.h
+++ b/lib/packagekit-glib2/pk-progress.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-progress
- * @short_description: An abstract progress GObject
- */
-
#ifndef __PK_PROGRESS_H
#define __PK_PROGRESS_H
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 9b97f03..9e1963a 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -21,7 +21,12 @@
/**
* SECTION:pk-results
- * @short_description: TODO
+ * @short_description: Transaction results
+ *
+ * This GObject allows a client program to query the results sent from
+ * PackageKit. This will include Package(), ErrorCode() and all the other types
+ * of objects. Everything is refcounted, so ensure you unref when done with the
+ * data.
*/
#include "config.h"
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index f9179a7..8925c0b 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -23,11 +23,6 @@
#error "Only <packagekit.h> can be included directly."
#endif
-/**
- * SECTION:pk-results
- * @short_description: An abstract results GObject
- */
-
#ifndef __PK_RESULTS_H
#define __PK_RESULTS_H
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
index a793259..d425bca 100644
--- a/lib/packagekit-glib2/pk-service-pack.c
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -20,6 +20,13 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:pk-service-pack
+ * @short_description: Functionality for creating and reading service packs
+ *
+ * Clients can use this GObject for reading and writing service packs.
+ */
+
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
@@ -73,7 +80,12 @@ typedef struct {
PkServicePackType type;
} PkServicePackState;
-struct PkServicePackPrivate
+/**
+ * PkServicePackPrivate:
+ *
+ * Private #PkServicePack data
+ **/
+struct _PkServicePackPrivate
{
gchar *directory;
PkClient *client;
@@ -336,6 +348,7 @@ pk_service_pack_create_temporary_directory (const gchar *prefix)
/**
* pk_service_pack_check_valid:
* @pack: a valid #PkServicePack instance
+ * @filename: the filename of the pack to check
* @error: a %GError to put the error code and message in, or %NULL
*
* Checks to see if a service pack file is valid, and usable with this system.
diff --git a/lib/packagekit-glib2/pk-service-pack.h b/lib/packagekit-glib2/pk-service-pack.h
index 836795a..73d8a64 100644
--- a/lib/packagekit-glib2/pk-service-pack.h
+++ b/lib/packagekit-glib2/pk-service-pack.h
@@ -46,8 +46,6 @@ G_BEGIN_DECLS
/* the file extension to a servicepack */
#define PK_SERVICE_PACK_FILE_EXTENSION "servicepack"
-typedef struct PkServicePackPrivate PkServicePackPrivate;
-
typedef enum
{
PK_SERVICE_PACK_ERROR_FAILED_SETUP,
@@ -58,13 +56,17 @@ typedef enum
PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE
} PkServicePackError;
-typedef struct
+typedef struct _PkServicePackPrivate PkServicePackPrivate;
+typedef struct _PkServicePack PkServicePack;
+typedef struct _PkServicePackClass PkServicePackClass;
+
+struct _PkServicePack
{
GObject parent;
PkServicePackPrivate *priv;
-} PkServicePack;
+};
-typedef struct
+struct _PkServicePackClass
{
GObjectClass parent_class;
/* Padding for future expansion */
@@ -72,7 +74,7 @@ typedef struct
void (*_pk_reserved2) (void);
void (*_pk_reserved3) (void);
void (*_pk_reserved4) (void);
-} PkServicePackClass;
+};
GQuark pk_service_pack_error_quark (void);
GType pk_service_pack_error_get_type (void);
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 36b47d2..2ca0aeb 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -19,6 +19,12 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:pk-task
+ * @short_description: An abstract package task GObject, dealing with unsigned
+ * transactions, GPG keys and EULA requests.
+ */
+
#include "config.h"
#include <gio/gio.h>
@@ -680,7 +686,10 @@ out:
/**
* pk_task_install_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: the function to run on completion
* @user_data: the data to pass to @callback
*
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 768459c..d153ea8 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -23,12 +23,6 @@
#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
commit f40d7ca5b7c6378ec4fe6b56bb25a3201ddec8cf
Author: anipeter <anipeter at fedoraproject.org>
Date: Wed Sep 9 11:43:16 2009 +0000
Sending translation for Malayalam
diff --git a/po/ml.po b/po/ml.po
index 00a1238..a151d77 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.ml\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-05 08:29+0000\n"
-"PO-Revision-Date: 2009-09-05 19:25+0530\n"
+"POT-Creation-Date: 2009-09-09 08:33+0000\n"
+"PO-Revision-Date: 2009-09-09 17:12+0530\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -18,106 +18,106 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:143
msgid "Transaction"
msgstr "à´à´à´ªà´¾à´àµàµ"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:145
msgid "System time"
msgstr "സിസàµà´±àµà´±à´ സമയà´"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "Succeeded"
msgstr "à´à´à´ªà´¾à´àµàµ à´ªàµà´°àµâà´¤àµà´¤à´¿à´¯à´¾à´¯à´¿"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "True"
msgstr "True"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "False"
msgstr "False"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:149
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "à´±àµà´³àµâ"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
msgid "Duration"
msgstr "സമയà´"
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
msgid "(seconds)"
msgstr "(à´¸àµà´àµà´à´¨àµâà´¡àµà´à´³àµâ)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:158
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "à´à´®à´¾à´¨àµâഡൠലàµà´¨àµâ"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:160
msgid "User ID"
msgstr "à´à´ªà´¯àµà´àµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:167
msgid "Username"
msgstr "à´à´ªà´¯àµà´àµà´¤àµà´¨à´¾à´®à´"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:171
msgid "Real name"
msgstr "യഥാരàµâà´¤àµà´¥ à´ªàµà´°àµàµ"
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:179
msgid "Affected packages:"
msgstr "ബാധിà´àµà´ പാà´àµà´àµà´àµà´à´³àµâ:"
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:181
msgid "Affected packages: None"
msgstr "ബാധിà´àµà´ പാà´àµà´àµà´àµà´à´³àµâ: à´à´¨àµà´¨àµà´®à´¿à´²àµà´²"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336 ../lib/packagekit-glib2/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´£àµà´à´¤àµà´£àµà´àµàµ."
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339 ../lib/packagekit-glib2/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´£àµà´à´¤à´¾à´£àµàµ:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342 ../lib/packagekit-glib2/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ പരിഷàµà´à´°à´¿à´àµà´àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345 ../lib/packagekit-glib2/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´µàµà´£àµà´àµà´ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348 ../lib/packagekit-glib2/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "താഴൠപറയàµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ à´¡àµà´£àµâà´àµà´°àµà´¡àµ à´àµà´¯àµà´¯àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:201
msgid "Distribution"
msgstr "വിതരണà´"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:203
msgid "Type"
msgstr "തരà´"
@@ -125,45 +125,46 @@ msgstr "തരà´"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:205 ../client/pk-console-test.c:226
msgid "Summary"
msgstr "സമàµà´®à´±à´¿"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:215
msgid "Category"
msgstr "വിà´à´¾à´à´"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:217
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:220
msgid "Parent"
msgstr "à´ªàµà´°à´¨àµà´±àµ"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:223
msgid "Name"
msgstr "à´ªàµà´°àµàµ"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:229
msgid "Icon"
msgstr "à´à´¿à´¹àµà´¨à´"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:243
msgid "Details about the update:"
msgstr "പരിഷàµà´à´°à´£à´àµà´à´³àµâ à´¸à´à´¬à´¨àµà´§à´¿à´àµà´àµà´³àµà´³ വിശദാà´à´¶à´àµà´à´³àµâ:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
-#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:249
+#: ../lib/packagekit-glib2/pk-task-text.c:101
+#: ../lib/packagekit-glib2/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
@@ -171,121 +172,121 @@ msgstr[0] "പാà´àµà´àµà´àµ"
msgstr[1] "പാà´àµà´àµà´àµà´à´³àµâ"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:252
msgid "Updates"
msgstr "പരിഷàµà´à´°à´£à´àµà´à´³àµâ"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:256
msgid "Obsoletes"
msgstr "à´µàµà´£àµà´àµà´¨àµà´¨àµàµ à´µà´àµà´à´µ"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
-#: ../client/pk-task-text.c:154
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:260
+#: ../lib/packagekit-glib2/pk-task-text.c:154
msgid "Vendor"
msgstr "à´à´àµà´à´µà´à´àµà´à´¾à´°à´¨àµâ"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:264
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:268
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:272
msgid "Restart"
msgstr "à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:276
msgid "Update text"
msgstr "പരിഷàµà´à´°à´¿à´àµà´ വാà´à´à´"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:280
msgid "Changes"
msgstr "മാറàµà´±à´àµà´à´³àµâ"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:284
msgid "State"
msgstr "à´
വസàµà´¥"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:289
msgid "Issued"
msgstr "നലàµâà´à´¿à´¯à´¤àµàµ"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:294
msgid "Updated"
msgstr "പരിഷàµà´à´°à´¿à´àµà´à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:312
msgid "Enabled"
msgstr "à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¨ à´¸à´àµà´à´"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:315
msgid "Disabled"
msgstr "à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¨ രഹിതà´"
-#: ../client/pk-console.c:555 ../client/pk-console.c:557
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "ശതമാനà´"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "à´
പരിà´à´¿à´¤à´"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:337
msgid "System restart required by:"
msgstr "സിസàµà´±àµà´±à´ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´¨àµà´¨à´¤àµàµ à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:340
msgid "Session restart required:"
msgstr "à´¸àµà´·à´¨àµâ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´£àµà´à´¤àµà´£àµà´àµàµ:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:343
msgid "System restart (security) required by:"
msgstr "സിസàµà´±àµà´±à´ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´¨àµà´¨à´¤àµàµ (à´¸àµà´°à´àµà´·à´¾ പരിഷàµà´à´°à´£à´) à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:346
msgid "Session restart (security) required:"
msgstr "à´¸àµà´·à´¨àµâ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´¨àµà´¨à´¤àµàµ (à´¸àµà´°à´àµà´·à´¾ പരിഷàµà´à´°à´£à´) à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:349
msgid "Application restart required by:"
msgstr "à´ªàµà´°à´¯àµà´à´ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´£àµà´à´¤àµàµ à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´¤àµàµ:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:538
msgid "Please restart the computer to complete the update."
msgstr "പരിഷàµà´à´°à´£à´àµà´à´³àµâ à´ªàµà´°àµâà´¤àµà´¤à´¿à´¯à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ദയവായി നിà´àµà´à´³àµà´àµ à´à´®àµà´ªàµà´¯àµà´àµà´à´°àµâ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:541
msgid "Please logout and login to complete the update."
msgstr "പരിഷàµà´à´°à´£à´àµà´à´³àµâ à´ªàµà´°àµâà´¤àµà´¤à´¿à´¯à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ ദയവായി à´²àµà´àµà´àµà´àµ à´àµà´¯àµà´¤àµ à´²àµà´à´¿à´¨àµâ à´àµà´¯àµà´¯àµà´."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "à´ à´ªàµà´°à´¯àµà´à´ à´à´ªà´¯àµà´à´¿à´àµà´àµà´£àµà´à´ªàµà´ªàµà´³àµâ തനàµà´¨àµ à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:544
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -294,7 +295,7 @@ msgstr ""
"à´µàµà´£àµà´àµà´ à´à´°à´à´à´¿à´àµà´àµà´."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:547
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -303,442 +304,443 @@ msgstr ""
"à´àµà´¯àµà´¯àµà´."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "%s à´à´¨àµà´¨ പാà´àµà´àµà´àµ നിലവിലàµâ à´à´®àµà´ªàµà´¯àµà´àµà´à´±à´¿à´²àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ."
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:817
#, 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: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
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "à´à´¨àµà´¤à´°à´¿à´ പിശà´àµ: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../lib/packagekit-glib2/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "മാറàµà´±à´àµà´à´³àµà´®à´¾à´¯à´¿ à´®àµà´®àµà´ªàµà´àµà´àµ à´ªàµà´à´£à´®àµ?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:881 ../client/pk-console.c:953
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "പാà´àµà´àµà´àµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯à´²àµâ റദàµà´¦à´¾à´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´²àµà´²: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ ഫയലàµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´²àµà´²: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ %s à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ പാà´àµà´àµà´àµà´à´³àµâ à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´²àµà´²: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "à´àµà´àµà´¤à´²àµâ പാà´àµà´àµà´àµà´à´³àµà´®à´¾à´¯à´¿ à´®àµà´®àµà´ªàµà´àµà´àµ à´ªàµà´à´£à´®àµ?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1109
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "പാà´àµà´àµà´àµ à´¨àµà´àµà´à´ à´àµà´¯àµà´¯à´²àµâ റദàµà´¦à´¾à´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "%s പാà´àµà´àµà´àµ à´²à´àµà´¯à´®à´²àµà´²à´¾à´¤àµà´¤à´¤à´¿à´¨à´¾à´²àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ à´
à´¤àµàµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ പാà´àµà´àµà´àµà´à´³àµâ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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
+#: ../client/pk-console.c:1270
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:1304 ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "%s-à´¨àµàµ à´à´µà´¶àµà´¯à´®àµà´³àµà´³à´µ à´²à´àµà´¯à´®à´¾à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "%s-à´¨àµà´³àµà´³ ഡിപനàµâà´¡à´¨àµâസിà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "%s-à´¨àµà´³àµà´³ പാà´àµà´àµà´à´¿à´¨àµà´±àµ വിശദാà´à´¶à´àµà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "%s-à´¨àµà´³àµà´³ ഫയലàµà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1401
#, 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:1424
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "ഫയലàµâ നിലവിലàµà´£àµà´àµàµ: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "പാà´àµà´àµà´àµ à´¸à´à´¬à´¨àµà´§à´¿à´àµà´àµà´³àµà´³ വിവരഠലà´àµà´¯à´®à´¾à´àµà´¨àµà´¨àµ"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1446
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "à´¡à´¿à´¸àµà´à´¿à´²àµà´àµà´àµàµ à´¸àµà´àµà´·à´¿à´àµà´àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "ഫയലàµâ നിലവിലിലàµà´²: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "à´àµà´°àµâà´àµà´àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµâ"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµâ"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "à´ªàµà´¤à´¿à´¯ പാà´àµà´àµà´àµà´à´³àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµâ"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "പാà´àµà´àµà´à´¿à´¨à´¾à´¯à´¿ à´¤àµà´°à´¯àµà´¨àµà´¨àµ: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "à´²à´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, 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:1627
+#: ../client/pk-console.c:1626
#: ../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:1663
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "%s-à´¨àµàµ പരിഷàµà´à´°à´£à´¤àµà´¤à´¿à´¨àµà´³àµà´³ വിശദാà´à´¶à´àµà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1670
#, 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:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "പിശà´àµ:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:366
msgid "Package description"
msgstr "പാà´àµà´àµà´àµ വിശദാà´à´¶à´àµà´à´³àµâ"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:384
msgid "Message:"
msgstr "സനàµà´¦àµà´¶à´:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:403
msgid "Package files"
msgstr "പാà´àµà´àµà´à´¿à´²àµà´³àµà´³ ഫയലàµà´à´³àµâ"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:398
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:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "à´¸à´à´à´°à´£à´¿à´¯àµà´àµà´àµà´³àµà´³ à´à´¿à´ªà´¿à´à´¿ à´à´ªàµà´ªàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800 ../lib/packagekit-glib2/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "à´ à´à´ªàµà´ªàµ നിà´àµà´à´³àµâ à´
à´à´àµà´à´°à´¿à´àµà´àµà´¨àµà´¨àµà´µàµ?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804 ../lib/packagekit-glib2/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "à´à´ªàµà´ªàµ à´¸àµà´µàµà´à´°à´¿à´àµà´àµà´¨àµà´¨à´¿à´²àµà´²."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "à´à´ªà´¯àµà´àµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´²àµà´¸à´¨àµâസൠസമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1846
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "നിà´àµà´à´³àµâ à´ à´²àµà´¸à´¨àµâസൠസàµà´µàµà´à´°à´¿à´àµà´àµà´¨àµà´¨àµà´µàµ?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1850
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "à´²àµà´¸à´¨àµâസൠനിഷàµà´§à´¿à´àµà´à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:816
msgid "The daemon crashed mid-transaction!"
msgstr "à´¡àµà´®à´£àµâ à´¤à´à´°àµâà´¨àµà´¨à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:850
msgid "PackageKit Console Interface"
msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±àµ à´à´£àµâà´¸àµà´³àµâ à´à´¨àµà´±à´°àµâà´«àµà´¯à´¿à´¸àµ"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:852
msgid "Subcommands:"
msgstr "സബàµà´à´®à´¾à´¨àµâà´¡àµà´à´³àµâ:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
-#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
-#: ../client/pk-monitor-test.c:282
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:966
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:222
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found-test.c:614
#: ../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:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:969
#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "à´ªàµà´°àµà´àµà´°à´¾à´®à´¿à´¨àµà´±àµ പതിപàµà´ªàµ à´à´¾à´£à´¿à´àµà´à´¶àµà´·à´ à´ªàµà´±à´¤àµà´¤àµ à´à´à´àµà´àµà´"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:972
msgid "Set the filter, e.g. installed"
msgstr "à´«à´¿à´²àµââà´±àµà´±à´°àµâ à´àµà´°à´®à´¿à´à´°à´¿à´àµà´àµà´, e.g. à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:975
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:2063
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "സിസàµà´±àµà´±à´ à´¡àµà´¬à´¸à´¿à´²àµà´àµà´àµ à´à´£à´àµà´àµ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´²àµà´²."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1052
msgid "The filter specified was invalid"
msgstr "നലàµâà´à´¿à´¯ à´«à´¿à´²àµââà´±àµà´±à´°àµâ à´¤àµà´±àµà´±à´¾à´£àµàµ"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1071
msgid "A search type is required, e.g. name"
msgstr "à´¤àµà´°à´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ തരഠà´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ, à´à´¦à´¾. à´ªàµà´°àµàµ"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
-#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1078 ../client/pk-console-test.c:1090
+#: ../client/pk-console-test.c:1102 ../client/pk-console-test.c:1114
msgid "A search term is required"
msgstr "à´¤àµà´°à´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ വാà´à´à´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1124
msgid "Invalid search type"
msgstr "à´¤àµà´±àµà´±à´¾à´¯ തരതàµà´¤à´¿à´²àµà´³àµà´³ à´¤àµà´°à´àµà´à´¿à´²àµâ"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ പാà´àµà´àµà´à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ à´
à´²àµà´²àµà´àµà´à´¿à´²àµâ ഫയലിനàµà´±àµ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1151
msgid "A type, key_id and package_id are required"
msgstr "à´à´¤àµ തരà´, key_id, package_id à´à´¨àµà´¨à´¿à´µ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1162
msgid "A package name to remove is required"
msgstr "à´¨àµà´àµà´à´ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1171
msgid "A destination directory and the package names to download are required"
msgstr "à´à´¤àµàµ ഡയറà´àµà´à´±à´¿ à´à´¨àµà´¨àµà´ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´àµà´à´³àµà´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1178
msgid "Directory not found"
msgstr "ഡയറà´àµà´à´±à´¿ à´²à´àµà´¯à´®à´²àµà´²"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1187
msgid "A licence identifier (eula-id) is required"
msgstr "à´²àµà´¸à´¨àµâസൠà´à´¡à´¨àµà´±à´¿à´«à´¯à´°àµâ (eula-id) à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1198
msgid "A transaction identifier (tid) is required"
msgstr "à´à´°àµ à´àµà´°à´¾à´¨àµâസാà´àµà´·à´¨àµâ à´à´¡à´¨àµà´±à´¿à´«à´¯à´°àµâ (tid) à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1219
msgid "A package name to resolve is required"
msgstr "റിസàµà´³àµâവൠà´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1230 ../client/pk-console-test.c:1241
msgid "A repository name is required"
msgstr "à´¸à´à´à´°à´£à´¿à´¯àµà´àµà´àµà´³àµà´³ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1252
msgid "A repo name, parameter and value are required"
msgstr "à´à´°àµ റിപàµà´ªàµà´¯àµà´àµ à´ªàµà´°àµà´ പരാമàµà´±àµà´±à´°àµà´ à´®àµà´²àµà´²àµà´¯à´µàµà´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1269
msgid "An action, e.g. 'update-system' is required"
msgstr "à´à´°àµ à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¿ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ, à´à´¦à´¾. 'update-system'"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1276
msgid "A correct role is required"
msgstr "ശരിയായ à´±àµà´³àµâ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:931
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:2352 ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
-#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
-#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1286
+#: ../client/pk-console-test.c:1301 ../client/pk-console-test.c:1310
+#: ../client/pk-console-test.c:1330 ../client/pk-console-test.c:1339
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:285
msgid "A package name is required"
msgstr "പാà´àµà´àµà´à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1319
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:2409
+#: ../client/pk-console.c:2408
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:2419 ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "ലിസàµà´±àµà´±à´¾à´¯à´¿ à´¤àµà´±à´àµà´àµà´µà´¾à´¨àµà´³àµà´³ ഫയലിനàµà´±àµ നാമഠà´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1399
#, c-format
msgid "Option '%s' is not supported"
msgstr "'%s' à´à´¨àµà´¨ à´à´àµà´à´¿à´à´¤àµà´¤à´¿à´¨àµà´³àµà´³ പിനàµà´¤àµà´£ à´²à´àµà´¯à´®à´²àµà´²"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "à´ à´ªàµà´°à´àµà´°à´¿à´¯ à´¨à´à´ªàµà´ªà´¿à´²à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´¤àµà´±àµà´±à´¾à´¯ à´
à´¨àµà´®à´¤à´¿à´à´³àµâ"
@@ -746,34 +748,24 @@ msgstr "à´ à´ªàµà´°à´àµà´°à´¿à´¯ à´¨à´à´ªàµà´ªà´¿à´²à´¾à´àµà´àµà´¨àµà
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1411
msgid "Command failed"
msgstr "നിരàµâà´¦àµà´¦àµà´¶à´ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "à´à´¨àµà´¨à´¿à´²àµâ à´àµà´àµà´¤à´²àµâ à´àµà´°àµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "ദയവായി ശരിയായ പാà´àµà´àµà´àµ à´¤àµà´°à´àµà´àµà´àµà´àµà´àµà´: "
-
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734
+#: ../client/pk-console-test.c:568
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "à´²à´àµà´¯à´®à´¾à´¯ പാà´àµà´àµà´àµà´à´³àµâ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762
+#: ../client/pk-console-test.c:596
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¤ പാà´àµà´àµà´àµà´à´³àµâ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
+#: ../client/pk-console-test.c:624 ../client/pk-console-test.c:652
#, c-format
msgid "This tool could not find the package: %s"
msgstr "പാà´àµà´àµà´àµ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
@@ -782,137 +774,145 @@ msgstr "പാà´àµà´àµà´àµ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´µà´¾à´
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
-#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
-#: ../client/pk-console-test.c:950
+#: ../client/pk-console-test.c:680 ../client/pk-console-test.c:708
+#: ../client/pk-console-test.c:736 ../client/pk-console-test.c:764
+#: ../client/pk-console-test.c:792
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "à´à´²àµà´²à´¾ പാà´àµà´àµà´àµà´à´³àµà´ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´µà´¾à´¨àµâ à´ à´ªàµà´°à´¯àµà´à´¤àµà´¤à´¿à´¨àµàµ സാധàµà´¯à´®à´¾à´¯à´¿à´²àµà´²: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1000
+msgid "Failed to contact PackageKit"
+msgstr "PackageKit-മായി ബനàµà´§à´ªàµà´ªàµà´àµà´µà´¾à´¨àµâ സാധിà´àµà´à´¿à´²àµà´²"
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1261
+#: ../client/pk-console-test.c:1130
msgid "A package name to install is required"
msgstr "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ പാà´àµà´àµà´à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1270
+#: ../client/pk-console-test.c:1139
msgid "A filename to install is required"
msgstr "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´µà´¾à´¨àµà´³àµà´³ ഫയലിനàµà´±àµ à´ªàµà´°àµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "പാà´àµà´àµà´àµà´à´³àµâ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "à´¡à´¿à´ªàµà´¨àµâà´¡à´¨àµâസിà´à´³àµâ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:190
+#: ../client/pk-generate-pack.c:188 ../client/pk-generate-pack-test.c:225
msgid "Set the file name of dependencies to be excluded"
msgstr "à´àµà´°àµâà´àµà´àµà´£àµà´à´¾à´¤àµà´¤ ഡിപനàµâഡസിà´à´³àµà´àµ ഫയലàµâ നാമഠസà´àµà´à´®à´¾à´àµà´àµà´"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:193
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:228
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:196
+#: ../client/pk-generate-pack.c:194 ../client/pk-generate-pack-test.c:231
msgid "The package to be put into the service pack"
msgstr "സരàµâà´µàµà´¸àµ പാà´àµà´à´¿à´²àµà´àµà´àµ à´àµà´°àµâà´àµà´àµà´£àµà´ പാà´àµà´àµà´àµ"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:199
+#: ../client/pk-generate-pack.c:197 ../client/pk-generate-pack-test.c:234
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:227
+#: ../client/pk-generate-pack.c:225 ../client/pk-generate-pack-test.c:269
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:235
+#: ../client/pk-generate-pack.c:233 ../client/pk-generate-pack-test.c:277
msgid "Both options selected."
msgstr "à´°à´£àµà´àµàµ à´à´àµà´à´¿à´à´àµà´à´³àµà´ à´¤àµà´°à´àµà´àµà´àµà´¤àµà´¤à´¿à´àµà´à´¿à´²àµà´²."
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:251
+#: ../client/pk-generate-pack.c:249 ../client/pk-generate-pack-test.c:293
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:269 ../client/pk-generate-pack.c:275
+#. 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-test.c:321 ../client/pk-generate-pack-test.c:327
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:282
+#: ../client/pk-generate-pack.c:280 ../client/pk-generate-pack-test.c:334
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
msgstr "libarchive പിനàµà´¤àµà´£ à´à´²àµà´²à´¾à´¤àµ PackageKit à´à´£àµà´à´¾à´àµà´à´¿à´¯à´¤à´¿à´¨à´¾à´²àµâ, സരàµâà´µàµà´¸àµ പാà´àµà´àµà´à´³àµâ à´²à´àµà´¯à´®à´¾à´àµà´¨àµà´¨à´¤à´²àµà´²."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:293
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:345
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:309
+#: ../client/pk-generate-pack.c:307 ../client/pk-generate-pack-test.c:361
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:312
+#: ../client/pk-generate-pack.c:310 ../client/pk-generate-pack-test.c:364
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:325
+#: ../client/pk-generate-pack.c:323 ../client/pk-generate-pack-test.c:377
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:335
+#: ../client/pk-generate-pack.c:333 ../client/pk-generate-pack-test.c:389
msgid "Failed to open package list."
msgstr "പാà´àµà´àµà´àµà´à´³àµà´àµ à´ªà´àµà´à´¿à´ à´¤àµà´±à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:346
+#: ../client/pk-generate-pack.c:344 ../client/pk-generate-pack-test.c:398
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:350
+#: ../client/pk-generate-pack.c:348 ../client/pk-generate-pack-test.c:402
#, 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:367
+#: ../client/pk-generate-pack.c:365 ../client/pk-generate-pack-test.c:410
msgid "Creating service pack..."
msgstr "സരàµâà´µàµà´¸àµ പാà´àµà´àµ à´à´£àµà´à´¾à´àµà´àµà´¨àµà´¨àµ..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:425
#, c-format
msgid "Service pack created '%s'"
msgstr "'%s' സരàµâà´µàµà´¸àµ പാà´àµà´àµ à´à´£àµà´à´¾à´àµà´à´¿à´¯à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:379
+#: ../client/pk-generate-pack.c:377 ../client/pk-generate-pack-test.c:430
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' à´à´£àµà´à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´: %s"
@@ -934,104 +934,30 @@ msgstr "à´à´à´ªà´¾à´àµà´à´³àµà´àµ à´ªà´àµà´à´¿à´ à´²à´àµà´¯à´®à´¾à
msgid "Failed to get daemon state"
msgstr "à´¡àµà´®à´£àµâ à´
വസàµà´¥ à´²à´àµà´¯à´®à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´"
-#. ask the user
-#: ../client/pk-task-text.c:64
-msgid "Do you want to allow installing of unsigned software?"
-msgstr "à´à´ªàµà´ªà´¿à´²àµà´²à´¾à´¤àµà´¤ à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ നിà´àµà´à´³àµâà´àµà´àµàµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯à´£à´®àµ?"
-
-#: ../client/pk-task-text.c:68
-msgid "The unsigned software will not be installed."
-msgstr "à´à´ªàµà´ªà´¿à´àµà´à´¿à´àµà´à´¿à´²àµà´²à´¾à´¤àµà´¤ à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´²àµà´²."
-
-#: ../client/pk-task-text.c:100
-msgid "Software source signature required"
-msgstr "à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´¸àµà´´àµà´¸àµ à´à´ªàµà´ªàµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
-
-#: ../client/pk-task-text.c:102
-msgid "Software source name"
-msgstr "à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´¸àµà´´àµà´¸à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ"
-
-#: ../client/pk-task-text.c:103
-msgid "Key URL"
-msgstr "à´àµ à´¯àµà´à´°àµâà´à´²àµâ"
-
-#: ../client/pk-task-text.c:104
-msgid "Key user"
-msgstr "à´àµ à´à´ªà´¯àµà´àµà´¤à´¾à´µàµàµ"
-
-#: ../client/pk-task-text.c:105
-msgid "Key ID"
-msgstr "à´àµ ID"
-
-#: ../client/pk-task-text.c:106
-msgid "Key fingerprint"
-msgstr "à´àµ വിരലà´à´¯à´¾à´³à´"
-
-#: ../client/pk-task-text.c:107
-msgid "Key Timestamp"
-msgstr "à´àµ à´àµà´à´¸àµà´à´¾à´®àµà´ªàµ"
-
-#: ../client/pk-task-text.c:151
-msgid "End user licence agreement required"
-msgstr "à´à´ªà´¯àµà´àµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´²àµà´¸à´¨àµâസൠസമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
-
-#: ../client/pk-task-text.c:152
-msgid "EULA ID"
-msgstr "EULA ID"
-
-#: ../client/pk-task-text.c:155
-msgid "Agreement"
-msgstr "സമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´"
-
-#. ask the user
-#: ../client/pk-task-text.c:161
-msgid "Do you accept this agreement?"
-msgstr "ഠസമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ നിà´àµà´à´³àµâ à´
à´à´àµà´à´°à´¿à´àµà´àµà´¨àµà´¨àµà´µàµ?"
-
-#: ../client/pk-task-text.c:165
-msgid "The agreement was not accepted."
-msgstr "സമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ à´¸àµà´µàµà´à´°à´¿à´àµà´àµà´¨àµà´¨à´¿à´²àµà´²."
-
-#: ../client/pk-task-text.c:194
-msgid "Media change required"
-msgstr "à´®àµà´¡à´¿à´¯à´¾ മാറàµà´±àµà´£àµà´à´¤àµà´£àµà´àµàµ"
-
-#: ../client/pk-task-text.c:195
-msgid "Media type"
-msgstr "à´®àµà´¡à´¿à´¯à´¾ തരà´"
-
-#: ../client/pk-task-text.c:196
-msgid "Media ID"
-msgstr "à´®àµà´¡à´¿à´¯à´¾ ID "
-
-#: ../client/pk-task-text.c:197
-msgid "Text"
-msgstr "വാà´àµà´¯à´"
-
-#. ask the user
-#: ../client/pk-task-text.c:201
-msgid "Please insert the correct media"
-msgstr "ദയവായി ശരിയായ à´®àµà´¡à´¿à´¯à´¾ à´¤àµà´°à´àµà´àµà´àµà´àµà´àµà´"
-
-#: ../client/pk-task-text.c:205
-msgid "The correct media was not inserted."
-msgstr "ശരിയായ à´®àµà´¡à´¿à´¯à´¾ നലàµâà´à´¿à´¯à´¿à´àµà´à´¿à´²àµà´²."
-
-#: ../client/pk-task-text.c:303
-msgid "The transaction did not proceed."
-msgstr "à´à´à´ªà´¾à´àµàµ à´¤àµà´à´°àµâà´¨àµà´¨à´¿à´²àµà´²."
-
-#: ../client/pk-text.c:50
+#: ../client/pk-tools-common.c:51
+#: ../lib/packagekit-glib2/pk-console-shared.c:53
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "ദയവായി 1 à´®àµà´¤à´²àµâ %i വരàµà´¯àµà´³àµà´³ à´à´°àµ à´
à´àµà´à´ നലàµâà´àµà´: "
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, 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:200
+#: ../lib/packagekit-glib2/pk-console-shared.c:153
+msgid "More than one package matches:"
+msgstr "à´à´¨àµà´¨à´¿à´²àµâ à´àµà´àµà´¤à´²àµâ à´àµà´°àµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:207
+#: ../lib/packagekit-glib2/pk-console-shared.c:162
+msgid "Please choose the correct package: "
+msgstr "ദയവായി ശരിയായ പാà´àµà´àµà´àµ à´¤àµà´°à´àµà´àµà´àµà´àµà´àµà´: "
+
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -1088,90 +1014,110 @@ msgstr "à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ..
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
+#: ../contrib/command-not-found/pk-command-not-found-test.c:358
msgid "Downloading details about the software sources."
msgstr "à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´¸àµà´´àµà´¸àµà´à´³àµà´ªàµà´ªà´±àµà´±à´¿à´¯àµà´³àµà´³ വിവരà´àµà´à´³àµâ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ."
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
+#: ../contrib/command-not-found/pk-command-not-found-test.c:362
msgid "Downloading filelists (this may take some time to complete)."
msgstr "ഫയലàµâലിസàµà´±àµà´±àµà´à´³àµâ à´¡àµà´£àµâà´²àµà´àµ à´àµà´¯àµà´¯àµà´¨àµà´¨àµ (à´à´¤à´²àµâപഠസമയമàµà´àµà´àµà´àµà´¨àµà´¨àµ)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
+#: ../contrib/command-not-found/pk-command-not-found-test.c:366
msgid "Waiting for package manager lock."
msgstr "പാà´àµà´àµà´àµ മാനàµà´à´°àµâ à´²àµà´àµà´à´¿à´¨à´¾à´¯à´¿ à´à´¾à´¤àµà´¤à´¿à´°à´¿à´àµà´àµà´¨àµà´¨àµ."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
+#: ../contrib/command-not-found/pk-command-not-found-test.c:370
msgid "Loading list of packages."
msgstr "പാà´àµà´àµà´àµà´à´³àµà´àµ à´ªà´àµà´à´¿à´ à´²à´àµà´¯à´®à´¾à´àµà´àµà´¨àµà´¨àµ."
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
+#: ../contrib/command-not-found/pk-command-not-found-test.c:444
msgid "Failed to search for file"
msgstr "ഫയലàµâ à´à´£àµà´àµà´ªà´¿à´à´¿à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ"
#. TRANSLATORS: we failed to launch the executable, the error follows
#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found-test.c:570
msgid "Failed to launch:"
msgstr "à´²à´àµà´¯à´®à´¾à´àµà´àµà´¨àµà´¨à´¤à´¿à´²àµâ പരാà´à´¯à´ªàµà´ªàµà´àµà´àµ:"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/command-not-found/pk-command-not-found.c:632
+#: ../contrib/command-not-found/pk-command-not-found-test.c:630
msgid "PackageKit Command Not Found"
msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±àµ à´à´®à´¾à´¨àµâഡൠലà´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found-test.c:658
msgid "Command not found."
msgstr "à´à´®à´¾à´¨àµâഡൠലà´àµà´¯à´®à´¾à´¯à´¿à´²àµà´²."
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
+#: ../contrib/command-not-found/pk-command-not-found-test.c:665
msgid "Similar command is:"
msgstr "à´à´¤àµàµ à´ªàµà´²àµà´³àµà´³ à´à´®à´¾à´¨àµâà´¡àµ:"
#. TRANSLATORS: Ask the user if we should run the similar command
#: ../contrib/command-not-found/pk-command-not-found.c:674
+#: ../contrib/command-not-found/pk-command-not-found-test.c:674
msgid "Run similar command:"
msgstr "à´à´¤àµà´ªàµà´²àµà´³àµà´³ à´à´®à´¾à´¨àµâഡൠപàµà´°à´µà´°àµâà´¤àµà´¤à´¿à´àµà´àµà´:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
#: ../contrib/command-not-found/pk-command-not-found.c:686
#: ../contrib/command-not-found/pk-command-not-found.c:695
+#: ../contrib/command-not-found/pk-command-not-found-test.c:686
+#: ../contrib/command-not-found/pk-command-not-found-test.c:695
msgid "Similar commands are:"
msgstr "à´à´¤àµàµ à´ªàµà´²àµà´³àµà´³ à´à´®à´¾à´¨àµâà´¡àµà´à´³àµâ:"
#. TRANSLATORS: ask the user to choose a file to run
#: ../contrib/command-not-found/pk-command-not-found.c:702
+#: ../contrib/command-not-found/pk-command-not-found-test.c:702
msgid "Please choose a command to run"
msgstr "à´ªàµà´°à´µà´°àµâà´¤àµà´¤à´¿à´ªàµà´ªà´¿à´àµà´àµà´¨àµà´¨à´¤à´¿à´¨àµà´³àµà´³ à´à´®à´¾à´¨àµâഡൠദയവായി à´¤àµà´°à´àµà´àµà´àµà´àµà´àµà´"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
+#: ../contrib/command-not-found/pk-command-not-found-test.c:721
msgid "The package providing this file is:"
msgstr "ഠഫയലàµâ à´²à´àµà´¯à´®à´¾à´àµà´àµà´¨àµà´¨ പാà´àµà´àµà´àµ:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
+#: ../contrib/command-not-found/pk-command-not-found-test.c:726
#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr "'%s' പാà´àµà´àµà´àµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´, à´à´¤àµàµ '%s' നിരàµâà´¦àµà´¦àµà´¶à´ നലàµâà´àµà´¨àµà´¨àµ?"
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found-test.c:747
msgid "Packages providing this file are:"
msgstr "ഠഫയലàµâ à´²à´àµà´¯à´®à´¾à´àµà´àµà´¨àµà´¨ പാà´àµà´àµà´àµà´à´³àµâ:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
+#: ../contrib/command-not-found/pk-command-not-found-test.c:756
msgid "Suitable packages are:"
msgstr "à´à´à´¿à´¤à´®à´¾à´¯ പാà´àµà´àµà´àµà´à´³àµâ:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found-test.c:764
msgid "Please choose a package to install"
msgstr "ദയവായി à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´à´°àµ പാà´àµà´àµà´àµ à´¤àµà´°à´àµà´àµà´àµà´àµà´àµà´"
@@ -1457,6 +1403,93 @@ msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±à´¿à´¨àµà´³àµà´³ പാà´àµà´
msgid "PackageKit Service Pack"
msgstr "പാà´àµà´àµà´àµà´à´¿à´±àµà´±à´¿à´¨àµà´³àµà´³ സരàµâà´µàµà´¸àµ പാà´àµà´àµ"
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "à´à´ªàµà´ªà´¿à´²àµà´²à´¾à´¤àµà´¤ à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ നിà´àµà´à´³àµâà´àµà´àµàµ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯à´£à´®àµ?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "à´à´ªàµà´ªà´¿à´àµà´à´¿à´àµà´à´¿à´²àµà´²à´¾à´¤àµà´¤ à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´à´¨àµâà´¸àµà´±àµà´±àµà´³àµâ à´àµà´¯àµà´¯àµà´¨àµà´¨à´¤à´²àµà´²."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´¸àµà´´àµà´¸àµ à´à´ªàµà´ªàµàµ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:102
+msgid "Software source name"
+msgstr "à´¸àµà´«àµà´±àµà´±àµâà´µàµà´¯à´°àµâ à´¸àµà´´àµà´¸à´¿à´¨àµà´±àµ à´ªàµà´°àµàµ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:103
+msgid "Key URL"
+msgstr "à´àµ à´¯àµà´à´°àµâà´à´²àµâ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:104
+msgid "Key user"
+msgstr "à´àµ à´à´ªà´¯àµà´àµà´¤à´¾à´µàµàµ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:105
+msgid "Key ID"
+msgstr "à´àµ ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "à´àµ വിരലà´à´¯à´¾à´³à´"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "à´àµ à´àµà´à´¸àµà´à´¾à´®àµà´ªàµ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "à´à´ªà´¯àµà´àµà´¤à´¾à´µà´¿à´¨àµà´³àµà´³ à´²àµà´¸à´¨àµâസൠസമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ à´à´µà´¶àµà´¯à´®àµà´£àµà´àµàµ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Agreement"
+msgstr "സമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "ഠസമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ നിà´àµà´à´³àµâ à´
à´à´àµà´à´°à´¿à´àµà´àµà´¨àµà´¨àµà´µàµ?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "സമàµà´®à´¤à´ªàµà´ªà´¤àµà´°à´ à´¸àµà´µàµà´à´°à´¿à´àµà´àµà´¨àµà´¨à´¿à´²àµà´²."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:194
+msgid "Media change required"
+msgstr "à´®àµà´¡à´¿à´¯à´¾ മാറàµà´±àµà´£àµà´à´¤àµà´£àµà´àµàµ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:195
+msgid "Media type"
+msgstr "à´®àµà´¡à´¿à´¯à´¾ തരà´"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:196
+msgid "Media ID"
+msgstr "à´®àµà´¡à´¿à´¯à´¾ ID "
+
+#: ../lib/packagekit-glib2/pk-task-text.c:197
+msgid "Text"
+msgstr "വാà´àµà´¯à´"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "ദയവായി ശരിയായ à´®àµà´¡à´¿à´¯à´¾ à´¤àµà´°à´àµà´àµà´àµà´àµà´àµà´"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "ശരിയായ à´®àµà´¡à´¿à´¯à´¾ നലàµâà´à´¿à´¯à´¿à´àµà´à´¿à´²àµà´²."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "à´à´à´ªà´¾à´àµàµ à´¤àµà´à´°àµâà´¨àµà´¨à´¿à´²àµà´²."
+
#. SECURITY:
#. - Normal users do not require admin authentication to accept new
#. licence agreements.
commit e3fb292ece690035cf727591c325114dba7a85f5
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 12:41:10 2009 +0100
Switch the doc-generation to glib2
diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index b3047d4..35e5eb3 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -16,7 +16,7 @@ DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# The directory containing the source code. Relative to $(srcdir).
# gtk-doc will search all .c & .h files beneath here for inline comments
# documenting the functions and macros.
-DOC_SOURCE_DIR=../../lib/packagekit-glib
+DOC_SOURCE_DIR=../../lib/packagekit-glib2
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
@@ -34,15 +34,13 @@ MKTMPL_OPTIONS=
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
-HFILE_GLOB=$(top_srcdir)/lib/packagekit-glib/pk-*.h
-CFILE_GLOB=$(top_srcdir)/lib/packagekit-glib/pk-*.c
+HFILE_GLOB=$(top_srcdir)/lib/packagekit-glib2/pk-*.h
+CFILE_GLOB=$(top_srcdir)/lib/packagekit-glib2/pk-*.c
# Header files to ignore when scanning.
IGNORE_HFILES = \
config.h \
pk-marshal.h \
- egg-dbus-monitor.h \
- pk-obj-list.h \
$(NULL)
# Images to copy into HTML directory.
@@ -78,17 +76,20 @@ INCLUDES = \
$(POLKIT_CFLAGS) \
$(DBUS_CFLAGS) \
$(GLIB_CFLAGS) \
- -I$(top_builddir)/lib/packagekit-glib \
- -I$(top_srcdir)/lib/packagekit-glib \
+ -I$(top_builddir)/lib/packagekit-glib2 \
+ -I$(top_srcdir)/lib/packagekit-glib2 \
$(NULL)
-PK_GLIB_LIBS = $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
+PK_GLIB2_LIBS = \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
+ $(NULL)
GTKDOC_LIBS = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(SQLITE_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(POLKIT_LIBS) \
$(NULL)
diff --git a/docs/api/PackageKit-docs.sgml b/docs/api/PackageKit-docs.sgml
index 9846856..2aa1a72 100644
--- a/docs/api/PackageKit-docs.sgml
+++ b/docs/api/PackageKit-docs.sgml
@@ -64,12 +64,11 @@
This part documents GObjects used in libpackagekit.
</para>
</partintro>
- <xi:include href="xml/pk-connection.xml"/>
- <xi:include href="xml/pk-desktop.xml"/>
<xi:include href="xml/pk-client.xml"/>
- <xi:include href="xml/pk-package-list.xml"/>
<xi:include href="xml/pk-control.xml"/>
- <xi:include href="xml/pk-task-list.xml"/>
+ <xi:include href="xml/pk-task.xml"/>
+ <xi:include href="xml/pk-desktop.xml"/>
+ <xi:include href="xml/pk-service-pack.xml"/>
</reference>
<reference id="libpackagekit-helpers">
@@ -83,6 +82,7 @@
<xi:include href="xml/pk-common.xml"/>
<xi:include href="xml/pk-enum.xml"/>
<xi:include href="xml/pk-package-id.xml"/>
+ <xi:include href="xml/pk-package-ids.xml"/>
</reference>
<reference id="faq">
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index ab2dd09..c4389d0 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -125,6 +125,8 @@ libpackagekitprivate_a_SOURCES = \
pk-task-sync.h \
pk-task-text.c \
pk-task-text.h \
+ pk-task-wrapper.c \
+ pk-task-wrapper.h \
$(NULL)
libpackagekitprivate_a_CFLAGS = \
commit b9c04ef7710200305881fe12533260b867534001
Author: beckerde <beckerde at fedoraproject.org>
Date: Wed Sep 9 11:35:03 2009 +0000
Sending translation for Spanish
diff --git a/po/es.po b/po/es.po
index fd7696b..d491a2f 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-09-06 16:39+0000\n"
-"PO-Revision-Date: 2009-09-06 14:01-0300\n"
+"POT-Creation-Date: 2009-09-09 08:33+0000\n"
+"PO-Revision-Date: 2009-09-09 08:32-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,127 +20,127 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238
-#: ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237
+#: ../client/pk-console-test.c:143
msgid "Transaction"
msgstr "Transacción"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240
-#: ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239
+#: ../client/pk-console-test.c:145
msgid "System time"
msgstr "Hora del sistema"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242
-#: ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241
+#: ../client/pk-console-test.c:147
msgid "Succeeded"
msgstr "Existosa"
-#: ../client/pk-console.c:242
-#: ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241
+#: ../client/pk-console-test.c:147
msgid "True"
msgstr "Verdadero"
-#: ../client/pk-console.c:242
-#: ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241
+#: ../client/pk-console-test.c:147
msgid "False"
msgstr "Falso"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244
-#: ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243
+#: ../client/pk-console-test.c:149
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "Rol"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249
-#: ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248
+#: ../client/pk-console-test.c:154
msgid "Duration"
msgstr "Duración"
-#: ../client/pk-console.c:249
-#: ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248
+#: ../client/pk-console-test.c:154
msgid "(seconds)"
msgstr "(segundos)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253
-#: ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252
+#: ../client/pk-console-test.c:158
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "LÃnea de comandos"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255
-#: ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254
+#: ../client/pk-console-test.c:160
msgid "User ID"
msgstr "ID del usuario"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262
-#: ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261
+#: ../client/pk-console-test.c:167
msgid "Username"
msgstr "Nombre de usuario"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266
-#: ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265
+#: ../client/pk-console-test.c:171
msgid "Real name"
msgstr "Nombre real"
-#: ../client/pk-console.c:274
-#: ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273
+#: ../client/pk-console-test.c:179
msgid "Affected packages:"
msgstr "Paquete afectados:"
-#: ../client/pk-console.c:276
-#: ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275
+#: ../client/pk-console-test.c:181
msgid "Affected packages: None"
msgstr "Paquetes afectados: Ninguno"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337
-#: ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336
+#: ../lib/packagekit-glib2/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "Se eliminarán los siguientes paquetes:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340
-#: ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339
+#: ../lib/packagekit-glib2/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "Los siguientes paquetes se deben instalar:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343
-#: ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342
+#: ../lib/packagekit-glib2/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "Los siguientes paquetes se deben actualizar:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346
-#: ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345
+#: ../lib/packagekit-glib2/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "Los siguientes paquetes se deben reinstalar:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349
-#: ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348
+#: ../lib/packagekit-glib2/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "Los siguientes paquetes se deben desactualizar:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363
-#: ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362
+#: ../client/pk-console-test.c:201
msgid "Distribution"
msgstr "Distribución"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365
-#: ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364
+#: ../client/pk-console-test.c:203
msgid "Type"
msgstr "Tipo"
@@ -148,55 +148,55 @@ msgstr "Tipo"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367
-#: ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209
-#: ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366
+#: ../client/pk-console.c:389
+#: ../client/pk-console-test.c:205
+#: ../client/pk-console-test.c:226
msgid "Summary"
msgstr "Resúmen"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379
-#: ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378
+#: ../client/pk-console-test.c:215
msgid "Category"
msgstr "CategorÃa"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381
-#: ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380
+#: ../client/pk-console-test.c:217
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384
-#: ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383
+#: ../client/pk-console-test.c:220
msgid "Parent"
msgstr "Padre"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387
-#: ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386
+#: ../client/pk-console-test.c:223
msgid "Name"
msgstr "Nombre"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393
-#: ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392
+#: ../client/pk-console-test.c:229
msgid "Icon"
msgstr "Icono"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408
-#: ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407
+#: ../client/pk-console-test.c:243
msgid "Details about the update:"
msgstr "Detalles acerca de la actualización:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410
-#: ../client/pk-console-test.c:253
-#: ../client/pk-task-text.c:101
-#: ../client/pk-task-text.c:153
+#: ../client/pk-console.c:409
+#: ../client/pk-console-test.c:249
+#: ../lib/packagekit-glib2/pk-task-text.c:101
+#: ../lib/packagekit-glib2/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
@@ -204,468 +204,470 @@ msgstr[0] "Paquete"
msgstr[1] "Paquetes"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413
-#: ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412
+#: ../client/pk-console-test.c:252
msgid "Updates"
msgstr "Actualizaciones"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417
-#: ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416
+#: ../client/pk-console-test.c:256
msgid "Obsoletes"
msgstr "Sustituye"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421
-#: ../client/pk-console-test.c:264
-#: ../client/pk-task-text.c:154
+#: ../client/pk-console.c:420
+#: ../client/pk-console-test.c:260
+#: ../lib/packagekit-glib2/pk-task-text.c:154
msgid "Vendor"
msgstr "Fabricante"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425
-#: ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424
+#: ../client/pk-console-test.c:264
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429
-#: ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428
+#: ../client/pk-console-test.c:268
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433
-#: ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432
+#: ../client/pk-console-test.c:272
msgid "Restart"
msgstr "Reiniciar"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437
-#: ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436
+#: ../client/pk-console-test.c:276
msgid "Update text"
msgstr "Texto de actualización"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441
-#: ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440
+#: ../client/pk-console-test.c:280
msgid "Changes"
msgstr "Cambios"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445
-#: ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444
+#: ../client/pk-console-test.c:284
msgid "State"
msgstr "Estado"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450
-#: ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449
+#: ../client/pk-console-test.c:289
msgid "Issued"
msgstr "Emitido"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455
-#: ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454
+#: ../client/pk-console-test.c:294
msgid "Updated"
msgstr "Actualizado"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475
-#: ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474
+#: ../client/pk-console-test.c:312
msgid "Enabled"
msgstr "Habilitado"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478
-#: ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477
+#: ../client/pk-console-test.c:315
msgid "Disabled"
msgstr "Deshabilitado"
-#: ../client/pk-console.c:555
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:554
+#: ../client/pk-console.c:556
msgid "Percentage"
msgstr "Porcentaje"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "Desconocido"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599
-#: ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598
+#: ../client/pk-console-test.c:337
msgid "System restart required by:"
msgstr "Se necesita reiniciar el sistema debido a:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602
-#: ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601
+#: ../client/pk-console-test.c:340
msgid "Session restart required:"
msgstr "Se necesita reiniciar la sesión:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605
-#: ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604
+#: ../client/pk-console-test.c:343
msgid "System restart (security) required by:"
msgstr "Reinicio del sistema (seguridad) solicitado por:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608
-#: ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607
+#: ../client/pk-console-test.c:346
msgid "Session restart (security) required:"
msgstr "Reinicio de la sesión (seguridad) solicitado por:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611
-#: ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610
+#: ../client/pk-console-test.c:349
msgid "Application restart required by:"
msgstr "Se necesita reiniciar una aplicación debido a:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666
-#: ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665
+#: ../client/pk-console-test.c:538
msgid "Please restart the computer to complete the update."
msgstr "Reinicie el equipo para completar la actualización."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669
-#: ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668
+#: ../client/pk-console-test.c:541
msgid "Please logout and login to complete the update."
msgstr "Cierre la sesión y vuelva a entrar para completar la actualización."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "Reinicie la aplicación que está usando."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675
-#: ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674
+#: ../client/pk-console-test.c:544
msgid "Please restart the computer to complete the update as important security updates have been installed."
msgstr "Por favor, reinicie el equipo para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678
-#: ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677
+#: ../client/pk-console-test.c:547
msgid "Please logout and login to complete the update as important security updates have been installed."
msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "El paquete %s ya está instalado"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:817
#, 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: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
+#: ../client/pk-console.c:843
+#: ../client/pk-console.c:891
+#: ../client/pk-console.c:915
+#: ../client/pk-console.c:963
+#: ../client/pk-console.c:1059
+#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233
+#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151
+#: ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "Error interno: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876
-#: ../client/pk-console.c:948
-#: ../client/pk-console.c:1266
-#: ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875
+#: ../client/pk-console.c:947
+#: ../client/pk-console.c:1265
+#: ../lib/packagekit-glib2/pk-task-text.c:299
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:881
-#: ../client/pk-console.c:953
+#: ../client/pk-console.c:880
+#: ../client/pk-console.c:952
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:900
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:899
+#: ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "Esta herramienta no pudo instalar los paquetes: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "Esta herramienta no pudo instalar los archivos: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1027
#, 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:1051
-#: ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050
+#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, 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:1104
+#: ../client/pk-console.c:1103
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:1109
+#: ../client/pk-console.c:1108
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:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no se encontró"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, 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:1213
-#: ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212
+#: ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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:1271
+#: ../client/pk-console.c:1270
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:1304
-#: ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303
+#: ../client/pk-console.c:1311
#, 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:1334
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333
+#: ../client/pk-console.c:1341
#, 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:1364
-#: ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1401
#, 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:1424
+#: ../client/pk-console.c:1423
#, 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:1429
-#: ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428
+#: ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
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:1435
-#: ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434
+#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1446
+#: ../client/pk-console.c:1445
#, 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:1480
-#: ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479
+#: ../client/pk-console.c:1554
#, 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:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "Paquetes para añadir"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "Paquetes para eliminar"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, 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:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "Para instalar"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
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:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "no encontrado."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, 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:1627
+#: ../client/pk-console.c:1626
#: ../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:1663
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1670
#, 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:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "Error:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716
-#: ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715
+#: ../client/pk-console-test.c:366
msgid "Package description"
msgstr "Descripción del paquete"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732
-#: ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731
+#: ../client/pk-console-test.c:384
msgid "Message:"
msgstr "Mensaje:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760
-#: ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759
+#: ../client/pk-console-test.c:403
msgid "Package files"
msgstr "Archivos del paquete"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768
-#: ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767
+#: ../client/pk-console-test.c:398
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:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "Se requiere la firma del repositorio"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801
-#: ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800
+#: ../lib/packagekit-glib2/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "¿Acepta esta firma?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805
-#: ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804
+#: ../lib/packagekit-glib2/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "No se aceptó la firma."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
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:1846
+#: ../client/pk-console.c:1845
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:1850
+#: ../client/pk-console.c:1849
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:1879
-#: ../client/pk-console-test.c:972
+#: ../client/pk-console.c:1878
+#: ../client/pk-console-test.c:816
msgid "The daemon crashed mid-transaction!"
msgstr "El demonio se colgó en medio de una transacción."
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932
-#: ../client/pk-console-test.c:1006
+#: ../client/pk-console.c:1931
+#: ../client/pk-console-test.c:850
msgid "PackageKit Console Interface"
msgstr "Interfaz de consola de PackageKit"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934
-#: ../client/pk-console-test.c:1008
+#: ../client/pk-console.c:1933
+#: ../client/pk-console-test.c:852
msgid "Subcommands:"
msgstr "Subcomandos:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027
-#: ../client/pk-console-test.c:1099
-#: ../client/pk-generate-pack.c:187
+#: ../client/pk-console.c:2026
+#: ../client/pk-console-test.c:966
+#: ../client/pk-generate-pack.c:185
+#: ../client/pk-generate-pack-test.c:222
#: ../client/pk-monitor.c:128
#: ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found-test.c:614
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293
#: ../src/pk-main.c:211
@@ -673,181 +675,182 @@ 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:2030
-#: ../client/pk-console-test.c:1102
+#: ../client/pk-console.c:2029
+#: ../client/pk-console-test.c:969
#: ../client/pk-monitor.c:130
#: ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "Mostrar la versión del programa y salir"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033
-#: ../client/pk-console-test.c:1105
+#: ../client/pk-console.c:2032
+#: ../client/pk-console-test.c:972
msgid "Set the filter, e.g. installed"
msgstr "Establecer el filtro, ej. instalado"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036
-#: ../client/pk-console-test.c:1108
+#: ../client/pk-console.c:2035
+#: ../client/pk-console-test.c:975
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:2063
+#: ../client/pk-console.c:2062
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:2153
-#: ../client/pk-console-test.c:1183
+#: ../client/pk-console.c:2152
+#: ../client/pk-console-test.c:1052
msgid "The filter specified was invalid"
msgstr "El filtro especificado fue inválido"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172
-#: ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2171
+#: ../client/pk-console-test.c:1071
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:2179
-#: ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197
-#: ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1209
-#: ../client/pk-console-test.c:1221
-#: ../client/pk-console-test.c:1233
-#: ../client/pk-console-test.c:1245
+#: ../client/pk-console.c:2178
+#: ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196
+#: ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1078
+#: ../client/pk-console-test.c:1090
+#: ../client/pk-console-test.c:1102
+#: ../client/pk-console-test.c:1114
msgid "A search term is required"
msgstr "Se necesita un término de búsqueda"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213
-#: ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2212
+#: ../client/pk-console-test.c:1124
msgid "Invalid search type"
msgstr "Tipo de búsqueda inválido"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "Se requiere un nombre de paquete o nombre de archivo para instalar"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228
-#: ../client/pk-console-test.c:1282
+#: ../client/pk-console.c:2227
+#: ../client/pk-console-test.c:1151
msgid "A type, key_id and package_id are required"
msgstr "Se necesita un tipo, key_id y package_id"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2237
-#: ../client/pk-console-test.c:1293
+#: ../client/pk-console.c:2236
+#: ../client/pk-console-test.c:1162
msgid "A package name to remove is required"
msgstr "Necesita un nombre de paquete para eliminar"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245
-#: ../client/pk-console-test.c:1302
+#: ../client/pk-console.c:2244
+#: ../client/pk-console-test.c:1171
msgid "A destination directory and the package names to download are required"
msgstr "Se necesita un directorio de destino y los nombres de los paquetes a descargar"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252
-#: ../client/pk-console-test.c:1309
+#: ../client/pk-console.c:2251
+#: ../client/pk-console-test.c:1178
msgid "Directory not found"
msgstr "Directorio no encontrado"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260
-#: ../client/pk-console-test.c:1318
+#: ../client/pk-console.c:2259
+#: ../client/pk-console-test.c:1187
msgid "A licence identifier (eula-id) is required"
msgstr "Se necesita un identificador de licencia (eula-id)"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270
-#: ../client/pk-console-test.c:1329
+#: ../client/pk-console.c:2269
+#: ../client/pk-console-test.c:1198
msgid "A transaction identifier (tid) is required"
msgstr "Se necesita un identificador de transacción (tid)"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287
-#: ../client/pk-console-test.c:1350
+#: ../client/pk-console.c:2286
+#: ../client/pk-console-test.c:1219
msgid "A package name to resolve is required"
msgstr "Se necesita un nombre de paquete para resolver"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2296
-#: ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1361
-#: ../client/pk-console-test.c:1372
+#: ../client/pk-console.c:2295
+#: ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1230
+#: ../client/pk-console-test.c:1241
msgid "A repository name is required"
msgstr "Se necesita un nombre de repositorio"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314
-#: ../client/pk-console-test.c:1383
+#: ../client/pk-console.c:2313
+#: ../client/pk-console-test.c:1252
msgid "A repo name, parameter and value are required"
msgstr "Debe especificar un nombre de repositorio, parámetro y valor"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328
-#: ../client/pk-console-test.c:1401
+#: ../client/pk-console.c:2327
+#: ../client/pk-console-test.c:1269
msgid "An action, e.g. 'update-system' is required"
msgstr "Debe especificar una acción, por ejemplo, «update-system»"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335
-#: ../client/pk-console-test.c:1408
+#: ../client/pk-console.c:2334
+#: ../client/pk-console-test.c:1276
msgid "A correct role is required"
msgstr "Se necesita un rol correcto"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342
-#: ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2341
+#: ../client/pk-console-test.c:931
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:2352
-#: ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373
-#: ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400
-#: ../client/pk-console-test.c:1425
-#: ../client/pk-console-test.c:1440
-#: ../client/pk-console-test.c:1449
-#: ../client/pk-console-test.c:1469
-#: ../client/pk-console-test.c:1478
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351
+#: ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372
+#: ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399
+#: ../client/pk-console-test.c:1286
+#: ../client/pk-console-test.c:1301
+#: ../client/pk-console-test.c:1310
+#: ../client/pk-console-test.c:1330
+#: ../client/pk-console-test.c:1339
+#: ../client/pk-generate-pack.c:241
+#: ../client/pk-generate-pack-test.c:285
msgid "A package name is required"
msgstr "Se necesita un nombre de paquete"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2382
-#: ../client/pk-console-test.c:1458
+#: ../client/pk-console.c:2381
+#: ../client/pk-console-test.c:1319
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:2409
+#: ../client/pk-console.c:2408
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:2419
-#: ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418
+#: ../client/pk-console.c:2428
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:2483
-#: ../client/pk-console-test.c:1538
+#: ../client/pk-console.c:2482
+#: ../client/pk-console-test.c:1399
#, 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:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "Privilegios incorrectos para esta operación"
@@ -855,38 +858,26 @@ msgstr "Privilegios incorrectos para esta operación"
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499
-#: ../client/pk-console-test.c:1550
+#: ../client/pk-console.c:2498
+#: ../client/pk-console-test.c:1411
msgid "Command failed"
msgstr "Falló el comando"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523
-#: ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "Coincide más de un paquete:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532
-#: ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "Elija el paquete correcto: "
-
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734
+#: ../client/pk-console-test.c:568
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "Esta herramienta no pudo encontrar el paquete disponible: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762
+#: ../client/pk-console-test.c:596
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "Esta herramienta no pudo encontrar el paquete instalado: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790
-#: ../client/pk-console-test.c:818
+#: ../client/pk-console-test.c:624
+#: ../client/pk-console-test.c:652
#, c-format
msgid "This tool could not find the package: %s"
msgstr "Esta herramienta no pudo encontrar el paquete: %s"
@@ -895,136 +886,163 @@ msgstr "Esta herramienta no pudo encontrar el paquete: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846
-#: ../client/pk-console-test.c:872
-#: ../client/pk-console-test.c:898
-#: ../client/pk-console-test.c:924
-#: ../client/pk-console-test.c:950
+#: ../client/pk-console-test.c:680
+#: ../client/pk-console-test.c:708
+#: ../client/pk-console-test.c:736
+#: ../client/pk-console-test.c:764
+#: ../client/pk-console-test.c:792
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "Esta herramienta no pudo encontrar todos los paquetes: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1000
+msgid "Failed to contact PackageKit"
+msgstr "Falló al contactar con PackageKit"
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1261
+#: ../client/pk-console-test.c:1130
msgid "A package name to install is required"
msgstr "Se necesita un nombre de paquete a instalar"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1270
+#: ../client/pk-console-test.c:1139
msgid "A filename to install is required"
msgstr "Se requiere un nombre de archivo a instalar"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "Descargando"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "Descargando paquetes"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
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:190
+#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack-test.c:225
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:193
+#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack-test.c:228
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:196
+#: ../client/pk-generate-pack.c:194
+#: ../client/pk-generate-pack-test.c:231
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:199
+#: ../client/pk-generate-pack.c:197
+#: ../client/pk-generate-pack-test.c:234
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:227
+#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack-test.c:269
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:235
+#: ../client/pk-generate-pack.c:233
+#: ../client/pk-generate-pack-test.c:277
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:251
+#: ../client/pk-generate-pack.c:249
+#: ../client/pk-generate-pack-test.c:293
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:269
-#: ../client/pk-generate-pack.c:275
+#. 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-test.c:321
+#: ../client/pk-generate-pack-test.c:327
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:282
+#: ../client/pk-generate-pack.c:280
+#: ../client/pk-generate-pack-test.c:334
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:293
+#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack-test.c:345
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:309
+#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack-test.c:361
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:312
+#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack-test.c:364
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:325
+#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack-test.c:377
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:335
+#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack-test.c:389
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:346
+#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack-test.c:398
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:350
+#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack-test.c:402
#, 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:367
+#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack-test.c:410
msgid "Creating service pack..."
msgstr "Creando el paquete de servicio..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack-test.c:425
#, 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:379
+#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack-test.c:430
#, c-format
msgid "Failed to create '%s': %s"
msgstr "Falló al crear «%s»: %s"
@@ -1047,104 +1065,30 @@ msgstr "Falló al obtener la lista de transacciones"
msgid "Failed to get daemon state"
msgstr "Falló al obtener el estado del demonio"
-#. ask the user
-#: ../client/pk-task-text.c:64
-msgid "Do you want to allow installing of unsigned software?"
-msgstr "¿Desea permitir la instalación de software que no esté identificado?"
-
-#: ../client/pk-task-text.c:68
-msgid "The unsigned software will not be installed."
-msgstr "El software no identificado no será instalado."
-
-#: ../client/pk-task-text.c:100
-msgid "Software source signature required"
-msgstr "Se necesita la firma de la fuente del software"
-
-#: ../client/pk-task-text.c:102
-msgid "Software source name"
-msgstr "Nombre de la fuente del software"
-
-#: ../client/pk-task-text.c:103
-msgid "Key URL"
-msgstr "URL de la clave"
-
-#: ../client/pk-task-text.c:104
-msgid "Key user"
-msgstr "Usuario de la clave"
-
-#: ../client/pk-task-text.c:105
-msgid "Key ID"
-msgstr "ID de la clave"
-
-#: ../client/pk-task-text.c:106
-msgid "Key fingerprint"
-msgstr "Huella digital de la clave"
-
-#: ../client/pk-task-text.c:107
-msgid "Key Timestamp"
-msgstr "Fecha y hora de la clave"
-
-#: ../client/pk-task-text.c:151
-msgid "End user licence agreement required"
-msgstr "Se necesita un acuerdo de licencia de usuario final"
-
-#: ../client/pk-task-text.c:152
-msgid "EULA ID"
-msgstr "ID del acuerdo de licencia de usuario final (EULA) "
-
-#: ../client/pk-task-text.c:155
-msgid "Agreement"
-msgstr "Acuerdo"
-
-#. ask the user
-#: ../client/pk-task-text.c:161
-msgid "Do you accept this agreement?"
-msgstr "¿Acepta este acuerdo?"
-
-#: ../client/pk-task-text.c:165
-msgid "The agreement was not accepted."
-msgstr "El acuerdo no fue aceptado."
-
-#: ../client/pk-task-text.c:194
-msgid "Media change required"
-msgstr "Es necesario cambiar el medio"
-
-#: ../client/pk-task-text.c:195
-msgid "Media type"
-msgstr "Tipo de medio"
-
-#: ../client/pk-task-text.c:196
-msgid "Media ID"
-msgstr "ID de medio"
-
-#: ../client/pk-task-text.c:197
-msgid "Text"
-msgstr "TExto"
-
-#. ask the user
-#: ../client/pk-task-text.c:201
-msgid "Please insert the correct media"
-msgstr "Por favor, inserte el medio correcto "
-
-#: ../client/pk-task-text.c:205
-msgid "The correct media was not inserted."
-msgstr "El medio correcto no fue insertado."
-
-#: ../client/pk-task-text.c:303
-msgid "The transaction did not proceed."
-msgstr "La transacción no pudo realizarse."
-
-#: ../client/pk-text.c:50
+#: ../client/pk-tools-common.c:51
+#: ../lib/packagekit-glib2/pk-console-shared.c:53
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "Introduzca un número de 1 a %i: "
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, 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:200
+#: ../lib/packagekit-glib2/pk-console-shared.c:153
+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:207
+#: ../lib/packagekit-glib2/pk-console-shared.c:162
+msgid "Please choose the correct package: "
+msgstr "Elija el paquete correcto: "
+
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -1201,90 +1145,110 @@ msgstr "Instalando..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
+#: ../contrib/command-not-found/pk-command-not-found-test.c:358
msgid "Downloading details about the software sources."
msgstr "Descargando detalles acerca de las fuentes de software"
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
+#: ../contrib/command-not-found/pk-command-not-found-test.c:362
msgid "Downloading filelists (this may take some time to complete)."
msgstr "Descargando listas de archivo (esto podrÃa tardar un tiempo en completarse)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
+#: ../contrib/command-not-found/pk-command-not-found-test.c:366
msgid "Waiting for package manager lock."
msgstr "Esperando bloqueo del administrador de paquetes."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
+#: ../contrib/command-not-found/pk-command-not-found-test.c:370
msgid "Loading list of packages."
msgstr "Cargando listas de paquetes"
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
+#: ../contrib/command-not-found/pk-command-not-found-test.c:444
msgid "Failed to search for file"
msgstr "Falló al buscar el archivo"
#. TRANSLATORS: we failed to launch the executable, the error follows
#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found-test.c:570
msgid "Failed to launch:"
msgstr "Falló al iniciar:"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/command-not-found/pk-command-not-found.c:632
+#: ../contrib/command-not-found/pk-command-not-found-test.c:630
msgid "PackageKit Command Not Found"
msgstr "No se encontró el comando PackageKit"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found-test.c:658
msgid "Command not found."
msgstr "Comando no encontrado."
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
+#: ../contrib/command-not-found/pk-command-not-found-test.c:665
msgid "Similar command is:"
msgstr "Un comando similar es:"
#. TRANSLATORS: Ask the user if we should run the similar command
#: ../contrib/command-not-found/pk-command-not-found.c:674
+#: ../contrib/command-not-found/pk-command-not-found-test.c:674
msgid "Run similar command:"
msgstr "Ejecutar un comando similar:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
#: ../contrib/command-not-found/pk-command-not-found.c:686
#: ../contrib/command-not-found/pk-command-not-found.c:695
+#: ../contrib/command-not-found/pk-command-not-found-test.c:686
+#: ../contrib/command-not-found/pk-command-not-found-test.c:695
msgid "Similar commands are:"
msgstr "Los comandos similares son:"
#. TRANSLATORS: ask the user to choose a file to run
#: ../contrib/command-not-found/pk-command-not-found.c:702
+#: ../contrib/command-not-found/pk-command-not-found-test.c:702
msgid "Please choose a command to run"
msgstr "Elija un comando para ejecutar"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
+#: ../contrib/command-not-found/pk-command-not-found-test.c:721
msgid "The package providing this file is:"
msgstr "El paquete que proporciona este archivo es:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
+#: ../contrib/command-not-found/pk-command-not-found-test.c:726
#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr "¿Instalar el paquete «%s» para proporcionar el comando «%s»?"
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found-test.c:747
msgid "Packages providing this file are:"
msgstr "Los paquetes que proporcionan este archivo son:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
+#: ../contrib/command-not-found/pk-command-not-found-test.c:756
msgid "Suitable packages are:"
msgstr "Los posibles paquetes son:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found-test.c:764
msgid "Please choose a package to install"
msgstr "Elija un paquete para instalar"
@@ -1570,6 +1534,93 @@ msgstr "Lista de paquetes de PackageKit"
msgid "PackageKit Service Pack"
msgstr "Paquete de servicio de PackageKit"
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "¿Desea permitir la instalación de software que no esté identificado?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "El software no identificado no será instalado."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Se necesita la firma de la fuente del software"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Nombre de la fuente del software"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:103
+msgid "Key URL"
+msgstr "URL de la clave"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:104
+msgid "Key user"
+msgstr "Usuario de la clave"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:105
+msgid "Key ID"
+msgstr "ID de la clave"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Huella digital de la clave"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Fecha y hora de la clave"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Se necesita un acuerdo de licencia de usuario final"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "ID del acuerdo de licencia de usuario final (EULA) "
+
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Acuerdo"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "¿Acepta este acuerdo?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "El acuerdo no fue aceptado."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Es necesario cambiar el medio"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:195
+msgid "Media type"
+msgstr "Tipo de medio"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ID de medio"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:197
+msgid "Text"
+msgstr "TExto"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "Por favor, inserte el medio correcto "
+
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "El medio correcto no fue insertado."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "La transacción no pudo realizarse."
+
#. SECURITY:
#. - Normal users do not require admin authentication to accept new
#. licence agreements.
commit ff7424b88756e496e08102ae0cb9344778c2e478
Merge: 687ca91... 6145806...
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 12:18:51 2009 +0100
Merge branch 'master' into daemon-glib2
commit 6145806ea5c021427dd236ccf6b57789dc2b09ee
Merge: 3ece72c... 826daa3...
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 12:17:55 2009 +0100
Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit
commit 3ece72cf449ad9f38999460806ef89f20086ed0b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 12:16:38 2009 +0100
trivial: remove some debugging left in
diff --git a/contrib/debuginfo-install/pk-debuginfo-install-test.c b/contrib/debuginfo-install/pk-debuginfo-install-test.c
index 6103a96..c07ec65 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install-test.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install-test.c
@@ -200,7 +200,6 @@ pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArra
if (results == NULL) {
*error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
g_error_free (error_local);
- egg_error ("moo: %s", error_local->message);
ret = FALSE;
goto out;
}
diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index 00b0c4a..81e6c19 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -206,7 +206,6 @@ pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArra
} else {
*error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
g_error_free (error_local);
- egg_error ("moo: %s", error_local->message);
goto out;
}
}
commit 295ece896a55a0070965f69c8c9c2ad757e635b2
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 12:10:46 2009 +0100
trivial: add a glib2ified version of pk-debuginfo-install
diff --git a/contrib/debuginfo-install/Makefile.am b/contrib/debuginfo-install/Makefile.am
index d1a9ac6..0d41fd9 100644
--- a/contrib/debuginfo-install/Makefile.am
+++ b/contrib/debuginfo-install/Makefile.am
@@ -46,7 +46,7 @@ pk_debuginfo_install_SOURCES = \
pk_debuginfo_install_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(NULL)
else
diff --git a/contrib/debuginfo-install/pk-debuginfo-install-test.c b/contrib/debuginfo-install/pk-debuginfo-install-test.c
new file mode 100644
index 0000000..6103a96
--- /dev/null
+++ b/contrib/debuginfo-install/pk-debuginfo-install-test.c
@@ -0,0 +1,934 @@
+/* -*- 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.
+ */
+
+/* Test with ./pk-debuginfo-install bzip2-libs-1.0.5-5.fc11.i586 glib2-2.20.3-1.fc11.i586 */
+
+#include "config.h"
+
+#include <string.h>
+#include <locale.h>
+#include <glib/gi18n.h>
+#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
+
+#include "egg-debug.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_DEBUGINFO_EXIT_CODE_FAILED 1
+#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_GET_REPOLIST 3
+#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE 4
+#define PK_DEBUGINFO_EXIT_CODE_NOTHING_TO_DO 5
+#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_FIND_DEPS 6
+#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_INSTALL 7
+#define PK_DEBUGINFO_EXIT_CODE_FAILED_TO_DISABLE 8
+
+typedef struct {
+ GPtrArray *enabled;
+ GPtrArray *disabled;
+ PkClient *client;
+ PkProgressBar *progress_bar;
+} PkDebuginfoInstallPrivate;
+
+/**
+ * pk_get_package_name_from_nevra:
+ **/
+static gchar *
+pk_get_package_name_from_nevra (const gchar *nevra)
+{
+ gchar *name = NULL;
+ gchar **split;
+ guint len;
+
+ /* hal-info-data-version-arch */
+ split = g_strsplit (nevra, "-", -1);
+ len = g_strv_length (split);
+
+ /* just the package name specified */
+ if (len == 1) {
+ name = g_strdup (split[0]);
+ goto out;
+ }
+
+ /* ignore the version */
+ g_free (split[len-2]);
+ split[len-2] = NULL;
+
+ /* ignore the arch */
+ g_free (split[len-1]);
+ split[len-1] = NULL;
+
+ /* join up name elements */
+ name = g_strjoinv ("-", split);
+out:
+ g_strfreev (split);
+ return name;
+}
+
+/**
+ * pk_debuginfo_install_in_array:
+ **/
+static gboolean
+pk_debuginfo_install_in_array (GPtrArray *array, const gchar *text)
+{
+ guint i;
+ gboolean ret = FALSE;
+ const gchar *possible;
+
+ /* compare each */
+ for (i=0; i<array->len; i++) {
+ possible = g_ptr_array_index (array, i);
+ if (g_strcmp0 (text, possible) == 0) {
+ ret = TRUE;
+ break;
+ }
+ }
+ return ret;
+}
+
+/**
+ * pk_debuginfo_install_enable_repos:
+ **/
+static gboolean
+pk_debuginfo_install_enable_repos (PkDebuginfoInstallPrivate *priv, GPtrArray *array, gboolean enable, GError **error)
+{
+ guint i;
+ gboolean ret = TRUE;
+ PkResults *results = NULL;
+ const gchar *repo_id;
+ GError *error_local = NULL;
+ PkExitEnum exit_enum;
+
+ /* enable all debuginfo repos we found */
+ for (i=0; i<array->len; i++) {
+ repo_id = g_ptr_array_index (array, i);
+
+ /* enable this repo */
+ results = pk_client_repo_enable_sync (priv->client, repo_id, enable, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to enable %s: %s", repo_id, error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
+ g_error_free (error_local);
+ goto out;
+ }
+
+ egg_debug ("setting %s: %i", repo_id, enable);
+ g_object_unref (results);
+ }
+out:
+ return ret;
+}
+
+/**
+ * pk_debuginfo_install_progress_cb:
+ **/
+static void
+pk_debuginfo_install_progress_cb (PkProgress *progress, PkProgressType type, PkDebuginfoInstallPrivate *priv)
+{
+ gint percentage;
+ gchar *package_id = NULL;
+
+ if (type == PK_PROGRESS_TYPE_PERCENTAGE) {
+ g_object_get (progress, "percentage", &percentage, NULL);
+ pk_progress_bar_set_percentage (priv->progress_bar, percentage);
+ goto out;
+ }
+ if (type == PK_PROGRESS_TYPE_PACKAGE_ID) {
+ g_object_get (progress, "package-id", &package_id, NULL);
+ egg_debug ("now downloading %s", package_id);
+ goto out;
+ }
+out:
+ g_free (package_id);
+}
+
+/**
+ * pk_debuginfo_install_packages_install:
+ **/
+static gboolean
+pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArray *array, GError **error)
+{
+ gboolean ret = TRUE;
+ PkResults *results = NULL;
+ gchar **package_ids;
+ GError *error_local = NULL;
+ PkExitEnum exit_enum;
+
+ /* mush back into a char** */
+ package_ids = pk_ptr_array_to_strv (array);
+
+ /* TRANSLATORS: we are starting to install the packages */
+ pk_progress_bar_start (priv->progress_bar, _("Starting install"));
+
+ /* enable this repo */
+ results = pk_task_install_packages_sync (PK_TASK(priv->client), package_ids, NULL,
+ (PkProgressCallback) pk_debuginfo_install_progress_cb, priv, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
+ g_error_free (error_local);
+ egg_error ("moo: %s", error_local->message);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* end progressbar output */
+ pk_progress_bar_end (priv->progress_bar);
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ g_strfreev (package_ids);
+ return ret;
+}
+
+/**
+ * pk_debuginfo_install_resolve_name_to_id:
+ **/
+static gchar *
+pk_debuginfo_install_resolve_name_to_id (PkDebuginfoInstallPrivate *priv, const gchar *package_name, GError **error)
+{
+ PkResults *results = NULL;
+ const PkItemPackage *item;
+ gchar *package_id = NULL;
+ GPtrArray *list = NULL;
+ GError *error_local = NULL;
+ gchar **names;
+ PkExitEnum exit_enum;
+
+ /* resolve takes a char** */
+ names = g_strsplit (package_name, ";", -1);
+
+ /* resolve */
+ results = pk_client_resolve_sync (priv->client, pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1), names, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
+ g_error_free (error_local);
+ goto out;
+ }
+
+ /* check we only got one match */
+ list = pk_results_get_package_array (results);
+ if (list->len == 0) {
+ *error = g_error_new (1, 0, "no package %s found", package_name);
+ goto out;
+ }
+ if (list->len > 1) {
+ *error = g_error_new (1, 0, "more than one package found for %s", package_name);
+ goto out;
+ }
+
+ /* get the package id */
+ item = g_ptr_array_index (list, 0);
+ package_id = g_strdup (item->package_id);
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ if (list != NULL)
+ g_ptr_array_unref (list);
+ g_strfreev (names);
+ return package_id;
+}
+
+/**
+ * pk_debuginfo_install_remove_suffix:
+ **/
+static gboolean
+pk_debuginfo_install_remove_suffix (gchar *name, const gchar *suffix)
+{
+ gboolean ret = FALSE;
+ guint slen, len;
+
+ if (!g_str_has_suffix (name, suffix))
+ goto out;
+
+ /* get lengths */
+ len = strlen (name);
+ slen = strlen (suffix);
+
+ /* same string */
+ if (len == slen)
+ goto out;
+
+ /* truncate */
+ name[len-slen] = '\0';
+ ret = TRUE;
+out:
+ return ret;
+}
+
+/**
+ * pk_debuginfo_install_print_array:
+ **/
+static void
+pk_debuginfo_install_print_array (GPtrArray *array)
+{
+ guint i;
+ const gchar *package_id;
+ gchar **split;
+
+ for (i=0; i<array->len; i++) {
+ package_id = g_ptr_array_index (array, i);
+ split = pk_package_id_split (package_id);
+ g_print ("%i\t%s-%s(%s)\t%s\n", i+1, split[0], split[1], split[2], split[3]);
+ g_strfreev (split);
+ }
+}
+
+/**
+ * pk_debuginfo_install_name_to_debuginfo:
+ **/
+static gchar *
+pk_debuginfo_install_name_to_debuginfo (const gchar *name)
+{
+ gchar *name_debuginfo = NULL;
+ gchar *name_tmp = NULL;
+
+ /* nothing */
+ if (name == NULL)
+ goto out;
+
+ name_tmp = g_strdup (name);
+
+ /* remove suffix */
+ pk_debuginfo_install_remove_suffix (name_tmp, "-libs");
+
+ /* append -debuginfo */
+ name_debuginfo = g_strjoin ("-", name_tmp, "debuginfo", NULL);
+out:
+ g_free (name_tmp);
+ return name_debuginfo;
+}
+
+/**
+ * pk_debuginfo_install_add_deps:
+ **/
+static gboolean
+pk_debuginfo_install_add_deps (PkDebuginfoInstallPrivate *priv, GPtrArray *packages_search, GPtrArray *packages_results, GError **error)
+{
+ gboolean ret = TRUE;
+ PkResults *results = NULL;
+ const PkItemPackage *item;
+ gchar *package_id = NULL;
+ GPtrArray *list = NULL;
+ GError *error_local = NULL;
+ gchar **package_ids = NULL;
+ gchar *name_debuginfo;
+ guint i;
+ gchar **split;
+ PkExitEnum exit_enum;
+
+ /* get depends for them all, not adding dup's */
+ package_ids = pk_ptr_array_to_strv (packages_search);
+ results = pk_client_get_depends_sync (priv->client, PK_FILTER_ENUM_NONE, package_ids, TRUE, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to get_depends: %s", error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ *error = g_error_new (1, 0, "failed to resolve: %s", pk_exit_enum_to_text (exit_enum));
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* add dependant packages */
+ list = pk_results_get_package_array (results);
+ for (i=0; i<list->len; i++) {
+ item = g_ptr_array_index (list, 0);
+ split = pk_package_id_split (item->package_id);
+ /* add -debuginfo */
+ name_debuginfo = pk_debuginfo_install_name_to_debuginfo (split[0]);
+ g_strfreev (split);
+
+ /* resolve name */
+ egg_debug ("resolving: %s", name_debuginfo);
+ package_id = pk_debuginfo_install_resolve_name_to_id (priv, name_debuginfo, &error_local);
+ if (package_id == NULL) {
+ /* TRANSLATORS: we couldn't find the package name, non-fatal */
+ g_print (_("Failed to find the package %s, or already installed: %s"), name_debuginfo, error_local->message);
+ g_print ("\n");
+ g_error_free (error_local);
+ /* don't quit, this is non-fatal */
+ error = NULL;
+ }
+
+ /* add to array to install */
+ if (package_id != NULL && !g_str_has_suffix (package_id, "installed")) {
+ egg_debug ("going to try to install (for deps): %s", package_id);
+ g_ptr_array_add (packages_results, g_strdup (package_id));
+ }
+
+ g_free (package_id);
+ g_free (name_debuginfo);
+ }
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ if (list != NULL)
+ g_ptr_array_unref (list);
+ g_strfreev (package_ids);
+ return ret;
+}
+
+/**
+ * pk_debuginfo_install_get_repo_list:
+ **/
+static gboolean
+pk_debuginfo_install_get_repo_list (PkDebuginfoInstallPrivate *priv, GError **error)
+{
+ gboolean ret = FALSE;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ guint i;
+ GPtrArray *array;
+ GError *error_local = NULL;
+ const PkItemRepoDetail *item;
+
+ /* get all repo details */
+ results = pk_client_get_repo_list_sync (priv->client, PK_FILTER_ENUM_NONE, NULL, NULL, NULL, &error_local);
+ if (results == NULL) {
+ *error = g_error_new (1, 0, "failed to get repo list: %s", error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ /* test exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ g_print ("failed to get repo list: %s", pk_exit_enum_to_text (exit_enum));
+ goto out;
+ }
+
+ /* get results */
+ array = pk_results_get_repo_detail_array (results);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ if (item->enabled)
+ g_ptr_array_add (priv->enabled, g_strdup (item->repo_id));
+ else
+ g_ptr_array_add (priv->disabled, g_strdup (item->repo_id));
+ }
+ ret = TRUE;
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ return ret;
+}
+
+/**
+ * main:
+ **/
+int
+main (int argc, char *argv[])
+{
+ gboolean ret;
+ GError *error = NULL;
+ GPtrArray *added_repos = NULL;
+ GPtrArray *package_ids_recognised = NULL;
+ GPtrArray *package_ids_to_install = NULL;
+ guint i;
+ guint retval = 0;
+ gchar *package_id;
+ gchar *name;
+ gchar *name_debuginfo;
+ gboolean verbose = FALSE;
+ gboolean simulate = FALSE;
+ gboolean no_depends = FALSE;
+ gboolean quiet = FALSE;
+ GOptionContext *context;
+ const gchar *repo_id;
+ gchar *repo_id_debuginfo;
+ PkDebuginfoInstallPrivate *priv = NULL;
+ guint step = 1;
+
+ const GOptionEntry options[] = {
+ { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+ _("Show extra debugging information"), NULL },
+ { "simulate", 's', 0, G_OPTION_ARG_NONE, &simulate,
+ /* command line argument, simulate what would be done, but don't actually do it */
+ _("Don't actually install any packages, only simulate what would be installed"), NULL },
+ { "no-depends", 'n', 0, G_OPTION_ARG_NONE, &no_depends,
+ /* command line argument, do we skip packages that depend on the ones specified */
+ _("Do not install dependencies of the core packages"), NULL },
+ { "quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet,
+ /* command line argument, do we operate quietly */
+ _("Do not display information or progress"), NULL },
+ { NULL}
+ };
+
+ setlocale (LC_ALL, "");
+ bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
+ bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ textdomain (GETTEXT_PACKAGE);
+
+ if (! g_thread_supported ())
+ g_thread_init (NULL);
+ g_type_init ();
+
+ context = g_option_context_new (NULL);
+ /* TRANSLATORS: tool that gets called when the command is not found */
+ g_option_context_set_summary (context, _("PackageKit Debuginfo Installer"));
+ g_option_context_add_main_entries (context, options, NULL);
+ g_option_context_parse (context, &argc, &argv, NULL);
+ g_option_context_free (context);
+
+ egg_debug_init (verbose);
+
+ /* no input */
+ if (argv[1] == NULL) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: the use needs to specify a list of package names on the command line */
+ g_print (_("ERROR: Specify package names to install."));
+ g_print ("\n");
+ }
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED;
+ goto out;
+ }
+
+ /* clear private struct */
+ priv = g_new0 (PkDebuginfoInstallPrivate, 1);
+
+ /* store as strings */
+ priv->enabled = g_ptr_array_new ();
+ priv->disabled = g_ptr_array_new ();
+ added_repos = g_ptr_array_new ();
+ package_ids_to_install = g_ptr_array_new ();
+ package_ids_recognised = g_ptr_array_new ();
+
+ /* create #PkClient */
+ priv->client = PK_CLIENT(pk_task_text_new ());
+
+ /* use text progressbar */
+ priv->progress_bar = pk_progress_bar_new ();
+ pk_progress_bar_set_size (priv->progress_bar, 25);
+ pk_progress_bar_set_padding (priv->progress_bar, 60);
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: we are getting the list of repositories */
+ g_print (_("Getting sources list"));
+ g_print ("...");
+ }
+
+ /* get all enabled repos */
+ ret = pk_debuginfo_install_get_repo_list (priv, &error);
+ if (!ret) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+ /* TRANSLATORS: we're failed to enable the sources, detailed error follows */
+ g_print ("Failed to enable sources list: %s", error->message);
+ g_print ("\n");
+ g_error_free (error);
+
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE;
+ goto out;
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print ("%s ", _("OK."));
+
+ /* TRANSLATORS: tell the user what we found */
+ g_print (_("Found %i enabled and %i disabled sources."), priv->enabled->len, priv->disabled->len);
+ g_print ("\n");
+
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: we're finding repositories that match out pattern */
+ g_print (_("Finding debugging sources"));
+ g_print ("...");
+ }
+
+ /* find all debuginfo repos for repos that are enabled */
+ for (i=0; i<priv->enabled->len; i++) {
+
+ /* is already a -debuginfo */
+ repo_id = g_ptr_array_index (priv->enabled, i);
+ if (g_str_has_suffix (repo_id, "-debuginfo")) {
+ egg_debug ("already enabled: %s", repo_id);
+ continue;
+ }
+
+ /* has a debuginfo repo */
+ repo_id_debuginfo = g_strjoin ("-", repo_id, "debuginfo", NULL);
+ ret = pk_debuginfo_install_in_array (priv->disabled, repo_id_debuginfo);
+ if (ret) {
+ /* add to list to change back at the end */
+ g_ptr_array_add (added_repos, g_strdup (repo_id_debuginfo));
+ } else {
+ egg_debug ("no debuginfo repo for %s", repo_id_debuginfo);
+ }
+
+ g_free (repo_id_debuginfo);
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print ("%s ", _("OK."));
+
+ /* TRANSLATORS: tell the user what we found */
+ g_print (_("Found %i disabled debuginfo repos."), added_repos->len);
+ g_print ("\n");
+
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: we're now enabling all the debug sources we found */
+ g_print (_("Enabling debugging sources"));
+ g_print ("...");
+ }
+
+ /* enable all debuginfo repos we found */
+ ret = pk_debuginfo_install_enable_repos (priv, added_repos, TRUE, &error);
+ if (!ret) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+ /* TRANSLATORS: we're failed to enable the sources, detailed error follows */
+ g_print ("Failed to enable debugging sources: %s", error->message);
+ g_print ("\n");
+ g_error_free (error);
+
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_ENABLE;
+ goto out;
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print ("%s ", _("OK."));
+
+ /* TRANSLATORS: tell the user how many we enabled */
+ g_print (_("Enabled %i debugging sources."), added_repos->len);
+ g_print ("\n");
+
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: we're now finding packages that match in all the repos */
+ g_print (_("Finding debugging packages"));
+ g_print ("...");
+ }
+
+ /* parse arguments and resolve to packages */
+ for (i=1; argv[i] != NULL; i++) {
+ name = pk_get_package_name_from_nevra (argv[i]);
+
+ /* resolve name */
+ package_id = pk_debuginfo_install_resolve_name_to_id (priv, name, &error);
+ if (package_id == NULL) {
+ /* TRANSLATORS: we couldn't find the package name, non-fatal */
+ g_print (_("Failed to find the package %s: %s"), name, error->message);
+ g_print ("\n");
+ g_error_free (error);
+ /* don't quit, this is non-fatal */
+ error = NULL;
+ }
+
+ /* add to array to install */
+ if (package_id != NULL) {
+ egg_debug ("going to try to install: %s", package_id);
+ g_ptr_array_add (package_ids_recognised, package_id);
+ } else {
+ goto not_found;
+ }
+
+ /* convert into basename */
+ name_debuginfo = pk_debuginfo_install_name_to_debuginfo (name);
+ egg_debug ("install %s [%s]", argv[i], name_debuginfo);
+
+ /* resolve name */
+ package_id = pk_debuginfo_install_resolve_name_to_id (priv, name_debuginfo, &error);
+ if (package_id == NULL) {
+ /* TRANSLATORS: we couldn't find the debuginfo package name, non-fatal */
+ g_print (_("Failed to find the debuginfo package %s: %s"), name_debuginfo, error->message);
+ g_print ("\n");
+ g_error_free (error);
+ /* don't quit, this is non-fatal */
+ error = NULL;
+ }
+
+ /* add to array to install */
+ if (package_id != NULL && !g_str_has_suffix (package_id, "installed")) {
+ egg_debug ("going to try to install: %s", package_id);
+ g_ptr_array_add (package_ids_to_install, g_strdup (package_id));
+ }
+
+ g_free (name_debuginfo);
+not_found:
+ g_free (package_id);
+ g_free (name);
+ }
+
+ /* no packages? */
+ if (package_ids_to_install->len == 0) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+
+ /* TRANSLATORS: no debuginfo packages could be found to be installed */
+ g_print (_("Found no packages to install."));
+ g_print ("\n");
+
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_NOTHING_TO_DO;
+ goto out;
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print ("%s ", _("OK."));
+
+ /* TRANSLATORS: tell the user we found some packages, and then list them */
+ g_print (_("Found %i packages:"), package_ids_to_install->len);
+ g_print ("\n");
+ }
+
+ /* optional */
+ if (!no_depends) {
+
+ /* save for later logic */
+ i = package_ids_to_install->len;
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: tell the user we are searching for deps */
+ g_print (_("Finding packages that depend on these packages"));
+ g_print ("...");
+ }
+
+ ret = pk_debuginfo_install_add_deps (priv, package_ids_recognised, package_ids_to_install, &error);
+ if (!ret) {
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+ /* TRANSLATORS: could not install, detailed error follows */
+ g_print (_("Could not find dependant packages: %s"), error->message);
+ g_print ("\n");
+ g_error_free (error);
+
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_FIND_DEPS;
+ goto out;
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print ("%s ", _("OK."));
+
+ if (i < package_ids_to_install->len) {
+ /* TRANSLATORS: tell the user we found some more packages */
+ g_print (_("Found %i extra packages."), package_ids_to_install->len - i);
+ g_print ("\n");
+ } else {
+ /* TRANSLATORS: tell the user we found some more packages */
+ g_print (_("No extra packages required."));
+ g_print ("\n");
+ }
+ }
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: tell the user we found some packages (and deps), and then list them */
+ g_print (_("Found %i packages to install:"), package_ids_to_install->len);
+ g_print ("\n");
+ }
+
+ /* print list */
+ if (!quiet)
+ pk_debuginfo_install_print_array (package_ids_to_install);
+
+ /* simulate mode for testing */
+ if (simulate) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: simulate mode is a testing mode where we quit before the action */
+ g_print (_("Not installing packages in simulate mode"));
+ g_print ("\n");
+ }
+ goto out;
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: we are now installing the debuginfo packages we found earlier */
+ g_print (_("Installing packages"));
+ g_print ("...\n");
+ }
+
+ /* install */
+ ret = pk_debuginfo_install_packages_install (priv, package_ids_to_install, &error);
+ if (!ret) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+ /* TRANSLATORS: could not install, detailed error follows */
+ g_print (_("Could not install packages: %s"), error->message);
+ g_print ("\n");
+ g_error_free (error);
+
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_INSTALL;
+ goto out;
+ }
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print (_("OK."));
+ g_print ("\n");
+ }
+out:
+ if (package_ids_to_install != NULL) {
+ g_ptr_array_foreach (package_ids_to_install, (GFunc) g_free, NULL);
+ g_ptr_array_free (package_ids_to_install, TRUE);
+ }
+ if (package_ids_recognised != NULL) {
+ g_ptr_array_foreach (package_ids_recognised, (GFunc) g_free, NULL);
+ g_ptr_array_free (package_ids_recognised, TRUE);
+ }
+ if (added_repos != NULL) {
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* starting this section */
+ g_print ("%i. ", step++);
+
+ /* TRANSLATORS: we are now disabling all debuginfo repos we previously enabled */
+ g_print (_("Disabling sources previously enabled"));
+ g_print ("...");
+ }
+ /* disable all debuginfo repos we previously enabled */
+ ret = pk_debuginfo_install_enable_repos (priv, added_repos, FALSE, &error);
+ if (!ret) {
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: operation was not successful */
+ g_print ("%s ", _("FAILED."));
+ }
+ /* TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows */
+ g_print (_("Could not disable the debugging sources: %s"), error->message);
+ g_print ("\n");
+ g_error_free (error);
+
+ /* return correct failure retval */
+ retval = PK_DEBUGINFO_EXIT_CODE_FAILED_TO_DISABLE;
+
+ } else {
+
+ /* should be vocal? */
+ if (!quiet) {
+ /* TRANSLATORS: all completed 100% */
+ g_print ("%s ", _("OK."));
+
+ /* TRANSLATORS: we disabled all the debugging repos that we enabled before */
+ g_print (_("Disabled %i debugging sources."), added_repos->len);
+ g_print ("\n");
+ }
+ }
+
+ g_ptr_array_foreach (added_repos, (GFunc) g_free, NULL);
+ g_ptr_array_free (added_repos, TRUE);
+ }
+ if (priv->enabled != NULL) {
+ g_ptr_array_foreach (priv->enabled, (GFunc) g_free, NULL);
+ g_ptr_array_free (priv->enabled, TRUE);
+ }
+ if (priv->disabled != NULL) {
+ g_ptr_array_foreach (priv->disabled, (GFunc) g_free, NULL);
+ g_ptr_array_free (priv->disabled, TRUE);
+ }
+ if (priv->client != NULL)
+ g_object_unref (priv->client);
+ if (priv->progress_bar != NULL)
+ g_object_unref (priv->progress_bar);
+ g_free (priv);
+ return retval;
+}
+
commit 8c48d16badf7cac3a591e3118380822704beb55b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 12:08:57 2009 +0100
trivial: add sync helpers for PkTask too
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 028c3be..ab2dd09 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -115,14 +115,16 @@ libpackagekitprivate_a_SOURCES = \
egg-string.c \
egg-string.h \
packagekit-private.h \
- pk-task-text.c \
- pk-task-text.h \
pk-client-sync.c \
pk-client-sync.h \
pk-console-shared.c \
pk-console-shared.h \
pk-progress-bar.c \
pk-progress-bar.h \
+ pk-task-sync.c \
+ pk-task-sync.h \
+ pk-task-text.c \
+ pk-task-text.h \
$(NULL)
libpackagekitprivate_a_CFLAGS = \
diff --git a/lib/packagekit-glib2/packagekit-private.h b/lib/packagekit-glib2/packagekit-private.h
index 55cea2a..0c0c889 100644
--- a/lib/packagekit-glib2/packagekit-private.h
+++ b/lib/packagekit-glib2/packagekit-private.h
@@ -25,6 +25,7 @@
#define __PACKAGEKIT_PRIVATE_H_INSIDE__
#include <packagekit-glib2/pk-client-sync.h>
+#include <packagekit-glib2/pk-task-sync.h>
#include <packagekit-glib2/pk-task-text.h>
#include <packagekit-glib2/pk-console-shared.h>
#include <packagekit-glib2/pk-progress-bar.h>
diff --git a/lib/packagekit-glib2/pk-task-sync.c b/lib/packagekit-glib2/pk-task-sync.c
new file mode 100644
index 0000000..ac5f092
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task-sync.c
@@ -0,0 +1,294 @@
+/* -*- 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 <stdio.h>
+#include <gio/gio.h>
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+#include "pk-task-sync.h"
+
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ PkResults *results;
+} PkTaskHelper;
+
+/**
+ * pk_task_generic_finish_sync:
+ **/
+static void
+pk_task_generic_finish_sync (PkTask *task, GAsyncResult *res, PkTaskHelper *helper)
+{
+ PkResults *results;
+ /* get the result */
+ results = pk_task_generic_finish (task, res, helper->error);
+ if (results != NULL) {
+ g_object_unref (results);
+ helper->results = g_object_ref (G_OBJECT (results));
+ }
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_task_update_system_sync:
+ * @task: a valid #PkTask instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * 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()
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_task_update_system_sync (PkTask *task, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkTaskHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_TASK (task), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkTaskHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_task_update_system_async (task, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_task_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_task_remove_packages_sync:
+ * @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
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * 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.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_task_remove_packages_sync (PkTask *task, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkTaskHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_TASK (task), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkTaskHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_task_remove_packages_async (task, package_ids, allow_deps, autoremove, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_task_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_task_install_packages_sync:
+ * @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
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Install a package of the newest and most correct version.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_task_install_packages_sync (PkTask *task, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkTaskHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_TASK (task), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkTaskHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_task_install_packages_async (task, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_task_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_task_update_packages_sync:
+ * @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
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Update specific packages to the newest available versions.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_task_update_packages_sync (PkTask *task, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkTaskHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_TASK (task), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkTaskHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_task_update_packages_async (task, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_task_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_task_install_files_sync:
+ * @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
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Install a file locally, and get the deps from the repositories.
+ * This is useful for double clicking on a .rpm or .deb file.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_task_install_files_sync (PkTask *task, gchar **files, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkTaskHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_TASK (task), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkTaskHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_task_install_files_async (task, files, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_task_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
diff --git a/lib/packagekit-glib2/pk-task-sync.h b/lib/packagekit-glib2/pk-task-sync.h
new file mode 100644
index 0000000..bdb94a0
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task-sync.h
@@ -0,0 +1,65 @@
+/* -*- 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.
+ */
+
+#ifndef __PK_TASK_SYNC_H
+#define __PK_TASK_SYNC_H
+
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+PkResults *pk_task_remove_packages_sync (PkTask *task,
+ gchar **package_ids,
+ gboolean allow_deps,
+ gboolean autoremove,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_task_install_packages_sync (PkTask *task,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_task_update_packages_sync (PkTask *task,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_task_install_files_sync (PkTask *task,
+ gchar **files,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_task_update_system_sync (PkTask *task,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+#endif /* __PK_TASK_SYNC_H */
+
commit 097d80adc0171285517b3542a4f09e10efff06ee
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 11:19:40 2009 +0100
trivial: add sync versions of all the PkClient methods
diff --git a/lib/packagekit-glib2/pk-client-sync.c b/lib/packagekit-glib2/pk-client-sync.c
index 1f91e4d..9278226 100644
--- a/lib/packagekit-glib2/pk-client-sync.c
+++ b/lib/packagekit-glib2/pk-client-sync.c
@@ -56,21 +56,30 @@ pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelp
/**
* pk_client_resolve_sync:
* @client: a valid #PkClient instance
- * @error: A #GError or %NULL
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @packages: an array of package names to resolve, e.g. "gnome-system-tools"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Resolve a package name into a %package_id. This can return installed and
+ * available packages and allows you find out if a package is installed locally
+ * or is available in a repository.
*
- * Resolves a package to a Package ID.
* Warning: this function is synchronous, and may block. Do not use it in GUI
* applications.
*
* Return value: a %PkResults object, or NULL for error
**/
PkResults *
-pk_client_resolve_sync (PkClient *client, PkFilterEnum filter, gchar **packages, GCancellable *cancellable,
+pk_client_resolve_sync (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
{
PkClientHelper *helper;
PkResults *results;
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
/* create temp object */
@@ -79,8 +88,153 @@ pk_client_resolve_sync (PkClient *client, PkFilterEnum filter, gchar **packages,
helper->error = error;
/* run async method */
- pk_client_resolve_async (client, filter, packages, cancellable, progress_callback, progress_user_data,
+ pk_client_resolve_async (client, filters, packages, cancellable, progress_callback, progress_user_data,
(GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_search_name_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: free text to search for, for instance, "power"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Search all the locally installed files and remote repositories for a package
+ * that matches a specific name.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_search_name_sync (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_search_name_async (client, filters, search, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_search_details_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: free text to search for, for instance, "power"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Search all detailed summary information to try and find a keyword.
+ * Think of this as pk_client_search_name(), but trying much harder and
+ * taking longer.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_search_details_sync (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_search_details_async (client, filters, search, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_search_group_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: a group enum to search for, for instance, "system-tools"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Return all packages in a specific group.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_search_group_sync (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_search_group_async (client, filters, search, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
g_main_loop_run (helper->loop);
results = helper->results;
@@ -95,21 +249,359 @@ pk_client_resolve_sync (PkClient *client, PkFilterEnum filter, gchar **packages,
/**
* pk_client_search_file_sync:
* @client: a valid #PkClient instance
- * @error: A #GError or %NULL
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @search: file to search for, for instance, "/sbin/service"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Search for packages that provide a specific file.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_search_file_sync (PkClient *client, PkBitfield filters, const gchar *search, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_search_file_async (client, filters, search, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_details_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get details of a package, so more information can be obtained for GUI
+ * or command line tools.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_details_sync (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_details_async (client, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_update_detail_sync:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get details about the specific update, for instance any CVE urls and
+ * severity information.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_update_detail_sync (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_update_detail_async (client, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_download_packages_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @directory: the location where packages are to be downloaded
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Downloads package files to a specified location.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_download_packages_sync (PkClient *client, gchar **package_ids, const gchar *directory, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_download_packages_async (client, package_ids, directory, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_updates_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get a list of all the packages that can be updated for all repositories.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_updates_sync (PkClient *client, PkBitfield filters, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_updates_async (client, filters, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_old_transactions_sync:
+ * @client: a valid #PkClient instance
+ * @number: the number of past transactions to return, or 0 for all
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get the old transaction list, mainly used for the rollback viewer.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_old_transactions_sync (PkClient *client, guint number, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_old_transactions_async (client, number, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_update_system_sync:
+ * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Update all the packages on the system with the highest versions found in all
+ * repositories.
+ * NOTE: you can't choose what repositories to update from, but you can do:
+ * - pk_client_repo_disable()
+ * - pk_client_update_system()
+ * - pk_client_repo_enable()
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_update_system_sync (PkClient *client, gboolean only_trusted, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_update_system_async (client, only_trusted, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_depends_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @recursive: If we should search recursively for depends
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get the packages that depend this one, i.e. child->parent.
*
- * Resolves a filename to multiple Package IDs.
* Warning: this function is synchronous, and may block. Do not use it in GUI
* applications.
*
* Return value: a %PkResults object, or NULL for error
**/
PkResults *
-pk_client_search_file_sync (PkClient *client, PkFilterEnum filter, const gchar *filename, GCancellable *cancellable,
+pk_client_get_depends_sync (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
{
PkClientHelper *helper;
PkResults *results;
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
/* create temp object */
@@ -118,8 +610,999 @@ pk_client_search_file_sync (PkClient *client, PkFilterEnum filter, const gchar *
helper->error = error;
/* run async method */
- pk_client_search_file_async (client, filter, filename, cancellable, progress_callback, progress_user_data,
+ pk_client_get_depends_async (client, filters, package_ids, recursive, cancellable, progress_callback, progress_user_data,
(GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_packages_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get the list of packages from the backend
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_packages_sync (PkClient *client, PkBitfield filters, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_packages_async (client, filters, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_requires_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @recursive: If we should search recursively for requires
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get the packages that require this one, i.e. parent->child.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_requires_sync (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_requires_async (client, filters, package_ids, recursive, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_what_provides_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
+ * @provides: a #PkProvidesEnum value such as PK_PROVIDES_ENUM_CODEC
+ * @search: a search term such as "sound/mp3"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * This should return packages that provide the supplied attributes.
+ * This method is useful for finding out what package(s) provide a modalias
+ * or GStreamer codec string.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_what_provides_sync (PkClient *client, PkBitfield filters, PkProvidesEnum provides, const gchar *search, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_what_provides_async (client, filters, provides, search, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_distro_upgrades_sync:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * This method should return a list of distribution upgrades that are available.
+ * It should not return updates, only major upgrades.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_distro_upgrades_sync (PkClient *client, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_distro_upgrades_async (client, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_files_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get the file list (i.e. a list of files installed) for the specified package.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_files_sync (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_files_async (client, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_categories_sync:
+ * @client: a valid #PkClient instance
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get a list of all categories supported.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_categories_sync (PkClient *client, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_categories_async (client, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_remove_packages_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @allow_deps: if other dependant packages are allowed to be removed from the computer
+ * @autoremove: if other packages installed at the same time should be tried to remove
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * 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.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_remove_packages_sync (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_remove_packages_async (client, package_ids, allow_deps, autoremove, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_refresh_cache_sync:
+ * @client: a valid #PkClient instance
+ * @force: if we should aggressively drop caches
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Refresh the cache, i.e. download new metadata from a remote URL so that
+ * package lists are up to date.
+ * This action may take a few minutes and should be done when the session and
+ * system are idle.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_refresh_cache_sync (PkClient *client, gboolean force, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_refresh_cache_async (client, force, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_install_packages_sync:
+ * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Install a package of the newest and most correct version.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_install_packages_sync (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_install_packages_async (client, only_trusted, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_install_signature_sync:
+ * @client: a valid #PkClient instance
+ * @type: the signature type, e.g. %PK_SIGTYPE_ENUM_GPG
+ * @key_id: a key ID such as "0df23df"
+ * @package_id: a signature_id structure such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Install a software source signature of the newest and most correct version.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_install_signature_sync (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_install_signature_async (client, type, key_id, package_id, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_update_packages_sync:
+ * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Update specific packages to the newest available versions.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_update_packages_sync (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_update_packages_async (client, only_trusted, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_install_files_sync:
+ * @client: a valid #PkClient instance
+ * @only_trusted: only trusted packages should be installed
+ * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Install a file locally, and get the deps from the repositories.
+ * This is useful for double clicking on a .rpm or .deb file.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_install_files_sync (PkClient *client, gboolean only_trusted, gchar **files, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_install_files_async (client, only_trusted, files, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_accept_eula_sync:
+ * @client: a valid #PkClient instance
+ * @eula_id: the <literal>eula_id</literal> we are agreeing to
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * We may want to agree to a EULA dialog if one is presented.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_accept_eula_sync (PkClient *client, const gchar *eula_id, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_accept_eula_async (client, eula_id, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_rollback_sync:
+ * @client: a valid #PkClient instance
+ * @transaction_id: the <literal>transaction_id</literal> we want to return to
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * We may want to agree to a EULA dialog if one is presented.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_rollback_sync (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_accept_eula_async (client, transaction_id, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_get_repo_list_sync:
+ * @client: a valid #PkClient instance
+ * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Get the list of repositories installed on the system.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_get_repo_list_sync (PkClient *client, PkBitfield filters, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_get_repo_list_async (client, filters, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_repo_enable_sync:
+ * @client: a valid #PkClient instance
+ * @repo_id: a repo_id structure such as "livna-devel"
+ * @enabled: if we should enable the repository
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Enable or disable the repository.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_repo_enable_sync (PkClient *client, const gchar *repo_id, gboolean enabled, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_repo_enable_async (client, repo_id, enabled, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_repo_set_data_sync:
+ * @client: a valid #PkClient instance
+ * @repo_id: a repo_id structure such as "livna-devel"
+ * @parameter: the parameter to change
+ * @value: what we should change it to
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * We may want to set a repository parameter.
+ * NOTE: this is free text, and is left to the backend to define a format.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_repo_set_data_sync (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_repo_set_data_async (client, repo_id, parameter, value, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_simulate_install_files_sync:
+ * @client: a valid #PkClient instance
+ * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Simulate an installation of files.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_simulate_install_files_sync (PkClient *client, gchar **files, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_simulate_install_files_async (client, files, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_simulate_install_packages_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Simulate an installation of packages.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_simulate_install_packages_sync (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_simulate_install_packages_async (client, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_simulate_remove_packages_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Simulate a removal of packages.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_simulate_remove_packages_sync (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_simulate_remove_packages_async (client, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_simulate_update_packages_sync:
+ * @client: a valid #PkClient instance
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @cancellable: a #GCancellable or %NULL
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @error: the #GError to store any failure, or %NULL
+ *
+ * Simulate an update of packages.
+ *
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_simulate_update_packages_sync (PkClient *client, gchar **package_ids, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_simulate_update_packages_async (client, package_ids, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+
g_main_loop_run (helper->loop);
results = helper->results;
diff --git a/lib/packagekit-glib2/pk-client-sync.h b/lib/packagekit-glib2/pk-client-sync.h
index f064439..db0b395 100644
--- a/lib/packagekit-glib2/pk-client-sync.h
+++ b/lib/packagekit-glib2/pk-client-sync.h
@@ -26,15 +26,258 @@
#include <packagekit-glib2/packagekit.h>
PkResults *pk_client_resolve_sync (PkClient *client,
- PkFilterEnum filter,
+ PkBitfield filters,
gchar **packages,
GCancellable *cancellable,
PkProgressCallback progress_callback,
gpointer progress_user_data,
GError **error);
+
+PkResults *pk_client_search_name_sync (PkClient *client,
+ PkBitfield filters,
+ const gchar *search,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_search_details_sync (PkClient *client,
+ PkBitfield filters,
+ const gchar *search,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_search_group_sync (PkClient *client,
+ PkBitfield filters,
+ const gchar *search,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
PkResults *pk_client_search_file_sync (PkClient *client,
- PkFilterEnum filter,
- const gchar *filename,
+ PkBitfield filters,
+ const gchar *search,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_details_sync (PkClient *client,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_update_detail_sync (PkClient *client,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_download_packages_sync (PkClient *client,
+ gchar **package_ids,
+ const gchar *directory,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_updates_sync (PkClient *client,
+ PkBitfield filters,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_old_transactions_sync (PkClient *client,
+ guint number,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_update_system_sync (PkClient *client,
+ gboolean only_trusted,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_depends_sync (PkClient *client,
+ PkBitfield filters,
+ gchar **package_ids,
+ gboolean recursive,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_packages_sync (PkClient *client,
+ PkBitfield filters,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_requires_sync (PkClient *client,
+ PkBitfield filters,
+ gchar **package_ids,
+ gboolean recursive,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_what_provides_sync (PkClient *client,
+ PkBitfield filters,
+ PkProvidesEnum provides,
+ const gchar *search,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_distro_upgrades_sync (PkClient *client,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_files_sync (PkClient *client,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_categories_sync (PkClient *client,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_remove_packages_sync (PkClient *client,
+ gchar **package_ids,
+ gboolean allow_deps,
+ gboolean autoremove,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_refresh_cache_sync (PkClient *client,
+ gboolean force,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_install_packages_sync (PkClient *client,
+ gboolean only_trusted,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_install_signature_sync (PkClient *client,
+ PkSigTypeEnum type,
+ const gchar *key_id,
+ const gchar *package_id,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_update_packages_sync (PkClient *client,
+ gboolean only_trusted,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_install_files_sync (PkClient *client,
+ gboolean only_trusted,
+ gchar **files,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_accept_eula_sync (PkClient *client,
+ const gchar *eula_id,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_rollback_sync (PkClient *client,
+ const gchar *transaction_id,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_get_repo_list_sync (PkClient *client,
+ PkBitfield filters,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_repo_enable_sync (PkClient *client,
+ const gchar *repo_id,
+ gboolean enabled,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_repo_set_data_sync (PkClient *client,
+ const gchar *repo_id,
+ const gchar *parameter,
+ const gchar *value,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_simulate_install_files_sync (PkClient *client,
+ gchar **files,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_simulate_install_packages_sync (PkClient *client,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_simulate_remove_packages_sync (PkClient *client,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_simulate_update_packages_sync (PkClient *client,
+ gchar **package_ids,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+PkResults *pk_client_adopt_sync (PkClient *client,
+ const gchar *transaction_id,
GCancellable *cancellable,
PkProgressCallback progress_callback,
gpointer progress_user_data,
commit b3ff79073e4fc13685821763249f9452918eea3c
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 10:53:09 2009 +0100
Add a --enable-glib configure entry, but default this to TRUE
diff --git a/client/Makefile.am b/client/Makefile.am
index 44261d4..d0b3bba 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -48,10 +48,6 @@ INCLUDES = \
-I$(top_srcdir)/lib \
$(NULL)
-PK_GLIB_LIBS = \
- $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
- $(NULL)
-
bin_PROGRAMS = \
pkcon \
pkmon \
@@ -66,47 +62,41 @@ PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
$(NULL)
-noinst_PROGRAMS = pkcon-test pkmon-test pkgenpack-test
-
-libpkconsole_a_CFLAGS = \
- $(WARNINGFLAGS_C) \
- $(NULL)
-
-pkcon_test_SOURCES = \
+pkcon_SOURCES = \
pk-console-test.c \
$(NULL)
-pkcon_test_LDADD = \
+pkcon_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
-pkcon_test_CFLAGS = \
+pkcon_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
-pkmon_test_SOURCES = \
+pkmon_SOURCES = \
pk-monitor-test.c \
$(NULL)
-pkmon_test_LDADD = \
+pkmon_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
-pkmon_test_CFLAGS = \
+pkmon_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
-pkgenpack_test_SOURCES = \
+pkgenpack_SOURCES = \
pk-generate-pack-test.c \
$(NULL)
-pkgenpack_test_LDADD = \
+pkgenpack_LDADD = \
$(ARCHIVE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
@@ -114,11 +104,15 @@ pkgenpack_test_LDADD = \
$(PK_GLIB2_LIBS) \
$(NULL)
-pkgenpack_test_CFLAGS = \
+pkgenpack_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
-endif
+else
+
+PK_GLIB_LIBS = \
+ $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
+ $(NULL)
pkcon_SOURCES = \
egg-debug.c \
@@ -177,6 +171,8 @@ pkgenpack_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
+endif
+
if EGG_BUILD_TESTS
check_PROGRAMS = \
diff --git a/configure.ac b/configure.ac
index a173274..8e93dbf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -546,6 +546,16 @@ AC_ARG_ENABLE(ruck, AS_HELP_STRING([--enable-ruck],[Build ruck client]),
AM_CONDITIONAL(PK_BUILD_RUCK, test $build_ruck = "yes")
dnl ---------------------------------------------------------------------------
+dnl - Able to build GLib (legacy) library
+dnl ---------------------------------------------------------------------------
+AC_ARG_ENABLE(glib, AS_HELP_STRING([--enable-glib],[Build glib library (legacy)]),
+ build_glib=$enableval,build_glib=yes)
+AM_CONDITIONAL(PK_BUILD_GLIB, test $build_glib = "yes")
+if test x$build_glib = xyes; then
+ AC_DEFINE(PK_BUILD_GLIB,1,[Build glib code])
+fi
+
+dnl ---------------------------------------------------------------------------
dnl - Able to build GLib2 library
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(glib2, AS_HELP_STRING([--enable-glib2],[Build glib2 library (experimental)]),
@@ -872,6 +882,7 @@ echo "
pm-utils scripts: ${build_pm_utils}
RUCK client: ${build_ruck}
QT library: ${build_qt}
+ GLib: ${build_glib}
GLib2: ${build_glib2}
Managed bindings: ${build_managed}
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index 272807e..d07c07c 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -13,31 +13,8 @@ INCLUDES = \
-DEGG_CONSOLE="\"PK_CONSOLE\"" \
-I$(top_srcdir)/lib
-PK_GLIB_LIBS = $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
-
libexec_PROGRAMS = pk-command-not-found
-pk_command_not_found_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- egg-string.c \
- egg-string.h \
- pk-tools-common.c \
- pk-tools-common.h \
- pk-command-not-found.c \
- $(NULL)
-
-pk_command_not_found_LDADD = \
- $(GLIB_LIBS) \
- $(DBUS_LIBS) \
- $(PK_GLIB_LIBS) \
- $(NULL)
-
-pk_command_not_found_CFLAGS = \
- $(WARNINGFLAGS_C) \
- $(NULL)
-
-# Only build this functionality if we have glib2, and don't yet install it
if PK_BUILD_GLIB2
PK_GLIB2_LIBS = \
@@ -45,24 +22,43 @@ PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
$(NULL)
-noinst_PROGRAMS = pk-command-not-found-test
-
-pk_command_not_found_test_SOURCES = \
+pk_command_not_found_SOURCES = \
pk-command-not-found-test.c \
$(NULL)
-pk_command_not_found_test_LDADD = \
+pk_command_not_found_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
-pk_command_not_found_test_CFLAGS = \
- $(WARNINGFLAGS_C) \
+else
+
+PK_GLIB_LIBS = \
+ $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
+ $(NULL)
+
+pk_command_not_found_SOURCES = \
+ egg-debug.c \
+ egg-debug.h \
+ egg-string.c \
+ egg-string.h \
+ pk-tools-common.c \
+ pk-tools-common.h \
+ pk-command-not-found.c \
+ $(NULL)
+
+pk_command_not_found_LDADD = \
+ $(GLIB_LIBS) \
+ $(DBUS_LIBS) \
+ $(PK_GLIB_LIBS) \
$(NULL)
endif
+pk_command_not_found_CFLAGS = \
+ $(WARNINGFLAGS_C) \
+ $(NULL)
bashprofiledir = ${SYSCONFDIR}/profile.d
dist_bashprofile_DATA = PackageKit.sh
diff --git a/contrib/debuginfo-install/Makefile.am b/contrib/debuginfo-install/Makefile.am
index f453427..d1a9ac6 100644
--- a/contrib/debuginfo-install/Makefile.am
+++ b/contrib/debuginfo-install/Makefile.am
@@ -28,10 +28,33 @@ INCLUDES = \
-DEGG_CONSOLE="\"PK_CONSOLE\"" \
-I$(top_srcdir)/lib
-PK_GLIB_LIBS = $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
-
bin_PROGRAMS = pk-debuginfo-install
+if PK_BUILD_GLIB2
+
+PK_GLIB2_LIBS = \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
+ $(NULL)
+
+pk_debuginfo_install_SOURCES = \
+ egg-debug.c \
+ egg-debug.h \
+ pk-debuginfo-install-test.c \
+ $(NULL)
+
+pk_debuginfo_install_LDADD = \
+ $(GLIB_LIBS) \
+ $(DBUS_LIBS) \
+ $(PK_GLIB_LIBS) \
+ $(NULL)
+
+else
+
+PK_GLIB_LIBS = \
+ $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
+ $(NULL)
+
pk_debuginfo_install_SOURCES = \
egg-debug.c \
egg-debug.h \
@@ -46,6 +69,8 @@ pk_debuginfo_install_LDADD = \
$(PK_GLIB_LIBS) \
$(NULL)
+endif
+
pk_debuginfo_install_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
diff --git a/lib/Makefile.am b/lib/Makefile.am
index d509ce9..5e70935 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = packagekit-glib python
+SUBDIRS = python
if PK_BUILD_QT
SUBDIRS += packagekit-qt
@@ -8,6 +8,10 @@ if PK_BUILD_MANAGED
SUBDIRS += packagekit-sharp
endif
+if PK_BUILD_GLIB
+SUBDIRS += packagekit-glib
+endif
+
if PK_BUILD_GLIB2
SUBDIRS += packagekit-glib2
endif
commit 826daa3cf74d003788d70e2a68147f8ae7f4abd1
Author: swkothar <swkothar at fedoraproject.org>
Date: Wed Sep 9 09:19:28 2009 +0000
Sending translation for Gujarati
diff --git a/po/gu.po b/po/gu.po
index e9f13dc..0cd30b6 100644
--- a/po/gu.po
+++ b/po/gu.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.gu\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-07 02:36+0000\n"
-"PO-Revision-Date: 2009-09-07 13:42+0530\n"
+"POT-Creation-Date: 2009-09-09 08:33+0000\n"
+"PO-Revision-Date: 2009-09-09 14:48+0530\n"
"Last-Translator: Sweta Kothari <swkothar at redhat.com>\n"
"Language-Team: Gujarati\n"
"MIME-Version: 1.0\n"
@@ -21,106 +21,106 @@ msgstr ""
"\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:143
msgid "Transaction"
msgstr "પરિવહન"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:145
msgid "System time"
msgstr "સિસà«àªàª® સમય"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "Succeeded"
msgstr "સફળ થયà«àª²"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "True"
msgstr "True"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "False"
msgstr "False"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:149
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "àªà«àª®àª¿àªàª¾"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
msgid "Duration"
msgstr "àªàª¾àª³à«"
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
msgid "(seconds)"
msgstr "(સàªàªàª¡à«)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:158
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "àªàª¦à«àª¶ વાàªà«àª¯"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:160
msgid "User ID"
msgstr "વપરાશàªàª°à«àª¤àª¾ ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:167
msgid "Username"
msgstr "વપરાશàªàª°à«àª¤àª¾àª¨àª¾àª®"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:171
msgid "Real name"
msgstr "સાàªà« નામ"
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:179
msgid "Affected packages:"
msgstr "àª
સર થયà«àª² પà«àªà«àªà«:"
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:181
msgid "Affected packages: None"
msgstr "àª
સર થયà«àª² પà«àªà«àªà«: àªàªàª નહિàª"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336 ../lib/packagekit-glib2/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "નà«àªà«àª¨àª¾ પà«àªà«àªà« દà«àª° àªàª°àªµàª¾àª®àª¾àª àªàªµàªµàª¾ àªà«àªàª:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339 ../lib/packagekit-glib2/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµà« ઠપડશà«:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342 ../lib/packagekit-glib2/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« સà«àª§àª¾àª°àªµà« ઠપડશà«:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345 ../lib/packagekit-glib2/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« પà«àª¨:સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµà« ઠપડશà«:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348 ../lib/packagekit-glib2/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "નà«àªà«àª¨àª¾àª પà«àªà«àªà«àª¨à« નà«àªà« àªàª¤àª¾àª°àªµàª¾ ઠપડશà«:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:201
msgid "Distribution"
msgstr "વિતરણ"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:203
msgid "Type"
msgstr "પà«àª°àªàª¾àª°"
@@ -128,45 +128,46 @@ msgstr "પà«àª°àªàª¾àª°"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:205 ../client/pk-console-test.c:226
msgid "Summary"
msgstr "સારાàªàª¶"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:215
msgid "Category"
msgstr "વરà«àª"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:217
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:220
msgid "Parent"
msgstr "પિતà«"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:223
msgid "Name"
msgstr "નામ"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:229
msgid "Icon"
msgstr "àªàª¿àª¹à«àª¨"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:243
msgid "Details about the update:"
msgstr "સà«àª§àª¾àª°àª¾ વિશૠવિàªàª¤à«:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
-#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:249
+#: ../lib/packagekit-glib2/pk-task-text.c:101
+#: ../lib/packagekit-glib2/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
@@ -174,121 +175,121 @@ msgstr[0] "પà«àªà«àª"
msgstr[1] "પà«àªà«àªà«"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:252
msgid "Updates"
msgstr "સà«àª§àª¾àª°à«"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:256
msgid "Obsoletes"
msgstr "àª
પà«àª°àªàª²àª¿àª¤"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
-#: ../client/pk-task-text.c:154
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:260
+#: ../lib/packagekit-glib2/pk-task-text.c:154
msgid "Vendor"
msgstr "વિàªà«àª°à«àª¤àª¾"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:264
msgid "Bugzilla"
msgstr "બàªàªà«àª²àª¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:268
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:272
msgid "Restart"
msgstr "પà«àª¨:શરૠàªàª°à«"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:276
msgid "Update text"
msgstr "લàªàª¾àª£àª¨à« સà«àª§àª¾àª°à«"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:280
msgid "Changes"
msgstr "બદલાવà«"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:284
msgid "State"
msgstr "સà«àª¥àª¿àª¤àª¿"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:289
msgid "Issued"
msgstr "àª
દા àªàª°à«àª²"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:294
msgid "Updated"
msgstr "સà«àª§àª¾àª°à«àª²"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:312
msgid "Enabled"
msgstr "સàªà«àª°àª¿àª¯ થયà«àª² àªà«"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:315
msgid "Disabled"
msgstr "નિષà«àªà«àª°àª¿àª¯ થયà«àª²"
-#: ../client/pk-console.c:555 ../client/pk-console.c:557
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "àªàªàª¾àªµàª¾àª°à«"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "àª
àªà«àªàª¾àª¤"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:337
msgid "System restart required by:"
msgstr "સિસà«àªàª® àªàª°à«àª°àª¿àª¯àª¾àª¤ પà«àª°àª®àª¾àª£à« પà«àª¨:શરૠથાય àªà«:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:340
msgid "Session restart required:"
msgstr "સતà«àª° પà«àª¨:શરૠàªàª°àªµà« àªàª°à«àª°à«:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:343
msgid "System restart (security) required by:"
msgstr "સિસà«àªàª® àªàª°à«àª°àª¿àª¯àª¾àª¤ પà«àª°àª®àª¾àª£à« પà«àª¨:શરૠ(સà«àª°àªà«àª·àª¾) થાય àªà«:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:346
msgid "Session restart (security) required:"
msgstr "સતà«àª° પà«àª¨:શરૠ(સà«àª°àªà«àª·àª¾)àªàª°àªµà« àªàª°à«àª°à«:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:349
msgid "Application restart required by:"
msgstr "àªàª¾àª°à«àª¯àªà«àª°àª® ઠàªàª°à«àª°àª¿àª¯àª¾àª¤ પà«àª°àª®àª¾àª£à« પà«àª¨:શરૠથાય àªà«:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:538
msgid "Please restart the computer to complete the update."
msgstr "સà«àª§àª¾àª°à« સમાપà«àª¤ àªàª°àªµàª¾ માàªà« મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« àªàª®à«àªªà«àª¯à«àªàª° પà«àª¨àªàª¶àª°à« àªàª°à«."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:541
msgid "Please logout and login to complete the update."
msgstr "સà«àª§àª¾àª°à« સમાપà«àª¤ àªàª°àªµàª¾ માàªà« મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« બહાર નà«àªàª³à« àª
નૠપàªà« ફરૠપà«àª°àªµà«àª¶ àªàª°à«."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« àªàª¾àª°à«àª¯àªà«àª°àª® ફરૠશરૠàªàª°à« àªàª¾àª°àª£ àªà« તૠવપરાઠરહà«àª¯à« àªà«."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:544
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -297,7 +298,7 @@ msgstr ""
"સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« દà«àªµàª¾àª®àª¾àª àªàªµà«àª¯àª¾ àªà«."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:547
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -306,442 +307,443 @@ msgstr ""
"àªàª°à« દà«àªµàª¾àª®àª¾àª àªàªµà«àª¯àª¾ àªà«."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "પà«àªà«àª %s પહà«àª²àª¾àª¥à« ઠસà«àª¥àª¾àªªàª¿àª¤ થયà«àª² àªà«"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:817
#, 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: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
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "àªàªàª¤àª°àª¿àª àªà«àª²: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../lib/packagekit-glib2/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "બદલાવૠસાથૠàªàªàª³ વધà«?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:881 ../client/pk-console.c:953
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "પà«àªà«àª સà«àª¥àª¾àªªàª¨ રદ àªàª°à«àª² હતà«!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "ઠસાધન પà«àªà«àªà« સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "ઠસાધન ફાàªàª²à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "ઠસાધન %s દà«àª° àªàª°à« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "ઠસાધન પà«àªà«àªà« દà«àª° àªàª°à« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "વધારાનાઠપà«àªà«àªà« સાથૠàªàªàª³ àªàª¾àª?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1109
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "પà«àªà«àª નિરાàªàª°àª£ રદ થઠહતà«!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "ઠસાધન પà«àªà«àª %s દà«àª° àªàª°à« શàªà«àª¯à«àª નહિઠàªàª¾àª°àª£ àªà« તૠશà«àª§à« શàªàª¾àª¯à«àª નહિàª"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "ઠસાધન પà«àªà«àªà« ડાàªàª¨àª²à«àª¡ àªàª°à« શàªà«àª¯àª¾ નહિàª: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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
+#: ../client/pk-console.c:1270
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:1304 ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "ઠસાધન %s માàªà«àª¨à« àªàª°à«àª°à«àª¯àª¾àª¤à« મà«àª³àªµà« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "ઠસાધન %s માàªà« àªàª§àª¾àª°àªà«àª¤àªªàª£àª¾àª મà«àª³àªµà« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "ઠસાધન %s માàªà« પà«àªà«àª વિàªàª¤à« મà«àª³àªµà« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "ઠસાધન %s માàªà« ફાàªàª²à« શà«àª§à« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1401
#, 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:1424
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "ફાàªàª² પહà«àª²à«àª¥à« ઠàª
સà«àª¤àª¿àª¤à«àªµ ધરાવૠàªà«: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "પà«àªà«àª યાદૠમà«àª³àªµà« રહà«àª¯àª¾ àªà«"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1446
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "ડિસà«àªàª®àª¾àª સàªàªà«àª°àª¹ àªàª°àªµàª¾ માàªà« નિષà«àª«àª³"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "ફાàªàª² àª
સà«àª¤àª¿àª¤à«àªµ ધરાવતૠનથà«: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "àªàª®à«àª°àªµàª¾ માàªà« પà«àªà«àªà«"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "દà«àª àªàª°àªµàª¾ માàªà« પà«àªà«àªà«"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« નવા પà«àªà«àªà«àª¨à« àªàª°à«àª° નથà«"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "સà«àª¥àª¾àªªàª¨ àªàª°àªµàª¾ માàªà«"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "પà«àªà«àª માàªà« શà«àª§à« રહà«àª¯àª¾ àªà«: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "શà«àª§àª¾àª¯à« નથà«."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, 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:1627
+#: ../client/pk-console.c:1626
#: ../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:1663
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "ઠસાધન %s માàªà« સà«àª§àª¾àª°àª¾ વિàªàª¤à« શà«àª§à« શàªà«àª¯à«àª નહિàª: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1670
#, 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:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "àªà«àª²:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:366
msgid "Package description"
msgstr "પà«àªà«àª વરà«àª£àª¨"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:384
msgid "Message:"
msgstr "સàªàª¦à«àª¶:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:403
msgid "Package files"
msgstr "પà«àªà«àª ફાàªàª²à«"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:398
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:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "રà«àªªà«àªà«àªàª°à« સહૠàªàª°à«àª°à«"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800 ../lib/packagekit-glib2/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "શà«àª તમૠઠસહૠસà«àªµà«àªàª¾àª°àª¶à«?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804 ../lib/packagekit-glib2/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "સહૠસà«àªµà«àªàª¾àª°àª¾àª¯à«àª² ન હતà«."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "àª
àªàª¤àª¿àª® વપરાશàªàª°à«àª¤àª¾ લાàªàª¸àª¨à«àª¸ મàªàªà«àª°à«àªªàª¤à«àª°àª àªàª°à«àª°à«"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1846
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "શà«àª તમૠઠલાàªàª¸àª¨à«àª¸ સાથૠમàªàªà«àª° àªà«?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1850
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "લાàªàª¸àª¨à«àª¸ રદ થયà«àª હતà«àª."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:816
msgid "The daemon crashed mid-transaction!"
msgstr "ડિમન મધà«àª¯-પરિવહન દરમà«àª¯àª¾àª¨ àªàª¾àªàªà« પડà«àª¯à«àª!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:850
msgid "PackageKit Console Interface"
msgstr "PackageKit àªàª¨à«àª¸à«àª² àªàª¨à«àªàª°àª«à«àª¸"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:852
msgid "Subcommands:"
msgstr "àªàªªàªàª¦à«àª¶à«:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
-#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
-#: ../client/pk-monitor-test.c:282
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:966
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:222
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found-test.c:614
#: ../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:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:969
#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "àªàª¾àª°à«àª¯àªà«àª°àª® àªàªµà«àª¤à«àª¤àª¿ બતાવૠàª
નૠબહાર નà«àªàª³à«"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:972
msgid "Set the filter, e.g. installed"
msgstr "àªàª¾àª³àª સà«àª¯à«àªà«àª¤ àªàª°à«, દા.ત. સà«àª¥àª¾àªªàª¿àª¤"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:975
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:2063
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "ઠસાધન સિસà«àªàª® DBUS સાથૠàªà«àª¡à« શàªà«àª¯àª¾ નહિàª."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1052
msgid "The filter specified was invalid"
msgstr "સà«àªªàª·à«àª થયà«àª² ફિલà«àªàª° àª
યà«àªà«àª¯ હતà«"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1071
msgid "A search type is required, e.g. name"
msgstr "શà«àª§ પà«àª°àªàª¾àª°àª¨à« àªàª°à«àª°àª¿àª¯àª¾àª¤ àªà«, દા.ત. નામ"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
-#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1078 ../client/pk-console-test.c:1090
+#: ../client/pk-console-test.c:1102 ../client/pk-console-test.c:1114
msgid "A search term is required"
msgstr "શà«àª§ àªàª°à«àª® àªàª°à«àª°à« àªà«"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1124
msgid "Invalid search type"
msgstr "àª
યà«àªà«àª¯ શà«àª§ પà«àª°àªàª¾àª°"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "સà«àª¥àª¾àªªàª¨ àªàª°àªµàª¾ માàªà« પà«àªà«àª નામ àª
થવા ફાàªàª²àª¨àª¾àª® àªàª°à«àª°à« àªà«"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1151
msgid "A type, key_id and package_id are required"
msgstr "પà«àª°àªàª¾àª°, key_id àª
નૠpackage_id àªàª°à«àª°à« àªà«"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1162
msgid "A package name to remove is required"
msgstr "દà«àª° àªàª°àªµàª¾ માàªà« પà«àªà«àª નામ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1171
msgid "A destination directory and the package names to download are required"
msgstr "àª
àªàª¤àª¿àª® મà«àªàª¾àª® ડિરà«àªà«àªàª°à« àª
નૠપàªà« પà«àªà«àª નામૠડાàªàª¨àª²à«àª¡ àªàª°àªµàª¾ માàªà« àªàª°à«àª°à« àªà«"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1178
msgid "Directory not found"
msgstr "ડિરà«àªà«àªàª°à« મળૠનહિàª"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1187
msgid "A licence identifier (eula-id) is required"
msgstr "લાàªàª¸àª¨à«àª¸ àªàª³àªàª¨àª¾àª° (eula-id) àªàª°à«àª°à« àªà«"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1198
msgid "A transaction identifier (tid) is required"
msgstr "પરિવહન àªàª³àªàª¨àª¾àª° (tid) àªàª°à«àª°à« àªà«"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1219
msgid "A package name to resolve is required"
msgstr "સà«àª§àª¾àª°àªµàª¾ માàªà« પà«àªà«àª નામ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1230 ../client/pk-console-test.c:1241
msgid "A repository name is required"
msgstr "રà«àªªà«àªà«àªàª°à« નામ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1252
msgid "A repo name, parameter and value are required"
msgstr "રà«àªªà« નામ, પરિમાણ àª
નૠàªàª¿àªàª®àª¤àª¨à« àªàª°à«àª° àªà«"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1269
msgid "An action, e.g. 'update-system' is required"
msgstr "àªà«àª°àª¿àª¯àª¾, દા.ત. 'update-system àªàª°à«àª°à« àªà«"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1276
msgid "A correct role is required"
msgstr "સાàªà« àªà«àª®àª¿àªàª¾ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:931
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:2352 ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
-#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
-#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1286
+#: ../client/pk-console-test.c:1301 ../client/pk-console-test.c:1310
+#: ../client/pk-console-test.c:1330 ../client/pk-console-test.c:1339
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:285
msgid "A package name is required"
msgstr "પà«àªà«àª નામ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1319
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:2409
+#: ../client/pk-console.c:2408
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:2419 ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "àªà«àª²àªµàª¾ માàªà« ફાàªàª² યાદૠàªàª°à«àª°à« àªà«"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1399
#, c-format
msgid "Option '%s' is not supported"
msgstr "વિàªàª²à«àªª '%s' àªàª§àª¾àª°àªà«àª¤ નથà«"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "ઠપà«àª°àªà«àª°àª¿àª¯àª¾ àªàª°àªµàª¾ માàªà« àª
યà«àªà«àª¯ વિશà«àª·àª¾àª§àª¿àªàª¾àª°à«"
@@ -749,34 +751,24 @@ msgstr "ઠપà«àª°àªà«àª°àª¿àª¯àª¾ àªàª°àªµàª¾ માàªà« àª
યà«àªà«
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1411
msgid "Command failed"
msgstr "àªàª¦à«àª¶ નિષà«àª«àª³"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "àªàª પà«àªà«àª àªàª°àª¤àª¾àª વધૠàªà«àª¡àª£à«àª:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« યà«àªà«àª¯ પà«àªà«àª પસàªàª¦ àªàª°à«: "
-
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734
+#: ../client/pk-console-test.c:568
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "ઠસાધન àªàªªàª²à«àª¬àª§ પà«àªà«àª નૠશà«àª§à« શàªà«àª¯à« નહિàª: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762
+#: ../client/pk-console-test.c:596
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "ઠસાધન સà«àª¥àª¾àªªàª¿àª¤ થયà«àª² પà«àªà«àªàª¨à« શà«àª§à« શàªà«àª¯à« નહિàª: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
+#: ../client/pk-console-test.c:624 ../client/pk-console-test.c:652
#, c-format
msgid "This tool could not find the package: %s"
msgstr "ઠસાધન પà«àªà«àª નૠશà«àª§à« શàªà«àª¯à« નહિàª: %s"
@@ -785,135 +777,143 @@ msgstr "ઠસાધન પà«àªà«àª નૠશà«àª§à« શàªà«àª¯à« ન
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
-#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
-#: ../client/pk-console-test.c:950
+#: ../client/pk-console-test.c:680 ../client/pk-console-test.c:708
+#: ../client/pk-console-test.c:736 ../client/pk-console-test.c:764
+#: ../client/pk-console-test.c:792
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "ઠસાધન બધા પà«àªà«àªà«àª¨à« શà«àª§à« શàªà«àª¯à« નહિàª: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1000
+msgid "Failed to contact PackageKit"
+msgstr "PackageKit નૠસàªàªªàª°à«àª àªàª°àªµàª¾àª¨à«àª નિષà«àª«àª³"
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1261
+#: ../client/pk-console-test.c:1130
msgid "A package name to install is required"
msgstr "સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« પà«àªà«àª નામ àªàª°à«àª°à« àªà«"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1270
+#: ../client/pk-console-test.c:1139
msgid "A filename to install is required"
msgstr "સà«àª¥àª¾àªªàª¨ àªàª°àªµàª¾ માàªà« થવા ફાàªàª²àª¨àª¾àª® àªàª°à«àª°à« àªà«"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«àª"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "પà«àªà«àªà« ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«àª"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "àªàª§àª¾àª°àªà«àª¤àªªàª£àª¾àª ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«àª"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:190
+#: ../client/pk-generate-pack.c:188 ../client/pk-generate-pack-test.c:225
msgid "Set the file name of dependencies to be excluded"
msgstr "નહિઠસમાવવાના àªàª§àª¾àª°àªà«àª¤àªªàª£àª¾àªàª¨àª¾ ફાàªàª² નામ સà«àª¯à«àªà«àª¤ àªàª°à«"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:193
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:228
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:196
+#: ../client/pk-generate-pack.c:194 ../client/pk-generate-pack-test.c:231
msgid "The package to be put into the service pack"
msgstr "સà«àªµàª¾ પà«àªàª®àª¾àª મà«àªàªµàª¾ માàªà«àª¨à«àª પà«àªà«àª"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:199
+#: ../client/pk-generate-pack.c:197 ../client/pk-generate-pack-test.c:234
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:227
+#: ../client/pk-generate-pack.c:225 ../client/pk-generate-pack-test.c:269
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:235
+#: ../client/pk-generate-pack.c:233 ../client/pk-generate-pack-test.c:277
msgid "Both options selected."
msgstr "બàªàª¨à« વિàªàª²à«àªªà« પસàªàª¦ થયà«àª² àªà«."
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:251
+#: ../client/pk-generate-pack.c:249 ../client/pk-generate-pack-test.c:293
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:269 ../client/pk-generate-pack.c:275
+#. 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-test.c:321 ../client/pk-generate-pack-test.c:327
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:282
+#: ../client/pk-generate-pack.c:280 ../client/pk-generate-pack-test.c:334
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
msgstr "PackageKit ઠlibarchive àªàª§àª¾àª° સાથૠબિલà«àª ન હતૠતૠતરà«àªà« સà«àªµàª¾ પà«àªà«àªà«àª¨à« બનાવૠશàªàª¾àª¤àª¾ નથà«."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:293
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:345
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:309
+#: ../client/pk-generate-pack.c:307 ../client/pk-generate-pack-test.c:361
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:312
+#: ../client/pk-generate-pack.c:310 ../client/pk-generate-pack-test.c:364
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:325
+#: ../client/pk-generate-pack.c:323 ../client/pk-generate-pack-test.c:377
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:335
+#: ../client/pk-generate-pack.c:333 ../client/pk-generate-pack-test.c:389
msgid "Failed to open package list."
msgstr "પà«àªà«àª યાદૠàªà«àª²àªµàª¾àª®àª¾àª નિષà«àª«àª³."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:346
+#: ../client/pk-generate-pack.c:344 ../client/pk-generate-pack-test.c:398
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:350
+#: ../client/pk-generate-pack.c:348 ../client/pk-generate-pack-test.c:402
#, 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:367
+#: ../client/pk-generate-pack.c:365 ../client/pk-generate-pack-test.c:410
msgid "Creating service pack..."
msgstr "સà«àªµàª¾ પà«àª બનાવૠરહà«àª¯àª¾ àªà«àª..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:425
#, c-format
msgid "Service pack created '%s'"
msgstr "સà«àªµàª¾ પà«àª બનાવાયà«àª '%s'"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:379
+#: ../client/pk-generate-pack.c:377 ../client/pk-generate-pack-test.c:430
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' બનાવવામાઠનિષà«àª«àª³: %s"
@@ -935,104 +935,30 @@ msgstr "પરિવહન યાદૠમà«àª³àªµàªµàª¾àª®àª¾àª નિષà«
msgid "Failed to get daemon state"
msgstr "ડિમન સà«àª¥àª¿àª¤àª¿ મà«àª³àªµàªµàª¾àª®àª¾àª નિષà«àª«àª³"
-#. ask the user
-#: ../client/pk-task-text.c:64
-msgid "Do you want to allow installing of unsigned software?"
-msgstr "શà«àª તમૠહસà«àª¤àª¾àªà«àª·àª° ન થયà«àª² સà«àª«à«àªàªµà«àª°àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« પરવાનàªà« àªàªªàªµàª¾ માàªàªà« àªà«?"
-
-#: ../client/pk-task-text.c:68
-msgid "The unsigned software will not be installed."
-msgstr "હસà«àª¤àª¾àªà«àª·àª° ન થયà«àª² સà«àª«à«àªàªµà«àª° સà«àª¥àª¾àªªàª¿àª¤ થયà«àª² હશૠનહિàª."
-
-#: ../client/pk-task-text.c:100
-msgid "Software source signature required"
-msgstr "સà«àª«à«àªàªµà«àª° સà«àª¤à«àª°à«àª¤ સહૠàªàª°à«àª°à«"
-
-#: ../client/pk-task-text.c:102
-msgid "Software source name"
-msgstr "સà«àª«à«àªàªµà«àª° સà«àª¤à«àª°à«àª¤ નામ"
-
-#: ../client/pk-task-text.c:103
-msgid "Key URL"
-msgstr "àªà« URL"
-
-#: ../client/pk-task-text.c:104
-msgid "Key user"
-msgstr "àªà« વપરાશàªàª°à«àª¤àª¾"
-
-#: ../client/pk-task-text.c:105
-msgid "Key ID"
-msgstr "àªà« ID"
-
-#: ../client/pk-task-text.c:106
-msgid "Key fingerprint"
-msgstr "àªà« àªàªàªàª³à«-àªàª¿àª¹à«àª¨"
-
-#: ../client/pk-task-text.c:107
-msgid "Key Timestamp"
-msgstr "àªà« àªàª¾àªàª®àª¸à«àªà«àª®à«àªª"
-
-#: ../client/pk-task-text.c:151
-msgid "End user licence agreement required"
-msgstr "àª
àªàª¤àª¿àª® વપરાશàªàª°à«àª¤àª¾ લાàªàª¸àª¨à«àª¸ મàªàªà«àª°à«àªªàª¤à«àª°àª àªàª°à«àª°à«"
-
-#: ../client/pk-task-text.c:152
-msgid "EULA ID"
-msgstr "EULA ID"
-
-#: ../client/pk-task-text.c:155
-msgid "Agreement"
-msgstr "મàªàªà«àª°à«àªªàª¤à«àª°àª"
-
-#. ask the user
-#: ../client/pk-task-text.c:161
-msgid "Do you accept this agreement?"
-msgstr "શà«àª તમૠઠમàªàªà«àª°à«àªªàª¤à«àª°àª સà«àªµà«àªàª¾àª°àª¶à«?"
-
-#: ../client/pk-task-text.c:165
-msgid "The agreement was not accepted."
-msgstr "મàªàªà«àª°à«àªªàª¤à«àª°àª સà«àªµà«àªàª¾àª°àª¾àª¯à«àª² ન હતà«."
-
-#: ../client/pk-task-text.c:194
-msgid "Media change required"
-msgstr "મà«àª¡àª¿àª¯àª¾ બદલાવ àªàª°à«àª°à«"
-
-#: ../client/pk-task-text.c:195
-msgid "Media type"
-msgstr "મà«àª¡àª¿àª¯àª¾ પà«àª°àªàª¾àª°"
-
-#: ../client/pk-task-text.c:196
-msgid "Media ID"
-msgstr "મà«àª¡àª¿àª¯àª¾ ID"
-
-#: ../client/pk-task-text.c:197
-msgid "Text"
-msgstr "લàªàª¾àª£"
-
-#. ask the user
-#: ../client/pk-task-text.c:201
-msgid "Please insert the correct media"
-msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« યà«àªà«àª¯ મà«àª¡àª¿àª¯àª¾àª¨à« દાàªàª² àªàª°à«"
-
-#: ../client/pk-task-text.c:205
-msgid "The correct media was not inserted."
-msgstr "યà«àªà«àª¯ મà«àª¡àª¿àª¯àª¾ દાàªàª² થયલૠન હતà«."
-
-#: ../client/pk-task-text.c:303
-msgid "The transaction did not proceed."
-msgstr "પરિવહનનૠપà«àª°àªà«àª°àª¿àª¯àª¾ àªàª°àª¾àª નહિàª."
-
-#: ../client/pk-text.c:50
+#: ../client/pk-tools-common.c:51
+#: ../lib/packagekit-glib2/pk-console-shared.c:53
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« ૧ થૠ%i સà«àª§à«àª¨à« નàªàª¬àª° દાàªàª² àªàª°à«: "
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, 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:200
+#: ../lib/packagekit-glib2/pk-console-shared.c:153
+msgid "More than one package matches:"
+msgstr "àªàª પà«àªà«àª àªàª°àª¤àª¾àª વધૠàªà«àª¡àª£à«àª:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:207
+#: ../lib/packagekit-glib2/pk-console-shared.c:162
+msgid "Please choose the correct package: "
+msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« યà«àªà«àª¯ પà«àªà«àª પસàªàª¦ àªàª°à«: "
+
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -1089,90 +1015,110 @@ msgstr "સà«àª¥àª¾àªªàª¿àª¤ àªàª°à« રહà«àª¯àª¾ àªà«àª..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
+#: ../contrib/command-not-found/pk-command-not-found-test.c:358
msgid "Downloading details about the software sources."
msgstr "સà«àª«à«àªàªµà«àª° સà«àª¤à«àª°à«àª¤à« વિશૠવિàªàª¤à« નૠડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«."
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
+#: ../contrib/command-not-found/pk-command-not-found-test.c:362
msgid "Downloading filelists (this may take some time to complete)."
msgstr "ફાàªàª² યાદà«àªàª¨à« ડાàªàª¨àª²à«àª¡ àªàª°à« રહà«àª¯àª¾ àªà« (ઠનૠસમાપà«àª¤ થવા માàªà« થà«àª¡à« સમય લાàªà« શàªà« àªà«)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
+#: ../contrib/command-not-found/pk-command-not-found-test.c:366
msgid "Waiting for package manager lock."
msgstr "પà«àªà«àª વà«àª¯àªµàª¸à«àª¥àª¾àªªàª તાળા માàªà« રાહ àªà«àª રહà«àª¯àª¾ àªà«."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
+#: ../contrib/command-not-found/pk-command-not-found-test.c:370
msgid "Loading list of packages."
msgstr "પà«àªà«àªà«àª¨à« યાદà«àª¨à« લà«àª¡ àªàª°à« રહà«àª¯àª¾ àªà«."
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
+#: ../contrib/command-not-found/pk-command-not-found-test.c:444
msgid "Failed to search for file"
msgstr "ફાàªàª² માàªà« શà«àª§àªµàª¾àª¨à«àª નિષà«àª«àª³"
#. TRANSLATORS: we failed to launch the executable, the error follows
#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found-test.c:570
msgid "Failed to launch:"
msgstr "શરૠàªàª°àªµàª¾àª®àª¾àª નિષà«àª«àª³:"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/command-not-found/pk-command-not-found.c:632
+#: ../contrib/command-not-found/pk-command-not-found-test.c:630
msgid "PackageKit Command Not Found"
msgstr "PackageKit àªàª¦à«àª¶ શà«àª§àª¾àª¯à« નહિàª"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found-test.c:658
msgid "Command not found."
msgstr "àªàª¦à«àª¶ શà«àª§àª¾àª¯à« નહિàª."
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
+#: ../contrib/command-not-found/pk-command-not-found-test.c:665
msgid "Similar command is:"
msgstr "સરàªàª¾ àªàª¦à«àª¶à« àªà«:"
#. TRANSLATORS: Ask the user if we should run the similar command
#: ../contrib/command-not-found/pk-command-not-found.c:674
+#: ../contrib/command-not-found/pk-command-not-found-test.c:674
msgid "Run similar command:"
msgstr "àªàª àªàª¦à«àª¶àª¨à« àªàª²àª¾àªµà«:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
#: ../contrib/command-not-found/pk-command-not-found.c:686
#: ../contrib/command-not-found/pk-command-not-found.c:695
+#: ../contrib/command-not-found/pk-command-not-found-test.c:686
+#: ../contrib/command-not-found/pk-command-not-found-test.c:695
msgid "Similar commands are:"
msgstr "સરàªàª¾ àªàª¦à«àª¶à« àªà«:"
#. TRANSLATORS: ask the user to choose a file to run
#: ../contrib/command-not-found/pk-command-not-found.c:702
+#: ../contrib/command-not-found/pk-command-not-found-test.c:702
msgid "Please choose a command to run"
msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« àªàª²àª¾àªµàªµàª¾ માàªà« àªàª¦à«àª¶àª¨à« પસàªàª¦ àªàª°à«"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
+#: ../contrib/command-not-found/pk-command-not-found-test.c:721
msgid "The package providing this file is:"
msgstr "પà«àªà«àª ઠફાàªàª²àª¨à« પà«àª°à« પાડૠરહà«àª¯àª¾ àªà«:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
+#: ../contrib/command-not-found/pk-command-not-found-test.c:726
#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr "શà«àª àªàª¦à«àª¶ '%s' પà«àª°àª¾ પાડવા માàªà« પà«àªà«àª '%s' નૠસà«àª¥àª¾àªªàª¿àª¤ àªàª°à«?"
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found-test.c:747
msgid "Packages providing this file are:"
msgstr "પà«àªà«àªà« ઠઠફાàªàª²àª¨à« પà«àª°à« પાડૠરહૠàªà«:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
+#: ../contrib/command-not-found/pk-command-not-found-test.c:756
msgid "Suitable packages are:"
msgstr "સà«àª¸àªàªàª¤ પà«àªà«àªà« àªà«:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found-test.c:764
msgid "Please choose a package to install"
msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« પà«àªà«àªàª¨à« પસàªàª¦ àªàª°à«"
@@ -1458,6 +1404,93 @@ msgstr "PackageKit પà«àªà«àª યાદà«"
msgid "PackageKit Service Pack"
msgstr "PackageKit સà«àªµàª¾ પà«àª"
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "શà«àª તમૠહસà«àª¤àª¾àªà«àª·àª° ન થયà«àª² સà«àª«à«àªàªµà«àª°àª¨à« સà«àª¥àª¾àªªàª¿àª¤ àªàª°àªµàª¾ માàªà« પરવાનàªà« àªàªªàªµàª¾ માàªàªà« àªà«?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "હસà«àª¤àª¾àªà«àª·àª° ન થયà«àª² સà«àª«à«àªàªµà«àª° સà«àª¥àª¾àªªàª¿àª¤ થયà«àª² હશૠનહિàª."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "સà«àª«à«àªàªµà«àª° સà«àª¤à«àª°à«àª¤ સહૠàªàª°à«àª°à«"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:102
+msgid "Software source name"
+msgstr "સà«àª«à«àªàªµà«àª° સà«àª¤à«àª°à«àª¤ નામ"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:103
+msgid "Key URL"
+msgstr "àªà« URL"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:104
+msgid "Key user"
+msgstr "àªà« વપરાશàªàª°à«àª¤àª¾"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:105
+msgid "Key ID"
+msgstr "àªà« ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "àªà« àªàªàªàª³à«-àªàª¿àª¹à«àª¨"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "àªà« àªàª¾àªàª®àª¸à«àªà«àª®à«àªª"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "àª
àªàª¤àª¿àª® વપરાશàªàª°à«àª¤àª¾ લાàªàª¸àª¨à«àª¸ મàªàªà«àª°à«àªªàª¤à«àª°àª àªàª°à«àª°à«"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Agreement"
+msgstr "મàªàªà«àª°à«àªªàª¤à«àª°àª"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "શà«àª તમૠઠમàªàªà«àª°à«àªªàª¤à«àª°àª સà«àªµà«àªàª¾àª°àª¶à«?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "મàªàªà«àª°à«àªªàª¤à«àª°àª સà«àªµà«àªàª¾àª°àª¾àª¯à«àª² ન હતà«."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:194
+msgid "Media change required"
+msgstr "મà«àª¡àª¿àª¯àª¾ બદલાવ àªàª°à«àª°à«"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:195
+msgid "Media type"
+msgstr "મà«àª¡àª¿àª¯àª¾ પà«àª°àªàª¾àª°"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:196
+msgid "Media ID"
+msgstr "મà«àª¡àª¿àª¯àª¾ ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:197
+msgid "Text"
+msgstr "લàªàª¾àª£"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "મહà«àª°àª¬àª¾àª¨à« àªàª°à«àª¨à« યà«àªà«àª¯ મà«àª¡àª¿àª¯àª¾àª¨à« દાàªàª² àªàª°à«"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "યà«àªà«àª¯ મà«àª¡àª¿àª¯àª¾ દાàªàª² થયલૠન હતà«."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "પરિવહનનૠપà«àª°àªà«àª°àª¿àª¯àª¾ àªàª°àª¾àª નહિàª."
+
#. SECURITY:
#. - Normal users do not require admin authentication to accept new
#. licence agreements.
commit 6f46e98b97926d21bb100feecb834dd9cf06a1f5
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 10:05:57 2009 +0100
glib2: convert the browser plugin to opionally use glib2
diff --git a/contrib/browser-plugin/Makefile.am b/contrib/browser-plugin/Makefile.am
index 61a7239..e2f8948 100644
--- a/contrib/browser-plugin/Makefile.am
+++ b/contrib/browser-plugin/Makefile.am
@@ -14,7 +14,15 @@ packagekit_plugin_la_CFLAGS = \
packagekit_plugin_la_LIBADD = \
$(PK_BROWSER_PLUGIN_LIBS) \
+ $(NULL)
+
+if PK_BUILD_GLIB2
+packagekit_plugin_la_LIBADD += \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la
+else
+packagekit_plugin_la_LIBADD += \
$(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
+endif
packagekit_plugin_la_SOURCES = \
pk-plugin.c \
diff --git a/contrib/browser-plugin/pk-plugin-install.c b/contrib/browser-plugin/pk-plugin-install.c
index cc12f81..6564b3d 100644
--- a/contrib/browser-plugin/pk-plugin-install.c
+++ b/contrib/browser-plugin/pk-plugin-install.c
@@ -33,6 +33,12 @@
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <math.h>
+#ifdef PK_BUILD_GLIB2
+#include <packagekit-glib2/packagekit.h>
+#else
+#include <packagekit-glib/packagekit.h>
+#endif
+
#include "pk-main.h"
#include "pk-plugin-install.h"
@@ -58,7 +64,11 @@ struct PkPluginInstallPrivate
gchar *display_name;
gchar **package_names;
PangoLayout *pango_layout;
+#ifdef PK_BUILD_GLIB2
+ PkClient *client;
+#else
PkClientPool *client_pool;
+#endif
DBusGProxy *install_package_proxy;
DBusGProxyCall *install_package_call;
gint timeout;
@@ -228,6 +238,175 @@ out:
return data;
}
+#ifdef PK_BUILD_GLIB2
+
+/**
+ * pk_plugin_install_finished_cb:
+ **/
+static void
+pk_plugin_install_finished_cb (GObject *object, GAsyncResult *res, PkPluginInstall *self)
+{
+ PkClient *client = PK_CLIENT (object);
+ GError *error = NULL;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ GPtrArray *packages = NULL;
+ const PkItemPackage *item;
+ guint i;
+ gchar *filename;
+ gchar **split = NULL;
+
+ /* get the results */
+ results = pk_client_generic_finish (client, res, &error);
+ if (results == NULL) {
+ g_warning ("failed to resolve: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* check status */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ g_warning ("failed to resolve success: %s", pk_exit_enum_to_text (exit_enum));
+ goto out;
+ }
+
+ /* get packages */
+ packages = pk_results_get_package_array (results);
+ if (packages == NULL) {
+ g_error ("internal error, no packages!");
+ goto out;
+ }
+
+ /* list, just for shits and giggles */
+ for (i=0; i<packages->len; i++) {
+ item = g_ptr_array_index (packages, i);
+ g_debug ("%s\t%s\t%s", pk_info_enum_to_text (item->info_enum), item->package_id, item->summary);
+ }
+
+ /* no results */
+ if (packages->len == 0)
+ goto out;
+
+ /* no results */
+ if (packages->len > 1)
+ g_warning ("more than one result (%i), just choosing first", packages->len);
+
+ /* choose first package */
+ item = g_ptr_array_index (packages, 0);
+
+ /* if we didn't use displayname, use the summary */
+ if (self->priv->display_name == NULL)
+ self->priv->display_name = g_strdup (item->summary);
+
+ /* parse the data */
+ if (item->info_enum == PK_INFO_ENUM_AVAILABLE) {
+ if (self->priv->status == IN_PROGRESS)
+ pk_plugin_install_set_status (self, AVAILABLE);
+ else if (self->priv->status == INSTALLED)
+ pk_plugin_install_set_status (self, UPGRADABLE);
+ split = pk_package_id_split (item->package_id);
+ pk_plugin_install_set_available_package_name (self, split[0]);
+ pk_plugin_install_set_available_version (self, split[1]);
+ g_strfreev (split);
+#if 0
+ /* if we have data from the repo, override the user:
+ * * we don't want the remote site pretending to install another package
+ * * it might be localised if the backend supports it */
+ if (item->summary != NULL && item->summary[0] != '\0')
+ self->priv->display_name = g_strdup (item->summary);
+#endif
+
+ pk_plugin_install_clear_layout (self);
+ pk_plugin_install_refresh (self);
+
+ } else if (item->info_enum == PK_INFO_ENUM_INSTALLED) {
+ if (self->priv->status == IN_PROGRESS)
+ pk_plugin_install_set_status (self, INSTALLED);
+ else if (self->priv->status == AVAILABLE)
+ pk_plugin_install_set_status (self, UPGRADABLE);
+ split = pk_package_id_split (item->package_id);
+ pk_plugin_install_set_installed_package_name (self, split[0]);
+ pk_plugin_install_set_installed_version (self, split[1]);
+ g_strfreev (split);
+
+ /* get desktop file information */
+ filename = pk_plugin_install_get_best_desktop_file (self);
+ if (filename != NULL) {
+ self->priv->app_info = G_APP_INFO (g_desktop_app_info_new_from_filename (filename));
+#if 0
+ /* override, as this will have translation */
+ self->priv->display_name = g_strdup (g_app_info_get_name (self->priv->app_info));
+#endif
+ }
+ g_free (filename);
+
+ if (self->priv->app_info != 0)
+ pk_plugin_install_set_status (self, INSTALLED);
+
+ pk_plugin_install_clear_layout (self);
+ pk_plugin_install_refresh (self);
+ }
+out:
+ /* we didn't get any results, or we failed */
+ if (self->priv->status == IN_PROGRESS) {
+ pk_plugin_install_set_status (self, UNAVAILABLE);
+ pk_plugin_install_clear_layout (self);
+ pk_plugin_install_refresh (self);
+ }
+ if (packages != NULL)
+ g_ptr_array_unref (packages);
+ if (results != NULL)
+ g_object_unref (results);
+}
+
+/**
+ * pk_plugin_install_recheck:
+ **/
+static void
+pk_plugin_install_recheck (PkPluginInstall *self)
+{
+// guint i;
+ const gchar *data;
+// gchar **package_ids;
+
+ self->priv->status = IN_PROGRESS;
+ pk_plugin_install_set_available_version (self, NULL);
+ pk_plugin_install_set_available_package_name (self, NULL);
+ pk_plugin_install_set_installed_version (self, NULL);
+ pk_plugin_install_set_installed_package_name (self, NULL);
+
+ /* get data, if if does not exist */
+ if (self->priv->package_names == NULL) {
+ data = pk_plugin_get_data (PK_PLUGIN (self), "displayname");
+ self->priv->display_name = g_strdup (data);
+ data = pk_plugin_get_data (PK_PLUGIN (self), "packagenames");
+ self->priv->package_names = g_strsplit (data, " ", -1);
+ }
+
+#if 0
+ for (i=0; self->priv->package_names[i] != NULL; i++) {
+ package_ids = pk_package_ids_from_id (self->priv->package_names[i]);
+
+ /* do async resolve */
+ pk_client_resolve_async (self->priv->client, pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1), package_ids, NULL,
+ (PkProgressCallback) pk_plugin_install_progress_cb, self,
+ (GAsyncReadyCallback) pk_plugin_install_finished_cb, self);
+
+ g_strfreev (package_ids);
+ }
+#endif
+
+ /* do async resolve */
+ pk_client_resolve_async (self->priv->client, pk_bitfield_from_enums (PK_FILTER_ENUM_NEWEST, -1),
+ self->priv->package_names, NULL, NULL, NULL,
+ (GAsyncReadyCallback) pk_plugin_install_finished_cb, self);
+}
+
+// package_ids = pk_package_ids_from_text ("glib2;2.14.0;i386;fedora&powertop");
+
+#else
+
/**
* pk_plugin_install_package_cb:
**/
@@ -363,6 +542,7 @@ pk_plugin_install_recheck (PkPluginInstall *self)
pk_plugin_install_refresh (self);
}
}
+#endif
/**
* pk_plugin_install_append_markup:
@@ -1109,7 +1289,11 @@ pk_plugin_install_finalize (GObject *object)
}
/* remove clients */
+#ifdef PK_BUILD_GLIB2
+ g_object_unref (self->priv->client);
+#else
g_object_unref (self->priv->client_pool);
+#endif
G_OBJECT_CLASS (pk_plugin_install_parent_class)->finalize (object);
}
@@ -1152,11 +1336,15 @@ pk_plugin_install_init (PkPluginInstall *self)
self->priv->install_package_proxy = NULL;
self->priv->install_package_call = NULL;
+#ifdef PK_BUILD_GLIB2
+ self->priv->client = pk_client_new ();
+#else
/* use a client pool to do everything async */
self->priv->client_pool = pk_client_pool_new ();
pk_client_pool_connect (self->priv->client_pool, "package", G_CALLBACK (pk_plugin_install_package_cb), G_OBJECT (self));
pk_client_pool_connect (self->priv->client_pool, "error-code", G_CALLBACK (pk_plugin_install_error_code_cb), G_OBJECT (self));
pk_client_pool_connect (self->priv->client_pool, "finished", G_CALLBACK (pk_plugin_install_finished_cb), G_OBJECT (self));
+#endif
}
/**
diff --git a/contrib/browser-plugin/pk-plugin-install.h b/contrib/browser-plugin/pk-plugin-install.h
index e565c7b..9f7c191 100644
--- a/contrib/browser-plugin/pk-plugin-install.h
+++ b/contrib/browser-plugin/pk-plugin-install.h
@@ -25,7 +25,6 @@
#include <glib-object.h>
#include <cairo-xlib.h>
-#include <packagekit-glib/packagekit.h>
#include "pk-plugin.h"
commit 71c417a37205d1af544903efb3a1191b41be834b
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 10:05:27 2009 +0100
trivial: enable glib2 in the fedora spec file
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 453cf96..7214586 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -244,7 +244,7 @@ user to restart the computer or remove and re-insert the device.
%setup -q
%build
-%configure --disable-static --enable-yum --enable-smart --with-default-backend=yum --disable-local
+%configure --disable-static --enable-yum --enable-smart --enable-glib2 --with-default-backend=yum --disable-local
make %{?_smp_mflags}
@@ -421,10 +421,11 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%defattr(-,root,root,-)
%doc README AUTHORS NEWS COPYING
%{_libdir}/libpackagekit-glib*.so
-%{_libdir}/pkgconfig/packagekit-glib.pc
+%{_libdir}/pkgconfig/packagekit-glib*.pc
%dir %{_includedir}/PackageKit
%dir %{_includedir}/PackageKit/packagekit-glib
-%{_includedir}/PackageKit/packagekit-glib/*.h
+%dir %{_includedir}/PackageKit/packagekit-glib2
+%{_includedir}/PackageKit/packagekit-glib*/*.h
%files qt-devel
%defattr(-,root,root,-)
commit f8df3a7f980e6904718a07a427f6884b320d22b2
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 10:04:45 2009 +0100
bugfix: Ensure we ship packagekit-private.h in the tarball
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 0d1a9d4..028c3be 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -114,6 +114,7 @@ libpackagekitprivate_a_SOURCES = \
egg-debug.h \
egg-string.c \
egg-string.h \
+ packagekit-private.h \
pk-task-text.c \
pk-task-text.h \
pk-client-sync.c \
commit 68f6ae367b6937a15525f0cd123ec06d15936b43
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 10:03:08 2009 +0100
browser-plugin: don't unref plugin twice to fix a crash when firefox is closed
diff --git a/contrib/browser-plugin/pk-main.c b/contrib/browser-plugin/pk-main.c
index 5a18821..a40cd4c 100644
--- a/contrib/browser-plugin/pk-main.c
+++ b/contrib/browser-plugin/pk-main.c
@@ -166,7 +166,6 @@ pk_main_destroy (NPP instance, NPSavedData **save)
PkPlugin *plugin = PK_PLUGIN (instance->pdata);
pk_debug ("pk_main_destroy [%p]", instance);
- g_object_unref (plugin);
/* free content instance */
g_signal_handlers_disconnect_by_func (plugin, G_CALLBACK (pk_main_refresh_cb), instance);
commit 7334f6bf30494c2e82bb4e0c8206a5f3a80ad65e
Author: kkrothap <kkrothap at fedoraproject.org>
Date: Wed Sep 9 09:00:03 2009 +0000
Sending translation for Telugu
diff --git a/po/te.po b/po/te.po
index c9e3f3a..2de53f7 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7,686 +7,798 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.te\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-06-02 17:20+0530\n"
+"POT-Creation-Date: 2009-09-08 14:35+0000\n"
+"PO-Revision-Date: 2009-09-09 14:29+0530\n"
"Last-Translator: Krishna Babu K <kkrothap at redhat.com>\n"
"Language-Team: Telugu <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"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
"\n"
"\n"
"\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:143
msgid "Transaction"
msgstr "à°µà±à°¯à°µà°¹à°¾à°°à°®à±"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:145
msgid "System time"
msgstr "సిసà±à°à°®à± సమయà°"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "Succeeded"
msgstr "సఫలమà±à°à°¦à°¿"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "True"
msgstr "సతà±à°¯à°®à±"
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "False"
msgstr "à°
సతà±à°¯à°®à±"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:149
+#: ../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:248 ../client/pk-console-test.c:154
msgid "Duration"
msgstr "నిడివి"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
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:252 ../client/pk-console-test.c:158
+#: ../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:254 ../client/pk-console-test.c:160
msgid "User ID"
msgstr "వినియà±à°à°¦à°¾à°°à°¿ ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:167
msgid "Username"
msgstr "వినియà±à°à°¦à°¾à°°à°¿à°¨à°¾à°®à°®à±"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:171
msgid "Real name"
msgstr "వాసà±à°¤à°µ నామమà±"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:179
msgid "Affected packages:"
msgstr "à°ªà±à°°à°à°¾à°µà°¿à°¤ à°¸à°à°à°²à°¨à°¾à°²à±:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:181
msgid "Affected packages: None"
msgstr "à°ªà±à°°à°à°¾à°µà°¿à°¤ à°¸à°à°à°²à°¨à°¾à°²à±: à°à°¦à±à°à°¾à°¦à±"
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:336 ../lib/packagekit-glib2/pk-task-text.c:220
+msgid "The following packages have to be removed:"
+msgstr "à° à°à±à°°à°¿à°à°¦à°¿ à°¸à°à°à°²à°¨à°®à±à°²à± à°¤à±à°¸à°¿à°µà±à°¯à°¬à°¡à°¾à°²à°¿:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:339 ../lib/packagekit-glib2/pk-task-text.c:225
+msgid "The following packages have to be installed:"
+msgstr "à° à°à±à°°à°¿à°à°¦à°¿ à°ªà±à°¯à°¾à°à±à°à±à°²à± à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à°¬à°¡à°¿à°¨à°µà°¿:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:342 ../lib/packagekit-glib2/pk-task-text.c:230
+msgid "The following packages have to be updated:"
+msgstr "à° à°à±à°°à°¿à°à°¦à°¿ à°¸à°à°à°²à°¨à°®à±à°²à± నవà±à°à°°à°¿à°à°à°µà°²à°¸à°¿à°µà±à°à°¦à°¿:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:345 ../lib/packagekit-glib2/pk-task-text.c:235
+msgid "The following packages have to be reinstalled:"
+msgstr "à° à°à±à°°à°¿à°à°¦à°¿ à°¸à°à°à°²à°¨à°®à±à°²à± తిరిà°à°¿à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à°µà°²à°¸à°¿ à°µà±à°à°¦à°¿:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:348 ../lib/packagekit-glib2/pk-task-text.c:240
+msgid "The following packages have to be downgraded:"
+msgstr "à° à°à±à°°à°¿à°à°¦à°¿ à°¸à°à°à°²à°¨à°®à±à°²à± à°¡à±à°¨à±âà°à±à°°à±à°¡à± à°à±à°¯à°µà°²à°¸à°¿à°µà±à°à°¦à°¿:"
+
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:201
msgid "Distribution"
msgstr "à°ªà°à°ªà°¿à°£à°¿"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:203
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
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:205 ../client/pk-console-test.c:226
msgid "Summary"
msgstr "à°¸à°à°à±à°·à°¿à°ªà±à°¤ సమాà°à°¾à°°à°®à±"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:215
msgid "Category"
msgstr "వరà±à°à°®à±"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:217
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:220
msgid "Parent"
msgstr "మాతà±à°°à±à°"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:223
msgid "Name"
msgstr "నామమà±"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:229
msgid "Icon"
msgstr "à°ªà±à°°à°¤à°¿à°®"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:243
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:409 ../client/pk-console-test.c:249
+#: ../lib/packagekit-glib2/pk-task-text.c:101
+#: ../lib/packagekit-glib2/pk-task-text.c:153
+#: ../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:412 ../client/pk-console-test.c:252
msgid "Updates"
msgstr "నవà±à°à°°à°£à°²à±"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:256
msgid "Obsoletes"
msgstr "à°¤à±à°²à°à°¿à°à°à°¿à°¨à°µà°¿"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:260
+#: ../lib/packagekit-glib2/pk-task-text.c:154
msgid "Vendor"
msgstr "à°
à°®à±à°®à°à°à°¦à°¾à°°à±"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:264
msgid "Bugzilla"
msgstr "à°¬à°à±âà°à°¿à°²à±à°²à°¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:268
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:272
msgid "Restart"
msgstr "à°ªà±à°¨à°à°ªà±à°°à°¾à°°à°à°à°®à±"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:276
msgid "Update text"
msgstr "పాఠమౠనవà±à°à°°à°¿à°à°à±à°®à±"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:280
msgid "Changes"
msgstr "మారà±à°ªà±à°²à±"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:284
msgid "State"
msgstr "à°¸à±à°¥à°¿à°¤à°¿"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:289
msgid "Issued"
msgstr "విడà±à°¦à°²à±à°¨"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:294
msgid "Updated"
msgstr "నవà±à°à°°à°¿à°à°à°¿à°¨"
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:312
+msgid "Enabled"
+msgstr "à°à±à°¤à°¨à°ªà°°à°à°¿à°¨"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:315
+msgid "Disabled"
+msgstr "à°
à°à±à°¤à°¨à°ªà°°à°à°¿à°¨"
+
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "శాతమà±"
-#: ../client/pk-console.c:479
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "à°¤à±à°²à°¿à°¯à°¨à°¿"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:521
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:337
msgid "System restart required by:"
msgstr "సిసà±à°à°®à± à°ªà±à°¨à°à°ªà±à°°à°¾à°°à°à°à°®à± à°
వసరమà±à°à°¦à°¿:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:340
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:604 ../client/pk-console-test.c:343
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:607 ../client/pk-console-test.c:346
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:610 ../client/pk-console-test.c:349
msgid "Application restart required by:"
msgstr "à°
à°¨à±à°µà°°à±à°¤à°¨à°®à± à°ªà±à°¨à°à°ªà±à°°à°¾à°°à°à°à°®à± à°
వసరమà±à°à°¦à°¿:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:538
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:668 ../client/pk-console-test.c:541
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:671
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:674 ../client/pk-console-test.c:544
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:677 ../client/pk-console-test.c:547
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:809
#, 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:817
#, 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:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "à°
తరà±à°à°¤ à°¦à±à°·à°®à±: %s"
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#. ask the user
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../lib/packagekit-glib2/pk-task-text.c:299
+msgid "Proceed with changes?"
+msgstr "మారà±à°ªà±à°²à°¤à± à°®à±à°à°¦à±à°à±à°ªà±à°µà°¾à°²à°¾?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
+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:899 ../client/pk-console.c:1633
#, 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:971
#, 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:1027
#, 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:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, 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:1103
+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:1108
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:1149
#, 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:1180
#, 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:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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:1270
+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:1303 ../client/pk-console.c:1311
#, 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:1333 ../client/pk-console.c:1341
#, 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:1363 ../client/pk-console.c:1371
#, 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:1393
#, 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:1401
#, 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:1423
#, 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:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
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:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1445
#, 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:1479 ../client/pk-console.c:1554
#, 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:1511
msgid "Packages to add"
msgstr "à°à°¤à°à±à°¯à±à°à°à± à°¸à°à°à°²à°¨à°®à±à°²à±"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "à°¤à±à°¸à°¿à°µà±à°¯à±à°à°à± à°¸à°à°à°²à°¨à°®à±à°²à±"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1587
#, 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:1593
msgid "To install"
msgstr "à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à±à°à°à±"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1605
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:1609
msgid "not found."
msgstr "à°à°¨à°¬à°¡à°²à±à°¦à±."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1620
#, 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:1626
+#: ../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:1662
#, 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:1670
#, 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:1701
msgid "Error:"
msgstr "à°¦à±à°·à°®à±:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:366
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:1731 ../client/pk-console-test.c:384
msgid "Message:"
msgstr "à°¸à°à°¦à±à°¶à°®à±:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:403
msgid "Package files"
msgstr "à°¸à°à°à°²à°¨à°®à± దసà±à°¤à±à°°à°®à±à°²à±"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:398
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:1790
msgid "Repository signature required"
msgstr "à°°à°¿à°ªà±à°à°¿à°à°°à± à°¸à°à°¤à°à°®à± à°
వసరమà±à°à°¦à°¿"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#. ask the user
+#: ../client/pk-console.c:1800 ../lib/packagekit-glib2/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "à°®à±à°°à± à° à°¸à°à°¤à°à°®à±à°¨à± à°à°®à±à°¦à°¿à°¸à±à°¤à°¾à°°à°¾?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1804 ../lib/packagekit-glib2/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "à°¸à°à°¤à°à°®à± à°à°®à±à°¦à°¿à°à°à°¬à°¡à°²à±à°¦à±."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1838
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:1845
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:1849
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:1878 ../client/pk-console-test.c:816
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:1931 ../client/pk-console-test.c:850
msgid "PackageKit Console Interface"
msgstr "à°ªà±à°¯à°¾à°à±à°à±à°à°¿à°à± à°à°¨à±à°¸à±à°²à± à°à°à°à°°à±à°«à±à°¸à±"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:852
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-monitor.c:128
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:966
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:222
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/command-not-found/pk-command-not-found-test.c:614
+#: ../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:2029 ../client/pk-console-test.c:969
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "à°ªà±à°°à±à°à±à°°à°¾à°®à± వరà±à°·à°¨à±âనౠà°à±à°ªà±à°®à± మరియౠనిషà±à°à±à°°à°®à°¿à°à°à±à°®à±"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:972
msgid "Set the filter, e.g. installed"
msgstr "వడపà±à°¤(à°«à°¿à°²à±à°à°°à±) à°
మరà±à°à±à°®à±, à°.దా. à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à°¿à°¨"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:975
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:2062
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:2152 ../client/pk-console-test.c:1052
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:2171 ../client/pk-console-test.c:1071
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:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1078 ../client/pk-console-test.c:1090
+#: ../client/pk-console-test.c:1102 ../client/pk-console-test.c:1114
msgid "A search term is required"
msgstr "à°à° à°¶à±à°§à°¨ పదమౠà°
వసరమà±à°à°¦à°¿"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1124
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:2218
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:2227 ../client/pk-console-test.c:1151
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:2236 ../client/pk-console-test.c:1162
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:2244 ../client/pk-console-test.c:1171
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:2251 ../client/pk-console-test.c:1178
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:2259 ../client/pk-console-test.c:1187
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:2269 ../client/pk-console-test.c:1198
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:2286 ../client/pk-console-test.c:1219
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:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1230 ../client/pk-console-test.c:1241
msgid "A repository name is required"
msgstr "à°à° à°°à°¿à°ªà±à°à°¿à°à°°à± నామమౠà°
వసరమà±à°à°¦à°¿"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2072
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1252
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:2327 ../client/pk-console-test.c:1269
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:2334 ../client/pk-console-test.c:1276
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:2341 ../client/pk-console-test.c:931
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:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1286
+#: ../client/pk-console-test.c:1301 ../client/pk-console-test.c:1310
+#: ../client/pk-console-test.c:1330 ../client/pk-console-test.c:1339
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:285
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:2381 ../client/pk-console-test.c:1319
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:2408
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:2418 ../client/pk-console.c:2428
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:2482 ../client/pk-console-test.c:1399
#, 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:2495
msgid "Incorrect privileges for this operation"
msgstr "à° à°à°¾à°°à±à°¯à°à±à°°à°®à°®à± à°à±à°°à°à± సరిà°à°¾à°¨à°¿ à°
à°¨à±à°®à°¤à±à°²à±"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2257
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1411
msgid "Command failed"
msgstr "à°à°¦à±à°¶à°®à± విఫలమà±à°à°¦à°¿"
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:568
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "ఠసాధనమౠà°
à°à°¦à±à°¬à°¾à°à±à°²à± à°µà±à°¨à±à°¨ à°¸à°à°à°²à°¨à°®à±à°²à°¨à± à°à°¨à±à°à±à°¨à°²à±à°à°ªà±à°¯à°¿à°à°¦à°¿: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:596
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "ఠసాధనమౠసà°à°¸à±à°¥à°¾à°ªà°¿à°¤ à°¸à°à°à°²à°¨à°®à±à°²à°¨à± à°à°¨à±à°à±à°¨à°²à±à°à°ªà±à°¯à°¿à°à°¦à°¿: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:624 ../client/pk-console-test.c:652
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "ఠసాధనమౠపà±à°¯à°¾à°à±à°à±à°¨à± à°à°¨à±à°à±à°¨à°²à±à° à°ªà±à°¯à°¿à°à°¦à°¿: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console-test.c:680 ../client/pk-console-test.c:708
+#: ../client/pk-console-test.c:736 ../client/pk-console-test.c:764
+#: ../client/pk-console-test.c:792
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "ఠసాధనమౠà°
à°¨à±à°¨à°¿ à°¸à°à°à°²à°¨à°®à±à°²à°¨à± à°à°¨à±à°à±à°¨à°²à±à° à°ªà±à°¯à°¿à°à°¦à°¿: %s"
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1000
+msgid "Failed to contact PackageKit"
+msgstr "à°ªà±à°¯à°¾à°à±à°à±à°à°¿à°à±âనౠసà°à°ªà±à°°à°¦à°¿à°à°à±à°à°à± విఫలమà±à°à°¦à°¿"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1130
+msgid "A package name to install is required"
+msgstr "à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à±à°à°à± à°µà±à° à°ªà±à°¯à°¾à°à±à°à± నామమౠà°
వసరమà±à°à°¦à°¿"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1139
+msgid "A filename to install is required"
+msgstr "à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à±à°à°à± à°µà±à° దసà±à°¤à±à°°à°®à±à°¨à°¾à°®à°®à± à°
వసరమà±à°à°¦à°¿"
+
#. TRANSLATORS: This is the state of the transaction
#: ../client/pk-generate-pack.c:101
msgid "Downloading"
@@ -703,137 +815,150 @@ 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:188 ../client/pk-generate-pack-test.c:225
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:191 ../client/pk-generate-pack-test.c:228
+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:194 ../client/pk-generate-pack-test.c:231
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:197 ../client/pk-generate-pack-test.c:234
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:225 ../client/pk-generate-pack-test.c:269
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:233 ../client/pk-generate-pack-test.c:277
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:249 ../client/pk-generate-pack-test.c:293
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
+#. 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-test.c:321 ../client/pk-generate-pack-test.c:327
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:280 ../client/pk-generate-pack-test.c:334
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
msgstr "à°ªà±à°¯à°¾à°à±à°à±âà°à°¿à°à± à°
à°¨à±à°¨à°¦à°¿ లిబà±à°à°°à±à°à°¿à°µà± మదà±à°¦à°¤à±à°¤à± నిరà±à°®à°¿à°¤à° à°à°¾à°²à±à°¦à± à°à°¨à±à° సరà±à°µà±à°¸à± à°ªà±à°¯à°¾à°à±âలౠసà±à°·à±à°à°¿à°à°à°¬à°¡à°²à±à°µà±."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:345
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:307 ../client/pk-generate-pack-test.c:361
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:310 ../client/pk-generate-pack-test.c:364
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:323 ../client/pk-generate-pack-test.c:377
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:333 ../client/pk-generate-pack-test.c:389
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:344 ../client/pk-generate-pack-test.c:398
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:348 ../client/pk-generate-pack-test.c:402
#, 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:365 ../client/pk-generate-pack-test.c:410
msgid "Creating service pack..."
msgstr "à°¸à±à°µà°¾ పాà°à±âనౠసà±à°·à±à°à°¿à°à°à±à°à±à°¨à±à°¨à°¦à°¿..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:425
#, 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:377 ../client/pk-generate-pack-test.c:430
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' à°¸à±à°·à±à°à°¿à°à°à±à°à°à± విఫలమà±à°à°¦à°¿: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
msgid "PackageKit Monitor"
msgstr "PackageKit పరà±à°¯à°µà±à°à±à°·à°à°¿"
#: ../client/pk-monitor.c:183
msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "బదిలà±à°à°°à°£à°² à°à°¾à°¬à°¿à°¤à°¾à°¨à± à°à±à°ªà°²à±à° à°ªà±à°¯à°¿à°à°¦à°¿"
+
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "బదిలà±à°à°°à°£ à°à°¾à°¬à°¿à°¤à°¾à°¨à± à°ªà±à°à°¦à±à°à°à± విఫలమà±à°à°¦à°¿"
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "à°¡à±à°®à±à°¨à± à°¸à±à°¥à°¿à°¤à°¿à°¨à°¿ à°ªà±à°à°¦à±à°à°à± విఫలమà±à°à°¦à°¿"
+
+#: ../client/pk-tools-common.c:51
+#: ../lib/packagekit-glib2/pk-console-shared.c:53
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "దయà°à±à°¸à°¿ à°¸à°à°à±à°¯à°¨à± 1 à°¨à±à°à°¡à°¿ %ià°à± à°ªà±à°°à°µà±à°¶à°ªà±à°à±à°à±à°®à±: "
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
+#: ../client/pk-tools-common.c:188
#, 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:200
+#: ../lib/packagekit-glib2/pk-console-shared.c:153
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:207
+#: ../lib/packagekit-glib2/pk-console-shared.c:162
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,377 +1015,382 @@ msgstr "à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à±à°à±à°¨à±à°¨à°¦à°¿..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
+#: ../contrib/command-not-found/pk-command-not-found-test.c:358
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
+#: ../contrib/command-not-found/pk-command-not-found-test.c:362
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
+#: ../contrib/command-not-found/pk-command-not-found-test.c:366
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
+#: ../contrib/command-not-found/pk-command-not-found-test.c:370
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
+#: ../contrib/command-not-found/pk-command-not-found-test.c:444
msgid "Failed to search for file"
msgstr "దసà±à°¤à±à°°à°®à±à°¨à± à°¶à±à°§à°¿à°à°à±à°à°²à± విఫలమà±à°à°¦à°¿"
#. TRANSLATORS: we failed to launch the executable, the error follows
#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found-test.c:570
msgid "Failed to launch:"
msgstr "à°à°°à°à°à°¿à°à°à±à°à°à± విఫలమà±à°à°¦à°¿:"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/command-not-found/pk-command-not-found.c:632
+#: ../contrib/command-not-found/pk-command-not-found-test.c:630
msgid "PackageKit Command Not Found"
msgstr "PackageKit à°à°¦à±à°¶à°®à± à°à°¨à°¬à°¡à°²à±à°¦à±"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found-test.c:658
msgid "Command not found."
msgstr "à°à°¦à±à°¶à°®à± à°à°¨à°¬à°¡à°²à±à°¦à±"
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
+#: ../contrib/command-not-found/pk-command-not-found-test.c:665
msgid "Similar command is:"
msgstr "à°
à°à±à°µà°à°à°¿ à°à°¦à±à°¶à°®à±:"
#. TRANSLATORS: Ask the user if we should run the similar command
#: ../contrib/command-not-found/pk-command-not-found.c:674
+#: ../contrib/command-not-found/pk-command-not-found-test.c:674
msgid "Run similar command:"
msgstr "à°
à°à±à°µà°à°à°¿ à°à°¦à±à°¶à°®à±à°¨à± నడà±à°ªà±à°®à±:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
#: ../contrib/command-not-found/pk-command-not-found.c:686
#: ../contrib/command-not-found/pk-command-not-found.c:695
+#: ../contrib/command-not-found/pk-command-not-found-test.c:686
+#: ../contrib/command-not-found/pk-command-not-found-test.c:695
msgid "Similar commands are:"
msgstr "à°à°à±à°¤à±à°°à± à°à°¦à±à°¶à°®à±à°²à±:"
#. TRANSLATORS: ask the user to choose a file to run
#: ../contrib/command-not-found/pk-command-not-found.c:702
+#: ../contrib/command-not-found/pk-command-not-found-test.c:702
msgid "Please choose a command to run"
msgstr "నడà±à°ªà±à°à°à± దయà°à±à°¸à°¿ à°à°¦à±à°¶à°®à±à°¨à± à°¯à±à°à°à±à°à±à°¨à±à°®à±"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
+#: ../contrib/command-not-found/pk-command-not-found-test.c:721
msgid "The package providing this file is:"
msgstr "à°¸à°à°à°²à°¨à°®à± à°
à°à°¦à°¿à°à°à±à°à±à°¨à±à°¨ ఠదసà±à°¤à±à°°à°®à±:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
+#: ../contrib/command-not-found/pk-command-not-found-test.c:726
#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr "à°¸à°à°à°²à°¨à°®à± '%s'నౠà°à°¦à±à°¶à°®à± '%s' à°
à°à°¦à°¿à°µà±à°µà±à°à°à± à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à°¾à°²à°¾?"
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found-test.c:747
msgid "Packages providing this file are:"
msgstr "ఠదసà±à°¤à±à°°à°®à±à°¨à± à°
à°à°¦à°¿à°à°à± à°¸à°à°à°²à°¨à°®à±à°²à±:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
+#: ../contrib/command-not-found/pk-command-not-found-test.c:756
msgid "Suitable packages are:"
msgstr "సరితà±à°à± à°¸à°à°à°²à°¨à°®à±à°²à±:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found-test.c:764
msgid "Please choose a package to install"
msgstr "à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à±à°à°à± దయà°à±à°¸à°¿ à°¸à°à°à°²à°¨à°®à±à°¨à± à°¯à±à°à°à±à°à±à°¨à±à°®à±"
#. TRANSLATORS: we are starting to install the packages
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, 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 "à°ªà±à°¯à°¾à°à±à°à±à°à°¿à°à± à°à°¨à±à°¸à±à°²à± à°à°à°à°°à±à°«à±à°¸à±"
+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
+#: ../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 "సరà±."
#. 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 à°
à°à±à°¤à°¨à°ªà°°à°à°¿à°¨ à°¡à±à°¬à°à±âసమాà°à°¾à°° à°°à±à°ªà±à°²à°¨à± à°à°¨à±à°à±à°¨à±à°¨à°¦à°¿."
#. 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 "విఫలమà±à°à°¦à°¿."
#. 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 "à°¡à°¿à°¬à°à±âసమాà°à°¾à°°à° à°¸à°à°à°²à°¨à°®à± %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 "à°à±à°°à°®à°¿à°à°ªà± à°°à±à°¤à°¿à°²à± à°¸à°à°à°²à°¨à°®à±à°²à°¨à± à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à±à°à°²à±à°¦à±"
#. 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 "à°ªà±à°¯à°¾à°à±à°à±à°à°¿à°à± à°¡à°¿à°µà±à°à± à°°à±à°²à±à°¡à°°à±"
#. TRANSLATORS: user did not specify a valid device sysfs path
#: ../contrib/device-rebind/pk-device-rebind.c:322
msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "à°®à±à°°à± à°à°¨à±à°¸à° à°µà±à° à°à±à°²à±à°²à±à°¨à°à±à°µà°à°à°¿ పరిà°à°° పాతà±âà°¨à±à°¨à°¾ à°¤à±à°²à±à°ªà°µà°²à±à°¨à±"
#. TRANSLATORS: user did not specify a valid device sysfs path
#: ../contrib/device-rebind/pk-device-rebind.c:332
msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "à° à°¸à±à°à±à°°à°¿à°ªà±à°à± root వినియà±à°à°¦à°¾à°°à°¿ à°à±à°¤ మాతà±à°°à°®à± à°µà±à°ªà°¯à±à°à°¿à°à°à°¬à°¡à±à°¤à±à°à°¦à°¿"
#. TRANSLATORS: we're going to verify the path first
#: ../contrib/device-rebind/pk-device-rebind.c:341
msgid "Verifying device path"
-msgstr ""
+msgstr "పరిà°à°° పాతà±âనౠనిరà±à°§à°¾à°°à°¿à°à°à±à°à±à°¨à±à°¨à°¦à°¿"
#. TRANSLATORS: user did not specify a device sysfs path that exists
#: ../contrib/device-rebind/pk-device-rebind.c:346
-#, fuzzy
msgid "Failed to verify device path"
-msgstr "దసà±à°¤à±à°°à°®à±à°¨à± à°¶à±à°§à°¿à°à°à±à°à°²à± విఫలమà±à°à°¦à°¿"
+msgstr "పరిà°à°° పాతà±âనౠనిరà±à°§à°¾à°°à°¿à°à°à±à°à°à± విఫలమà±à°à°¦à°¿"
#. TRANSLATORS: we're going to try
#: ../contrib/device-rebind/pk-device-rebind.c:360
msgid "Attempting to rebind device"
-msgstr ""
+msgstr "పరిà°à°°à°®à±à°¨à± పనà°à°¬à°à°¦à°¨à° à°à±à°¯à±à°à°à± à°ªà±à°°à°¯à°¤à±à°¨à°¿à°à°à±à°à±à°¨à±à°¨à°¦à°¿"
#. 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"
@@ -1274,6 +1404,93 @@ msgstr "PackageKit à°¸à°à°à°²à°¨à°®à± à°à°¾à°¬à°¿à°¤à°¾"
msgid "PackageKit Service Pack"
msgstr "PackageKit à°¸à±à°µà°¾ పాà°à±"
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "à°¸à°à°¤à°à°®à±à°à±à°¯à°¨à°¿ సాఫà±à°à±à°µà±à°°à± à°¸à°à°¸à±à°¥à°¾à°ªà°¨à°¨à± à°®à±à°°à± à°
à°¨à±à°®à°¤à°¿à°à°à°¾à°²à°¨à°¿ à°
à°¨à±à°à±à°¨à±à°à±à°¨à±à°¨à°¾à°°à°¾?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "à°¸à°à°¤à°à°®à± à°à±à°¯à°¨à°¿ సాఫà±à°à±à°µà±à°°à± à°¸à°à°¸à±à°¥à°¾à°ªà°¿à°à°à°¬à°¡à°¦à±."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "సాఫà±à°à±à°µà±à°°à± à°®à±à°²à°®à±à°¯à±à°à±à° à°¸à°à°¤à°à°®à± à°
వసరమà±"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:102
+msgid "Software source name"
+msgstr "సాఫà±à°à±à°µà±à°°à± à°®à±à°²à°ªà± నామమà±"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:103
+msgid "Key URL"
+msgstr "à°à± URL"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:104
+msgid "Key user"
+msgstr "à°à± వినియà±à°à°¦à°¾à°°à°¿"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:105
+msgid "Key ID"
+msgstr "à°à± ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "à°à± à°µà±à°²à°¿à°®à±à°¦à±à°°"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "à°à± à°à±à°®à±âà°¸à±à°à°¾à°à°ªà±"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "à°
à°à°¤à°¿à°® వినియà±à°à°¦à°¾à°°à°¿ à°²à±à°¸à±à°¨à±à°¸à± à°µà±à°ªà±à°ªà°à°¦à°®à± à°
వసరమà±à°à°¦à°¿"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Agreement"
+msgstr "à°à°ªà±à°ªà°à°¦à°®à±"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "à°®à±à°°à± à° à°µà±à°ªà±à°ªà°à°¦à°®à±à°¨à± à°à°®à±à°¦à°¿à°¸à±à°¤à°¾à°°à°¾?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "à°à°ªà±à°ªà°à°¦à°®à± à°à°®à±à°¦à°¿à°à°à°¬à°¡à°¦à±."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:194
+msgid "Media change required"
+msgstr "మాధà±à°¯à°®à° మారà±à°ªà± à°
వసరమà±à°à°¦à°¿"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:195
+msgid "Media type"
+msgstr "మాధà±à°¯à°®à° à°°à°à°®à±"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:196
+msgid "Media ID"
+msgstr "మాధà±à°¯à°®à° ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:197
+msgid "Text"
+msgstr "పాఠà±à°¯à°®à±"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "దయà°à±à°¸à°¿ సరà±à°¨ మాధà±à°¯à°®à°¾à°¨à±à°¨à°¿ à°à±à°°à±à°à±à°®à±"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "సరà±à°¨ మాధà±à°¯à°®à° à°à±à°°à±à°à°¬à°¡à°²à±à°¦à±."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "బదిలà±à°à°°à°£ à°®à±à°à°¦à±à°à±à°¸à°¾à°à°²à±à°¦à±."
+
#. SECURITY:
#. - Normal users do not require admin authentication to accept new
#. licence agreements.
@@ -1289,8 +1506,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 +1532,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"
@@ -1393,7 +1608,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
@@ -1514,43 +1729,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 5254d3b57e181725c53397018a26ec0d893d437a
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 09:27:59 2009 +0100
Add a check for glib-2.0 >= 2.22.0 for the new glib2 library
diff --git a/configure.ac b/configure.ac
index 342078c..a173274 100644
--- a/configure.ac
+++ b/configure.ac
@@ -552,6 +552,8 @@ AC_ARG_ENABLE(glib2, AS_HELP_STRING([--enable-glib2],[Build glib2 library (exper
build_glib2=$enableval,build_glib2=no)
AM_CONDITIONAL(PK_BUILD_GLIB2, test $build_glib2 = "yes")
if test x$build_glib2 = xyes; then
+ # needed for g_cancellable_connect() and g_ptr_array_ref()
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.22.0)
AC_DEFINE(PK_BUILD_GLIB2,1,[Build glib2 code])
fi
commit c8a158bf1d0ca02afb3a6693d0020f531240e7aa
Merge: 9b57a8a... 1a04977...
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Sep 9 08:42:14 2009 +0100
Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit
commit 9b57a8a946f11ee53bfafb1c2ab25432a7bdcc0d
Author: Christoph Wickert <cwickert at fedoraproject.org>
Date: Wed Sep 9 08:41:23 2009 +0100
yum: Fix yum-comps-groups.conf to bring back the Xfce packages
diff --git a/backends/yum/yum-comps-groups.conf b/backends/yum/yum-comps-groups.conf
index b7142f3..24e63fd 100644
--- a/backends/yum/yum-comps-groups.conf
+++ b/backends/yum/yum-comps-groups.conf
@@ -2,7 +2,8 @@
admin-tools=base-system;system-tools,base-system;admin-tools,rpmfusion_free;hardware-support
desktop-gnome=rpmfusion_free;gnome-desktop,desktops;gnome-desktop
desktop-kde=desktops;kde-desktop,rpmfusion_free;kde-desktop
-desktop-other=desktops;window-managers,desktops;sugar-desktop,desktops;lxde-desktop,desktops;xfce-desktop
+desktop-xfce=desktops;xfce-desktop
+desktop-other=desktops;window-managers,desktops;sugar-desktop,desktops;lxde-desktop
education=apps;education,development;electronic-lab
fonts=base-system;fonts,base-system;legacy-fonts
games=apps;games,rpmfusion_free;games,rpmfusion_nonfree;games
commit 1a04977b4d34807cbb9a8a430653129a1463fc3d
Author: runab <runab at fedoraproject.org>
Date: Wed Sep 9 06:34:03 2009 +0000
Sending translation for Bengali (India)
diff --git a/po/bn_IN.po b/po/bn_IN.po
index 2a47929..1dc2508 100644
--- a/po/bn_IN.po
+++ b/po/bn_IN.po
@@ -1,4 +1,4 @@
-# translation of packagekit.master.bn_IN.po to Bengali INDIA
+# translation of packagekit.master-new.po to Bengali INDIA
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
@@ -6,10 +6,10 @@
# Runa Bhattacharjee <runab at fedoraproject.org>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: packagekit.master.bn_IN\n"
+"Project-Id-Version: packagekit.master-new\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-02 02:37+0000\n"
-"PO-Revision-Date: 2009-09-04 16:05+0530\n"
+"POT-Creation-Date: 2009-09-09 02:41+0000\n"
+"PO-Revision-Date: 2009-09-09 12:03+0530\n"
"Last-Translator: Runa Bhattacharjee <runab at redhat.com>\n"
"Language-Team: Bengali INDIA <anubad at lists.ankur.org.in>\n"
"MIME-Version: 1.0\n"
@@ -19,713 +19,784 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:143
msgid "Transaction"
msgstr "à¦à§à¦°à¦¾à¦¨à¦¸à¦¾à¦à¦¶à¦¨"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:145
msgid "System time"
msgstr "সিসà§à¦à§à¦®à§à¦° সমà§"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "Succeeded"
msgstr "সফল"
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "True"
msgstr "সতà§à¦¯ (true)"
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
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:243 ../client/pk-console-test.c:149
+#: ../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:248 ../client/pk-console-test.c:154
msgid "Duration"
msgstr "à¦
বà¦à¦¾à¦²"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
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:252 ../client/pk-console-test.c:158
+#: ../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:254 ../client/pk-console-test.c:160
msgid "User ID"
msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦à¦¾à¦°à§à¦° ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:167
msgid "Username"
msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦à¦¾à¦°à§à¦° নাম"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:171
msgid "Real name"
msgstr "নাম"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:179
msgid "Affected packages:"
msgstr "পà§à¦°à¦à¦¾à¦¬à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:181
msgid "Affected packages: None"
msgstr "পà§à¦°à¦à¦¾à¦¬à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦: à¦à¦à¦à¦¿à¦ নà§"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:336 ../lib/packagekit-glib2/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "নিমà§à¦¨à¦²à¦¿à¦à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ à¦
পসারণ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:339 ../lib/packagekit-glib2/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "নিমà§à¦¨à¦²à¦¿à¦à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:342 ../lib/packagekit-glib2/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "নিমà§à¦¨à¦²à¦¿à¦à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ à¦à¦ªà¦¡à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:345 ../lib/packagekit-glib2/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "নিমà§à¦¨à¦²à¦¿à¦à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ পà§à¦¨à¦°à¦¾à§ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:348 ../lib/packagekit-glib2/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "নিমà§à¦¨à¦²à¦¿à¦à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ ডাà¦à¦¨à¦à§à¦°à§à¦¡ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:201
msgid "Distribution"
msgstr "ডিসà§à¦à§à¦°à¦¿à¦¬à¦¿à¦à¦¶à¦¨"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:203
msgid "Type"
msgstr "ধরন"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:205 ../client/pk-console-test.c:226
msgid "Summary"
msgstr "সার-সà¦à¦à§à¦·à§à¦ª"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:215
msgid "Category"
msgstr "শà§à¦°à§à¦£à§"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:217
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:220
msgid "Parent"
msgstr "à¦à¦°à§à¦§à§à¦¬à¦¤à¦¨"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:223
msgid "Name"
msgstr "নাম"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:229
msgid "Icon"
msgstr "à¦à¦à¦à¦¨"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:243
msgid "Details about the update:"
msgstr "à¦à¦ªà¦¡à§à¦ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ বিবরণ:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:249
+#: ../lib/packagekit-glib2/pk-task-text.c:101
+#: ../lib/packagekit-glib2/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
msgstr[0] "পà§à¦¯à¦¾à¦à§à¦"
msgstr[1] "পà§à¦¯à¦¾à¦à§à¦"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:252
msgid "Updates"
msgstr "à¦à¦ªà¦¡à§à¦"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:256
msgid "Obsoletes"
msgstr "à¦
বà¦à¦¿à¦¤"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:260
+#: ../lib/packagekit-glib2/pk-task-text.c:154
msgid "Vendor"
msgstr "বিà¦à§à¦°à§à¦¤à¦¾"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:264
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:268
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:272
msgid "Restart"
msgstr "পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:276
msgid "Update text"
msgstr "à¦à¦ªà¦¡à§à¦ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ à¦à§à¦à§à¦¸à¦"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:280
msgid "Changes"
msgstr "পরিবরà§à¦¤à¦¨"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:284
msgid "State"
msgstr "à¦
বসà§à¦¥à¦¾"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:289
msgid "Issued"
msgstr "পà§à¦°à¦à¦¾à¦¶à¦¨à¦¾à¦° সমà§à¦à§à¦·à¦£"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:294
msgid "Updated"
msgstr "à¦à¦ªà¦¡à§à¦à§à¦° সমà§à¦à§à¦·à¦£"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:312
msgid "Enabled"
msgstr "সà¦à§à¦°à¦¿à§"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:315
msgid "Disabled"
msgstr "নিষà§à¦à§à¦°à¦¿à§"
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "শতাà¦à¦¶"
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "à¦
à¦à¦¾à¦¨à¦¾"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:337
msgid "System restart required by:"
msgstr "à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à§à¦° à¦à§à¦·à§à¦¤à§à¦°à§ সিসà§à¦à§à¦® পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:340
msgid "Session restart required:"
msgstr "সà§à¦¶à¦¾à¦¨ পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:343
msgid "System restart (security) required by:"
msgstr "à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à§à¦° à¦à§à¦·à§à¦¤à§à¦°à§ সিসà§à¦à§à¦® পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ (নিরাপতà§à¦¤à¦¾) à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:605
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:346
msgid "Session restart (security) required:"
msgstr "সà§à¦¶à¦¾à¦¨ পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ (নিরাপতà§à¦¤à¦¾) à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:349
msgid "Application restart required by:"
msgstr "à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦à§à¦° à¦à§à¦·à§à¦¤à§à¦°à§ à¦
à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦à§à¦¶à¦¨ পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:538
msgid "Please restart the computer to complete the update."
msgstr "à¦à¦ªà¦¡à§à¦ সমà§à¦ªà§à¦°à§à¦£ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦®à§à¦ªà¦¿à¦à¦à¦¾à¦° পà§à¦¨à¦°à¦¾à§ à¦à¦°à¦®à§à¦ à¦à¦°à§à¦¨à¥¤"
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:541
msgid "Please logout and login to complete the update."
msgstr "à¦à¦ªà¦¡à§à¦ সমà§à¦ªà¦¨à§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ লà¦-à¦à¦à¦ à¦à¦°à§ পà§à¦¨à¦°à¦¾à§ লà¦-à¦à¦¨ à¦à¦°à§à¦¨à¥¤"
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "à¦
à§à¦¯à¦¾à¦ªà§à¦²à¦¿à¦à§à¦¶à¦¨à¦à¦¿ বরà§à¦¤à¦®à¦¾à¦¨à§ à¦à¦²à¦à§, à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦à¦¿ পà§à¦¨à¦°à¦¾à¦°à¦®à§à¦ à¦à¦°à§à¦¨à¥¤"
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:544
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
-msgstr "নিরাপতà§à¦¤à¦¾ বিষà§à¦ à¦à§à¦°à§à¦¤à§à¦¬à¦ªà§à¦°à§à¦£ à¦à¦ªà¦¡à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà§à§à¦à§à¥¤ à¦à¦ªà¦¡à§à¦ সমà§à¦ªà§à¦°à§à¦£ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦®à§à¦ªà¦¿à¦à¦à¦¾à¦° পà§à¦¨à¦°à¦¾à§ à¦à¦°à¦®à§à¦ à¦à¦°à§à¦¨à¥¤"
+msgstr ""
+"নিরাপতà§à¦¤à¦¾ বিষà§à¦ à¦à§à¦°à§à¦¤à§à¦¬à¦ªà§à¦°à§à¦£ à¦à¦ªà¦¡à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà§à§à¦à§à¥¤ à¦à¦ªà¦¡à§à¦ সমà§à¦ªà§à¦°à§à¦£ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ "
+"à¦à¦®à§à¦ªà¦¿à¦à¦à¦¾à¦° পà§à¦¨à¦°à¦¾à§ à¦à¦°à¦®à§à¦ à¦à¦°à§à¦¨à¥¤"
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:547
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
-msgstr "নিরাপতà§à¦¤à¦¾ বিষà§à¦ à¦à§à¦°à§à¦¤à§à¦¬à¦ªà§à¦°à§à¦£ à¦à¦ªà¦¡à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà§à§à¦à§à¥¤ ।à¦à¦ªà¦¡à§à¦ সমà§à¦ªà¦¨à§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ লà¦-à¦à¦à¦ à¦à¦°à§ পà§à¦¨à¦°à¦¾à§ লà¦-à¦à¦¨ à¦à¦°à§à¦¨à¥¤"
+msgstr ""
+"নিরাপতà§à¦¤à¦¾ বিষà§à¦ à¦à§à¦°à§à¦¤à§à¦¬à¦ªà§à¦°à§à¦£ à¦à¦ªà¦¡à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà§à§à¦à§à¥¤ ।à¦à¦ªà¦¡à§à¦ সমà§à¦ªà¦¨à§à¦¨ à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦
নà§à¦à§à¦°à¦¹ "
+"à¦à¦°à§ লà¦-à¦à¦à¦ à¦à¦°à§ পà§à¦¨à¦°à¦¾à§ লà¦-à¦à¦¨ à¦à¦°à§à¦¨à¥¤"
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "%s পà§à¦¯à¦¾à¦à§à¦à¦à¦¿ বরà§à¦¤à¦®à¦¾à¦¨à§ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ রà§à§à¦à§"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:817
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "%s পà§à¦¯à¦¾à¦à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "à¦
à¦à§à¦¯à¦¨à§à¦¤à¦°à§à¦£ তà§à¦°à§à¦à¦¿: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../lib/packagekit-glib2/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "পরিবরà§à¦¤à¦¨à¦à§à¦²à¦¿ পà§à¦°à§à§à¦ à¦à¦°à¦¾ হবৠà¦à¦¿?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "পà§à¦¯à¦¾à¦à§à¦ à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦à¦°à§à¦® বাতিল à¦à¦°à¦¾ হà§à§à¦à§!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ ফাà¦à¦² à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s মà§à¦à§ ফà§à¦²à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পà§à¦¯à¦¾à¦à§à¦ মà§à¦à§ ফà§à¦²à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "à¦
তিরিà¦à§à¦¤ পà§à¦¯à¦¾à¦à§à¦ à¦
পসারণ à¦à¦°à¦¾ হবৠà¦à¦¿?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "পà§à¦¯à¦¾à¦à§à¦ à¦
পসারণà§à¦° à¦à¦°à§à¦® বাতিল à¦à¦°à¦¾ হà§à§à¦à§!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "%s পà§à¦¯à¦¾à¦à§à¦ পাà¦à§à¦¾ না যাà¦à§à¦¾à¦° ফলৠà¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ তা ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¾ যাà§à¦¨à¦¿"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পà§à¦¯à¦¾à¦à§à¦ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, c-format
msgid "This tool could not update %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s à¦à¦ªà¦¡à§à¦ à¦à¦°à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1270
msgid "The package update was canceled!"
msgstr "পà§à¦¯à¦¾à¦à§à¦ à¦à¦ªà¦¡à§à¦à§à¦° à¦à¦°à§à¦® বাতিল à¦à¦°à¦¾ হà§à§à¦à§!"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s-র à¦à§à¦·à§à¦¤à§à¦°à§ à¦à¦¬à¦¶à§à¦¯à¦ মান পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s-র à¦à§à¦·à§à¦¤à§à¦°à§ পà§à¦°à§à§à¦à¦¨à§à§ নিরà§à¦à¦°à¦¤à¦¾ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s পà§à¦¯à¦¾à¦à§à¦ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ বিবরণ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s পà§à¦¯à¦¾à¦à§à¦à§à¦° ফাà¦à¦² পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1401
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s-র ফাà¦à¦²à§à¦° তালিà¦à¦¾ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "à¦à¦²à§à¦²à¦¿à¦à¦¿à¦¤ ফাà¦à¦² বরà§à¦¤à¦®à¦¾à¦¨à§ à¦à¦ªà¦¸à§à¦¥à¦¿à¦¤ রà§à§à¦à§: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "পà§à¦¯à¦¾à¦à§à¦à§à¦° তালিà¦à¦¾ পà§à¦°à¦¾à¦ªà§à¦¤ à¦à¦°à¦¾ হà¦à§à¦à§"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, c-format
msgid "This tool could not get package list: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পà§à¦¯à¦¾à¦à§à¦à§à¦° তালিà¦à¦¾ তà§à¦°à¦¿ à¦à¦°à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "ডিসà§à¦à§ সà¦à¦°à¦à§à¦·à¦£ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "ফাà¦à¦² à¦à¦ªà¦¸à§à¦¥à¦¿à¦¤ নà§à¦: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "যà§à¦ à¦à¦°à¦¾à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "à¦
পসারণà§à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ পà§à¦¯à¦¾à¦à§à¦"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "à¦à§à¦¨à§ নতà§à¦¨ পà§à¦¯à¦¾à¦à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ যাà§à¦¨à¦¿"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦à¦¨à§à¦¯ à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "পà§à¦¯à¦¾à¦à§à¦ à¦
নà§à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦à¦°à¦¾ হà¦à§à¦à§: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "পাà¦à§à¦¾ যাà§à¦¨à¦¿à¥¤"
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1620
#, c-format
msgid "No packages can be found to install"
msgstr "à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦à¦¨à§à¦¯ à¦à§à¦¨à§ পà§à¦¯à¦¾à¦à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿"
#. TRANSLATORS: installing new packages from package list
#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
#, c-format
msgid "Installing packages"
msgstr "পà§à¦¯à¦¾à¦à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà¦à§à¦à§"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s পà§à¦¯à¦¾à¦à§à¦à§à¦° à¦à¦ªà¦¡à§à¦ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ বিবরণ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1670
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ %s পà§à¦¯à¦¾à¦à§à¦à§à¦° à¦à¦ªà¦¡à§à¦ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ বিবরণ পà§à¦°à¦¾à¦ªà§à¦¤ হà§à¦¨à¦¿: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "তà§à¦°à§à¦à¦¿:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:366
msgid "Package description"
msgstr "পà§à¦¯à¦¾à¦à§à¦à§à¦° বিবরণ"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:384
msgid "Message:"
msgstr "বারà§à¦¤à¦¾:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:403
msgid "Package files"
msgstr "পà§à¦¯à¦¾à¦à§à¦à§à¦° ফাà¦à¦²"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:398
msgid "No files"
msgstr "à¦à§à¦¨à§ ফাà¦à¦² à¦à¦ªà¦¸à§à¦¥à¦¿à¦¤ নà§à¦"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "সà¦à¦à§à¦°à¦¹à¦¸à§à¦¥à¦²à§à¦° সà§à¦¬à¦¾à¦à§à¦·à¦° à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1800 ../lib/packagekit-glib2/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "à¦à¦ সà§à¦¬à¦¾à¦à§à¦·à¦° à¦à§à¦°à¦¹à¦£ à¦à¦°à¦¾ হবৠà¦à¦¿?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1804 ../lib/packagekit-glib2/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "সà§à¦¬à¦¾à¦à§à¦·à¦° à¦à§à¦°à¦¹à¦£ à¦à¦°à¦¾ হà§à¦¨à¦¿à¥¤"
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦à¦¾à¦°à§à¦¦à§à¦° লাà¦à¦¸à§à¦¨à§à¦¸ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ à¦à§à¦à§à¦¤à¦¿à¦ªà¦¤à§à¦° à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "লাà¦à¦¸à§à¦¨à§à¦¸ à¦
নà§à¦¯à¦¾à§à§ à¦à¦ªà¦¨à¦¿ সমà§à¦®à¦¤ à¦à¦¿?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "লাà¦à¦¸à§à¦¨à§à¦¸ পà§à¦°à¦¤à§à¦¯à¦¾à¦à§à¦¯à¦¾à¦¨ à¦à¦°à¦¾ হà§à§à¦à§à¥¤"
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:816
msgid "The daemon crashed mid-transaction!"
msgstr "সমà§à¦ªà§à¦°à¦à¦¾à¦° à¦à¦²à¦¾à¦à¦¾à¦²à§ ডà§à¦®à¦¨ বিপরà§à¦¯à¦¸à§à¦¤ হà§à§à¦à§!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:850
msgid "PackageKit Console Interface"
msgstr "PackageKit à¦à¦¨à¦¸à§à¦² à¦à¦¨à§à¦à¦¾à¦°à¦«à§à¦¸"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:852
msgid "Subcommands:"
msgstr "সাব-à¦à¦®à¦¾à¦¨à§à¦¡:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:966
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:222
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/command-not-found/pk-command-not-found-test.c:614
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
msgid "Show extra debugging information"
msgstr "ডিবাঠসà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ à¦
তিরিà¦à§à¦¤ তথà§à¦¯ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ à¦à¦°à¦¾ হবà§"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:969
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "পà§à¦°à§à¦à§à¦°à¦¾à¦®à§à¦° সà¦à¦¸à§à¦à¦°à¦£ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ à¦à¦°à§ পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ à¦à¦°à¦¾ হবà§"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:972
msgid "Set the filter, e.g. installed"
msgstr "ফিলà§à¦à¦¾à¦° নিরà§à¦§à¦¾à¦°à¦£ à¦à¦°à§à¦¨, à¦à¦¦à¦¾à¦¹à¦°à¦£, installed"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:975
msgid "Exit without waiting for actions to complete"
msgstr "à¦à¦°à§à¦® সমাপà§à¦¤à¦¿à¦° à¦
পà§à¦à§à¦·à¦¾ না à¦à¦°à§ পà§à¦°à¦¸à§à¦¥à¦¾à¦¨ à¦à¦°à¦¾ হবà§"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ সিসà§à¦à§à¦® DBUS-র সাথৠসà¦à¦¯à§à¦ সà§à¦¥à¦¾à¦ªà¦¨ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥à¥¤"
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1052
msgid "The filter specified was invalid"
msgstr "নিরà§à¦§à¦¾à¦°à¦¿à¦¤ ফিলà§à¦à¦¾à¦° বà§à¦§ নà§"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1071
msgid "A search type is required, e.g. name"
msgstr "à¦
নà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§à¦° ধরন à¦à¦¬à¦¶à§à¦¯à¦, à¦à¦¦à¦¾à¦¹à¦°à¦£ নাম (name)"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1078 ../client/pk-console-test.c:1090
+#: ../client/pk-console-test.c:1102 ../client/pk-console-test.c:1114
msgid "A search term is required"
msgstr "à¦
নà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ à¦à¦¿à¦à§ তথà§à¦¯ লà§à¦à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1124
msgid "Invalid search type"
msgstr "à¦
নà§à¦¸à¦¨à§à¦§à¦¾à¦¨à§à¦° ধরন বà§à¦§ নà§"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦à¦¨à§à¦¯ পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম à¦
থবা ফাà¦à¦²à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1151
msgid "A type, key_id and package_id are required"
msgstr "ধরন, key_id ঠpackage_id à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2234
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1162
msgid "A package name to remove is required"
msgstr "à¦
পসারণà§à¦° à¦à¦¨à§à¦¯ পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2242
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1171
msgid "A destination directory and the package names to download are required"
msgstr "à¦à¦¦à§à¦¦à¦¿à¦·à§à¦ ডিরà§à¦à§à¦à¦°à¦¿ ঠডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¾à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2249
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1178
msgid "Directory not found"
msgstr "ডিরà§à¦à§à¦à¦°à¦¿ পাà¦à§à¦¾ যাà§à¦¨à¦¿"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1187
msgid "A licence identifier (eula-id) is required"
msgstr "লাà¦à¦¸à§à¦¨à§à¦¸ পরিà¦à§à¦à¦¾à¦°à§ (eula-id) à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2267
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1198
msgid "A transaction identifier (tid) is required"
msgstr "à¦à§à¦°à¦¾à¦¨à¦¸à¦¾à¦à¦¶à¦¨ পরিà¦à§à¦à¦¾à¦°à§ (tid) à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1219
msgid "A package name to resolve is required"
msgstr "মà§à¦®à¦¾à¦à¦¸à¦¾ à¦à¦°à¦¾à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1230 ../client/pk-console-test.c:1241
msgid "A repository name is required"
msgstr "সà¦à¦à§à¦°à¦¹à¦¸à§à¦¥à¦²à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1252
msgid "A repo name, parameter and value are required"
msgstr "à¦à¦à¦à¦¿ repo-র নাম, পরামিতি ঠমান নিরà§à¦§à¦¾à¦°à¦£ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2325
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1269
msgid "An action, e.g. 'update-system' is required"
msgstr "à¦à¦°à§à¦® নিরà§à¦§à¦¾à¦°à¦£ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦, à¦à¦¦à¦¾à¦¹à¦°à¦£ 'update-system'"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2332
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1276
msgid "A correct role is required"
msgstr "সঠিঠà¦à§à¦®à¦¿à¦à¦¾ à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:931
msgid "Failed to get the time since this action was last completed"
msgstr "à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ à¦à¦°à§à¦® সরà§à¦¬à¦¶à§à¦· সমাপà§à¦¤à¦¿à¦° সমà§à§à¦° পরৠà¦
তিবাহিত সমৠপà§à¦°à¦¾à¦ªà§à¦¤ à¦à¦°à¦¾ যাà§à¦¨à¦¿"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1286
+#: ../client/pk-console-test.c:1301 ../client/pk-console-test.c:1310
+#: ../client/pk-console-test.c:1330 ../client/pk-console-test.c:1339
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:285
msgid "A package name is required"
msgstr "পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2379
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1319
msgid "A package provide string is required"
msgstr "পà§à¦¯à¦¾à¦à§à¦ দà§à¦¬à¦¾à¦°à¦¾ à¦à¦ªà¦²à¦¬à§à¦§ (provides) সামà¦à§à¦°à§ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ তথà§à¦¯ à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2408
msgid "A list file name to create is required"
msgstr "তালিà¦à¦¾ রà§à¦ªà§ নিরà§à¦®à¦¾à¦£à§à¦° à¦à¦¨à§à¦¯ ফাà¦à¦²à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "তালিà¦à¦¾ রà§à¦ªà§ পà§à¦°à¦¦à¦°à§à¦¶à¦¨à§à¦° à¦à¦¨à§à¦¯ ফাà¦à¦²à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1399
#, c-format
msgid "Option '%s' is not supported"
msgstr "'%s' বিà¦à¦²à§à¦ªà¦à¦¿ সমরà§à¦¥à¦¿à¦¤ নà§"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "à¦à¦ à¦à¦°à§à¦®à§à¦° à¦à¦¨à§à¦¯ পà§à¦°à§à§à¦à¦¨à§à§ à¦
নà§à¦®à¦¤à¦¿ à¦à¦ªà¦¨à¦¾à¦° à¦à¦¨à§à¦¯ à¦à¦ªà¦²à¦¬à§à¦§ নà§"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1411
msgid "Command failed"
msgstr "à¦à¦®à¦¾à¦¨à§à¦¡ বিফল"
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:568
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "à¦à¦ªà¦²à¦¬à§à¦§ পà§à¦¯à¦¾à¦à§à¦à¦à¦¿ à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:596
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ পà§à¦¯à¦¾à¦à§à¦à¦à¦¿ à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:624 ../client/pk-console-test.c:652
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "পà§à¦¯à¦¾à¦à§à¦à¦à¦¿ à¦à¦ সামà¦à§à¦°à§ দà§à¦¬à¦¾à¦°à¦¾ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console-test.c:680 ../client/pk-console-test.c:708
+#: ../client/pk-console-test.c:736 ../client/pk-console-test.c:764
+#: ../client/pk-console-test.c:792
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "à¦à¦ªà¦²à¦¬à§à¦§ সà¦à¦² পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ à¦à¦ সামà¦à§à¦°à§ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1000
+msgid "Failed to contact PackageKit"
+msgstr "PackageKit-র সাথৠসà¦à¦¯à§à¦ সà§à¦¥à¦¾à¦ªà¦¨ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1130
+msgid "A package name to install is required"
+msgstr "à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1139
+msgid "A filename to install is required"
+msgstr "à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦à¦¨à§à¦¯ ফাà¦à¦²à§à¦° নাম à¦à¦²à§à¦²à§à¦ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
+
#. TRANSLATORS: This is the state of the transaction
#: ../client/pk-generate-pack.c:101
msgid "Downloading"
@@ -742,48 +813,51 @@ 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:188 ../client/pk-generate-pack-test.c:225
msgid "Set the file name of dependencies to be excluded"
msgstr "à¦à¦ªà§à¦à§à¦·à¦¾ à¦à¦°à¦¾à¦° à¦à¦¦à§à¦¦à§à¦¶à§à¦¯à§ নিরà§à¦à¦°à¦¤à¦¾à¦° তালিà¦à¦¾ à¦à¦²à§à¦²à§à¦à¦à¦¾à¦°à§ ফাà¦à¦²à§à¦° পাথ নিরà§à¦§à¦¾à¦°à¦£ à¦à¦°à§à¦¨"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:228
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:194 ../client/pk-generate-pack-test.c:231
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:197 ../client/pk-generate-pack-test.c:234
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:225 ../client/pk-generate-pack-test.c:269
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:233 ../client/pk-generate-pack-test.c:277
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:249 ../client/pk-generate-pack-test.c:293
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
+#. 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-test.c:321 ../client/pk-generate-pack-test.c:327
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:280 ../client/pk-generate-pack-test.c:334
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
@@ -792,60 +866,60 @@ msgstr ""
"নà§à¥¤"
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:345
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:307 ../client/pk-generate-pack-test.c:361
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:310 ../client/pk-generate-pack-test.c:364
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:323 ../client/pk-generate-pack-test.c:377
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:333 ../client/pk-generate-pack-test.c:389
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:344 ../client/pk-generate-pack-test.c:398
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:348 ../client/pk-generate-pack-test.c:402
#, 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:365 ../client/pk-generate-pack-test.c:410
msgid "Creating service pack..."
msgstr "সারà§à¦à¦¿à¦¸ পà§à¦¯à¦¾à¦ নিরà§à¦®à¦¾à¦£ à¦à¦°à¦¾ হà¦à§à¦à§..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:425
#, 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:377 ../client/pk-generate-pack-test.c:430
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' নিরà§à¦®à¦¾à¦£ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
msgid "PackageKit Monitor"
msgstr "PackageKit Monitor"
@@ -853,27 +927,38 @@ msgstr "PackageKit Monitor"
msgid "Cannot show the list of transactions"
msgstr "à¦à§à¦°à¦¾à¦¸à¦¾à¦à¦¶à¦¨à§à¦° তালিà¦à¦¾ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "à¦à§à¦°à¦¾à¦¨à¦¸à¦¾à¦à¦¶à¦¾à¦¨à§à¦° তালিà¦à¦¾ পà§à¦°à¦¾à¦ªà§à¦¤ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥à¥¤"
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "ডà§à¦®à¦¨à§à¦° à¦
বসà§à¦¥à¦¾ পà§à¦°à¦¾à¦ªà§à¦¤ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥"
+
+#: ../client/pk-tools-common.c:51
+#: ../lib/packagekit-glib2/pk-console-shared.c:53
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ ১ থà§à¦à§ %i-র মধà§à¦¯à§ à¦à¦à¦à¦¿ সà¦à¦à§à¦¯à¦¾ লিà¦à§à¦¨: "
+
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
+#: ../client/pk-tools-common.c:188
#, 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:200
+#: ../lib/packagekit-glib2/pk-console-shared.c:153
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:207
+#: ../lib/packagekit-glib2/pk-console-shared.c:162
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..."
@@ -930,73 +1015,90 @@ msgstr "à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà¦à§à¦à§..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
+#: ../contrib/command-not-found/pk-command-not-found-test.c:358
msgid "Downloading details about the software sources."
msgstr "সফà§à¦à¦à§à§à¦¯à¦¾à¦°à§à¦° à¦à§à¦¸à¦¸à§à¦¥à¦² সমà§à¦ªà¦°à§à¦à§ বিরবণ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¾ হà¦à§à¦à§à¥¤"
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
+#: ../contrib/command-not-found/pk-command-not-found-test.c:362
msgid "Downloading filelists (this may take some time to complete)."
msgstr "ফাà¦à¦²à§à¦° তালিà¦à¦¾ ডাà¦à¦¨à¦²à§à¦¡ à¦à¦°à¦¾ হà¦à§à¦à§ (à¦à¦ à¦à¦¾à¦à§ à¦à¦¿à¦à§ সমৠবà§à¦¯à§ হà¦à§à¦¾à¦° সমà§à¦à¦¾à¦¬à¦¨à¦¾ রà§à§à¦à§)।"
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
+#: ../contrib/command-not-found/pk-command-not-found-test.c:366
msgid "Waiting for package manager lock."
msgstr "পà§à¦¯à¦¾à¦à§à¦ পরিà¦à¦¾à¦²à¦¨à¦¬à§à¦¯à¦¬à¦¸à§à¦¥à¦¾à¦° লঠপà§à¦°à¦¾à¦ªà§à¦¤ à¦à¦°à¦¾à¦° à¦
পà§à¦à§à¦·à¦¾ à¦à¦²à¦à§à¥¤"
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
+#: ../contrib/command-not-found/pk-command-not-found-test.c:370
msgid "Loading list of packages."
msgstr "পà§à¦¯à¦¾à¦à§à¦à§à¦° তালিà¦à¦¾ লà§à¦¡ à¦à¦°à¦¾ হà¦à§à¦à¥¤"
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
+#: ../contrib/command-not-found/pk-command-not-found-test.c:444
msgid "Failed to search for file"
msgstr "ফাà¦à¦² à¦
নà§à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥"
#. TRANSLATORS: we failed to launch the executable, the error follows
#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found-test.c:570
msgid "Failed to launch:"
msgstr "à¦à¦¿à¦¹à§à¦¨à¦¿à¦¤ সামà¦à§à¦°à§ à¦à¦°à¦®à§à¦ à¦à¦°à¦¤à§ বà§à¦¯à¦°à§à¦¥:"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/command-not-found/pk-command-not-found.c:632
+#: ../contrib/command-not-found/pk-command-not-found-test.c:630
msgid "PackageKit Command Not Found"
msgstr "PackageKit à¦à¦®à¦¾à¦¨à§à¦¡ পাà¦à§à¦¾ যাà§à¦¨à¦¿"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found-test.c:658
msgid "Command not found."
msgstr "à¦à¦®à¦¾à¦¨à§à¦¡ পাà¦à§à¦¾ যাà§à¦¨à¦¿à¥¤"
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
+#: ../contrib/command-not-found/pk-command-not-found-test.c:665
msgid "Similar command is:"
msgstr "à¦
নà§à¦°à§à¦ª à¦à¦®à¦¾à¦¨à§à¦¡ হল:"
#. TRANSLATORS: Ask the user if we should run the similar command
#: ../contrib/command-not-found/pk-command-not-found.c:674
+#: ../contrib/command-not-found/pk-command-not-found-test.c:674
msgid "Run similar command:"
msgstr "à¦
নà§à¦°à§à¦ª à¦à¦®à¦¾à¦¨à§à¦¡ সà¦à§à¦à¦¾à¦²à¦¨ à¦à¦°à§à¦¨:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
#: ../contrib/command-not-found/pk-command-not-found.c:686
#: ../contrib/command-not-found/pk-command-not-found.c:695
+#: ../contrib/command-not-found/pk-command-not-found-test.c:686
+#: ../contrib/command-not-found/pk-command-not-found-test.c:695
msgid "Similar commands are:"
msgstr "à¦
নà§à¦°à§à¦ª à¦à¦®à¦¾à¦¨à§à¦¡ হল:"
#. TRANSLATORS: ask the user to choose a file to run
#: ../contrib/command-not-found/pk-command-not-found.c:702
+#: ../contrib/command-not-found/pk-command-not-found-test.c:702
msgid "Please choose a command to run"
msgstr "à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ সà¦à§à¦à¦¾à¦²à¦¨à§à¦° à¦à¦¨à§à¦¯ à¦à¦®à¦¾à¦¨à§à¦¡ নিরà§à¦¬à¦¾à¦à¦¨ à¦à¦°à§à¦¨"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
+#: ../contrib/command-not-found/pk-command-not-found-test.c:721
msgid "The package providing this file is:"
msgstr "à¦à¦ পà§à¦¯à¦¾à¦à§à¦ à¦à¦ªà¦²à¦¬à§à¦§à¦à¦¾à¦°à§ ফাà¦à¦² হল:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
+#: ../contrib/command-not-found/pk-command-not-found-test.c:726
#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr ""
@@ -1005,17 +1107,20 @@ msgstr ""
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found-test.c:747
msgid "Packages providing this file are:"
msgstr "à¦à¦ ফাà¦à¦² à¦à¦ªà¦²à¦¬à§à¦§à¦à¦¾à¦°à§ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ হল:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
+#: ../contrib/command-not-found/pk-command-not-found-test.c:756
msgid "Suitable packages are:"
msgstr "পà§à¦°à¦¯à§à¦à§à¦¯ পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ হল:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found-test.c:764
msgid "Please choose a package to install"
msgstr "à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾à¦° à¦à¦¨à§à¦¯ à¦à¦à¦à¦¿ পà§à¦¯à¦¾à¦à§à¦ নিরà§à¦¬à¦¾à¦à¦¨ à¦à¦°à§à¦¨"
@@ -1031,174 +1136,174 @@ msgid "Failed to find the package %s, or already installed: %s"
msgstr "%s পà§à¦¯à¦¾à¦à§à¦à¦à¦¿ পাà¦à§à¦¾ যাà§à¦¨à¦¿, à¦
থবা পà§à¦°à§à¦¬à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হà§à§à¦à§: %s"
#. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
msgid "Don't actually install any packages, only simulate what would be installed"
msgstr "à¦à§à¦¨à§ পà§à¦¯à¦¾à¦à§à¦ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হবৠনা, শà§à¦§à§à¦®à¦¾à¦¤à§à¦° নিরà§à¦§à¦¾à¦°à¦¿à¦¤ à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦
নà§à¦à¦°à¦£ à¦à¦°à¦¾ হবà§"
#. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
msgid "Do not install dependencies of the core packages"
msgstr "মà§à¦² পà§à¦¯à¦¾à¦à§à¦à§à¦° নিরà§à¦à¦°à¦¤à¦¾à¦° পà§à¦¯à¦¾à¦à§à¦à¦à§à¦²à¦¿ à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হবৠনা"
#. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
msgid "Do not display information or progress"
msgstr "তথà§à¦¯ à¦
থবা পà§à¦°à¦à¦¤à¦¿ পà§à¦°à¦¦à¦°à§à¦¶à¦¨ à¦à¦°à¦¾ হবৠনা"
#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
msgid "PackageKit Debuginfo Installer"
msgstr "PackageKit Debuginfo à¦à¦¨à¦¸à§à¦à¦²à¦¾à¦°"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
#, c-format
msgid "ERROR: Specify package names to install."
msgstr "ERROR: à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨à§à¦° à¦à¦¨à§à¦¯ পà§à¦¯à¦¾à¦à§à¦à§à¦° নাম নিরà§à¦§à¦¾à¦°à¦£ à¦à¦°à§à¦¨à¥¤"
#. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
#, c-format
msgid "Getting sources list"
msgstr "à¦à§à¦¸à§à¦° তালিà¦à¦¾ পà§à¦°à¦¾à¦ªà§à¦¤ à¦à¦°à¦¾ হà¦à§à¦à§"
#. 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 "বিফল।"
#. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
#, c-format
msgid "Enabled %i debugging sources."
msgstr "ডিবাà¦à§à¦° à¦à¦¨à§à¦¯ %i-à¦à¦¿ à¦à§à¦¸à¦¸à§à¦¥à¦² সà¦à§à¦°à¦¿à§ à¦à¦°à¦¾ হà§à§à¦à§à¥¤"
#. TRANSLATORS: we're now finding packages that match in all the repos
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:725
#, c-format
msgid "Finding debugging packages"
msgstr "ডিবাà¦à§à¦° à¦à¦¨à§à¦¯ পà§à¦¯à¦¾à¦à§à¦ à¦
নà§à¦¸à¦¨à§à¦§à¦¾à¦¨ à¦à¦°à¦¾ হà¦à§à¦à§"
#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
#, c-format
msgid "Failed to find the package %s: %s"
msgstr "%s পà§à¦¯à¦¾à¦à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %s"
#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
#, c-format
msgid "Failed to find the debuginfo package %s: %s"
msgstr "%s debuginfo পà§à¦¯à¦¾à¦à§à¦ পাà¦à§à¦¾ যাà§à¦¨à¦¿: %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-à¦à¦¿ à¦à§à¦¸à¦¸à§à¦¥à¦² নিষà§à¦à§à¦°à¦¿à§ à¦à¦°à¦¾ হà§à§à¦à§à¥¤"
@@ -1301,6 +1406,93 @@ msgstr "PackageKit পà§à¦¯à¦¾à¦à§à¦à§à¦° তালিà¦à¦¾"
msgid "PackageKit Service Pack"
msgstr "PackageKit সারà§à¦à¦¿à¦¸ পà§à¦¯à¦¾à¦"
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "সà§à¦¬à¦¾à¦à§à¦·à¦°à¦¬à¦¿à¦¹à§à¦¨ সফà§à¦à¦à§à§à¦¯à¦¾à¦°à§à¦° à¦à¦¨à¦¸à§à¦à¦²à§à¦¶à¦¨ à¦
নà§à¦®à§à¦¦à¦¨ à¦à¦°à¦¾ হবৠà¦à¦¿?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "সà§à¦¬à¦¾à¦à§à¦·à¦°à¦¬à¦¿à¦¹à§à¦¨ সফà§à¦à¦à§à§à¦¯à¦¾à¦° à¦à¦¨à¦¸à§à¦à¦² à¦à¦°à¦¾ হবৠনা।"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "সফà§à¦à¦à§à§à¦¯à¦¾à¦° সà¦à¦à§à¦°à¦¹à¦¸à§à¦¥à¦²à§à¦° সà§à¦¬à¦¾à¦à§à¦·à¦° à¦à¦¬à¦¶à§à¦¯à¦"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:102
+msgid "Software source name"
+msgstr "সফà§à¦à¦à§à§à¦¯à¦¾à¦° à¦à§à¦¸à§à¦° নাম"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:103
+msgid "Key URL"
+msgstr "à¦à¦¿-র URL"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:104
+msgid "Key user"
+msgstr "à¦à¦¿ বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦à¦¾à¦°à§"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:105
+msgid "Key ID"
+msgstr "à¦à¦¿-র ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "à¦à¦¿-র ফিà¦à¦à¦¾à¦°à¦ªà§à¦°à¦¿à¦¨à§à¦"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "à¦à¦¿-র সমà§à§à¦° মান"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "বà§à¦¯à¦¬à¦¹à¦¾à¦°à¦à¦¾à¦°à§à¦¦à§à¦° লাà¦à¦¸à§à¦¨à§à¦¸ সà¦à¦à§à¦°à¦¾à¦¨à§à¦¤ à¦à§à¦à§à¦¤à¦¿à¦ªà¦¤à§à¦° à¦à¦¬à¦¶à§à¦¯à¦"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Agreement"
+msgstr "à¦à§à¦à§à¦¤à¦¿à¦ªà¦¤à§à¦°"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "à¦à¦ à¦à§à¦à§à¦¤à¦¿à¦ªà¦¤à§à¦°à§à¦° শরà§à¦¤ à¦
নà§à¦¯à¦¾à§à§ à¦à¦¿ à¦à¦ªà¦¨à¦¿ সমà§à¦®à¦¤?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "à¦à§à¦à§à¦¤à¦¿à¦ªà¦¤à§à¦°à§à¦° শরà§à¦¤ à¦à§à¦°à¦¹à¦£ à¦à¦°à¦¾ হà§à¦¨à¦¿à¥¤"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:194
+msgid "Media change required"
+msgstr "মিডিà§à¦¾ পরিবরà§à¦¤à¦¨ à¦à¦°à¦¾ à¦à¦¬à¦¶à§à¦¯à¦"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:195
+msgid "Media type"
+msgstr "মিডিà§à¦¾à¦° ধরন"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:196
+msgid "Media ID"
+msgstr "মিডিà§à¦¾à¦° ID"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:197
+msgid "Text"
+msgstr "à¦à§à¦à§à¦¸à¦"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "à¦
নà§à¦à§à¦°à¦¹ à¦à¦°à§ সঠিঠমিডিà§à¦¾ ঢà§à¦à¦¿à§à§ দিন"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "সঠিঠমিডিà§à¦¾ ঢà§à¦à¦¾à¦¨à§ হà§à¦¨à¦¿à¥¤"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "à¦à§à¦°à¦¾à¦¨à¦¸à¦¾à¦à¦¶à¦¾à¦¨à§ à¦à¦à¦¿à§à§ যাà§à¦¨à¦¿à¥¤"
+
#. SECURITY:
#. - Normal users do not require admin authentication to accept new
#. licence agreements.
@@ -1549,24 +1741,34 @@ 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
commit 73fcc5063721597007b5b5167ef36039edaa4ae4
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date: Tue Sep 8 14:37:34 2009 -0300
pk-qt: Fix simulateInstallPackage call
diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 141afde..d24ab02 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -422,7 +422,7 @@ Transaction* Client::simulateInstallFile(const QString& file)
Transaction* Client::simulateInstallPackages(const QList<Package*>& packages)
{
- RUN_TRANSACTION(SimulateInstallFiles(Util::packageListToPids(packages)))
+ RUN_TRANSACTION(SimulateInstallPackages(Util::packageListToPids(packages)))
}
Transaction* Client::simulateInstallPackage(Package* package)
commit 01404723f4e2e2d1a2f5c20f6712da69f8cfcab5
Merge: 543073d... b646ef2...
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 17:41:57 2009 +0100
Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit
commit b646ef2ad1b4c6dfdf3c89ab1f3b25451ec63a2e
Author: raven <raven at fedoraproject.org>
Date: Tue Sep 8 16:17:37 2009 +0000
Sending translation for Polish
diff --git a/po/pl.po b/po/pl.po
index fd3fe24..62a3c9f 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: pl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-07 08:27+0000\n"
-"PO-Revision-Date: 2009-09-07 12:09+0200\n"
+"POT-Creation-Date: 2009-09-08 14:35+0000\n"
+"PO-Revision-Date: 2009-09-08 18:17+0200\n"
"Last-Translator: Piotr DrÄ
g <piotrdrag at gmail.com>\n"
"Language-Team: Polish <fedora-trans-pl at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -16,106 +16,106 @@ msgstr ""
"|| n%100>=20) ? 1 : 2);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:143
msgid "Transaction"
msgstr "Transakcja"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:145
msgid "System time"
msgstr "Czas systemowy"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "Succeeded"
msgstr "Powodzenie"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "True"
msgstr "Prawda"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:147
msgid "False"
msgstr "FaÅsz"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:149
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "Rola"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
msgid "Duration"
msgstr "Czas trwania"
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:154
msgid "(seconds)"
msgstr "(sekundy)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:158
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "Wiersz poleceÅ"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:160
msgid "User ID"
msgstr "Identyfikator użytkownika"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:167
msgid "Username"
msgstr "Nazwa użytkownika"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:171
msgid "Real name"
msgstr "ImiÄ i nazwisko"
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:179
msgid "Affected packages:"
msgstr "Dotyczy pakietów:"
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:181
msgid "Affected packages: None"
msgstr "Dotyczy pakietów: żadnych"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336 ../lib/packagekit-glib2/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "NastÄpujÄ
ce pakiety muszÄ
zostaÄ usuniÄte:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339 ../lib/packagekit-glib2/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "NastÄpujÄ
ce pakiety muszÄ
zostaÄ zainstalowane:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342 ../lib/packagekit-glib2/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "NastÄpujÄ
ce pakiety muszÄ
zostaÄ zaktualizowane:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345 ../lib/packagekit-glib2/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "NastÄpujÄ
ce pakiety muszÄ
zostaÄ ponownie zainstalowane:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348 ../lib/packagekit-glib2/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "NastÄpujÄ
ce pakiety muszÄ
zostaÄ zainstalowane w starszych wersjach:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:201
msgid "Distribution"
msgstr "Dystrybucja"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:203
msgid "Type"
msgstr "Typ"
@@ -123,45 +123,46 @@ msgstr "Typ"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:205 ../client/pk-console-test.c:226
msgid "Summary"
msgstr "Podsumowanie"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:215
msgid "Category"
msgstr "Kategoria"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:217
msgid "ID"
msgstr "Identyfikator"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:220
msgid "Parent"
msgstr "NadrzÄdna"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:223
msgid "Name"
msgstr "Nazwa"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:229
msgid "Icon"
msgstr "Ikona"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:243
msgid "Details about the update:"
msgstr "SzczegóÅy aktualizacji:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
-#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:249
+#: ../lib/packagekit-glib2/pk-task-text.c:101
+#: ../lib/packagekit-glib2/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
@@ -170,121 +171,121 @@ msgstr[1] "Pakiety"
msgstr[2] "Pakietów"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:252
msgid "Updates"
msgstr "Aktualizuje"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:256
msgid "Obsoletes"
msgstr "ZastÄpuje"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
-#: ../client/pk-task-text.c:154
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:260
+#: ../lib/packagekit-glib2/pk-task-text.c:154
msgid "Vendor"
msgstr "Producent"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:264
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:268
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:272
msgid "Restart"
msgstr "Uruchom ponownie"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:276
msgid "Update text"
msgstr "Tekst aktualizacji"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:280
msgid "Changes"
msgstr "Zmiany"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:284
msgid "State"
msgstr "Stan"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:289
msgid "Issued"
msgstr "Wydano"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:294
msgid "Updated"
msgstr "Zaktualizowano"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:312
msgid "Enabled"
msgstr "WÅÄ
czone"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:315
msgid "Disabled"
msgstr "WyÅÄ
czone"
-#: ../client/pk-console.c:555 ../client/pk-console.c:557
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "Procentowo"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "Nieznane"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:337
msgid "System restart required by:"
msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:340
msgid "Session restart required:"
msgstr "Wymagane jest ponowne uruchomienie sesji:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:343
msgid "System restart (security) required by:"
msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:346
msgid "Session restart (security) required:"
msgstr "Wymagane jest ponowne uruchomienie sesji (z powodu bezpieczeÅstwa):"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:349
msgid "Application restart required by:"
msgstr "Ponowne uruchomienie programu jest wymagane przez:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:538
msgid "Please restart the computer to complete the update."
msgstr "ProszÄ uruchomiÄ ponownie komputer, aby zakoÅczyÄ aktualizacjÄ."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:541
msgid "Please logout and login to complete the update."
msgstr "ProszÄ wylogowaÄ siÄ i zalogowaÄ, aby zakoÅczyÄ aktualizacjÄ."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "ProszÄ uruchomiÄ program ponownie, ponieważ jest używany."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:544
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -293,7 +294,7 @@ msgstr ""
"zainstalowano aktualizacje bezpieczeÅstwa."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:547
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -302,443 +303,444 @@ msgstr ""
"zainstalowano aktualizacje bezpieczeÅstwa."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "Pakiet %s jest już zainstalowany"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:817
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "Nie można zainstalowaÄ pakietu %s: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c: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
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "WewnÄtrzny bÅÄ
d: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../lib/packagekit-glib2/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "KontynuowaÄ wprowadzanie zmian?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:881 ../client/pk-console.c:953
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "Anulowano instalacjÄ pakietu!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "Te narzÄdzie nie może zainstalowaÄ pakietów: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "Te narzÄdzie nie może zainstalowaÄ plików: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "Te narzÄdzie nie może usunÄ
Ä %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "Te narzÄdzie nie może usunÄ
Ä pakietów: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "KontynuowaÄ usuwanie dodatkowych pakietów?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1109
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "Anulowano usuniÄcie pakietu!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "Te narzÄdzie nie może pobraÄ pakietu %s, ponieważ nie można go znaleźÄ"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "Te narzÄdzie nie może pobraÄ pakietów: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, c-format
msgid "This tool could not update %s: %s"
msgstr "Te narzÄdzie nie może zaktualizowaÄ %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1271
+#: ../client/pk-console.c:1270
msgid "The package update was canceled!"
msgstr "Anulowano aktualizacjÄ pakietu!"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1304 ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "Te narzÄdzie nie może uzyskaÄ wymagaÅ dla %s: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "Te narzÄdzie nie może uzyskaÄ zależnoÅci dla %s: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "Te narzÄdzie nie może uzyskaÄ szczegóÅów pakietu %s: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "Te narzÄdzie nie może znaleÅºÄ plików dla %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1401
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "Te narzÄdzie nie może uzyskaÄ listy plików dla %s: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1424
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "Plik już istnieje: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "Pobieranie listy pakietów"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, c-format
msgid "This tool could not get package list: %s"
msgstr "Te narzÄdzie nie może pobraÄ listy pakietów: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1446
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "Zapisanie na dysku nie powiodÅo siÄ"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "Plik nie istnieje: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "Pakiety do dodania"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "Pakiety do usuniÄcia"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "Nie trzeba instalowaÄ nowych pakietów"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "Do zainstalowania"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "Wyszukiwanie pakietu: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "nie znaleziono."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, c-format
msgid "No packages can be found to install"
msgstr "Nie można znaleÅºÄ pakietów do zainstalowania"
#. TRANSLATORS: installing new packages from package list
#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1627
+#: ../client/pk-console.c:1626
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
#, c-format
msgid "Installing packages"
msgstr "Instalowanie pakietów"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1663
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "Te narzÄdzie nie może znaleÅºÄ szczegóÅów aktualizacji dla %s: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1670
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "Te narzÄdzie nie może uzyskaÄ szczegóÅów aktualizacji dla %s: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "BÅÄ
d:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:366
msgid "Package description"
msgstr "Opis pakietu"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:384
msgid "Message:"
msgstr "Komunikat:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:403
msgid "Package files"
msgstr "Pliki pakietu"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:398
msgid "No files"
msgstr "Brak plików"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "Wymagany jest podpis repozytorium"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800 ../lib/packagekit-glib2/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "ZaakceptowaÄ ten podpis?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804 ../lib/packagekit-glib2/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "Podpis nie zostaÅ zaakceptowany."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "Licencja jest wymagana"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1846
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "ZaakceptowaÄ tÄ licencjÄ?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1850
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "Odrzucono licencjÄ."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:816
msgid "The daemon crashed mid-transaction!"
msgstr "Demon zawiesiÅ siÄ w poÅowie transakcji!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:850
msgid "PackageKit Console Interface"
msgstr "Interfejs konsoli PackageKit"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:852
msgid "Subcommands:"
msgstr "Podpolecenia:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
-#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
-#: ../client/pk-monitor-test.c:282
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:966
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:222
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found-test.c:614
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
msgid "Show extra debugging information"
msgstr "WyÅwietla dodatkowe informacje o debugowaniu"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:969
#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "WyÅwietla wersjÄ programu i wyÅÄ
cza"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:972
msgid "Set the filter, e.g. installed"
msgstr "Ustawia filtr, np. zainstalowane"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:975
msgid "Exit without waiting for actions to complete"
msgstr "WyÅÄ
cza bez oczekiwania na zakoÅczenie dziaÅaÅ"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "Te narzÄdzie nie może poÅÄ
czyÄ siÄ z systemowym D-Bus."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1052
msgid "The filter specified was invalid"
msgstr "Podany filtr jest nieprawidÅowy"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1071
msgid "A search type is required, e.g. name"
msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
-#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1078 ../client/pk-console-test.c:1090
+#: ../client/pk-console-test.c:1102 ../client/pk-console-test.c:1114
msgid "A search term is required"
msgstr "Wymagany jest wyszukiwany termin"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1124
msgid "Invalid search type"
msgstr "NieprawidÅowy typ wyszukiwania"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "Wymagana jest nazwa pakietu lub pliku do zainstalowania"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1151
msgid "A type, key_id and package_id are required"
msgstr "Wymagany jest typ, key_id i package_id"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1162
msgid "A package name to remove is required"
msgstr "Wymagana jest nazwa pakietu do usuniÄcia"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1171
msgid "A destination directory and the package names to download are required"
msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1178
msgid "Directory not found"
msgstr "Nie znaleziono katalogu"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1187
msgid "A licence identifier (eula-id) is required"
msgstr "Wymagany jest identyfikator licencji (eula-id)"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1198
msgid "A transaction identifier (tid) is required"
msgstr "Wymagany jest identyfikator transakcji (tid)"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1219
msgid "A package name to resolve is required"
msgstr "Wymagana jest nazwa pakietu do rozwiÄ
zania"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1230 ../client/pk-console-test.c:1241
msgid "A repository name is required"
msgstr "Wymagana jest nazwa repozytorium"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1252
msgid "A repo name, parameter and value are required"
msgstr "Wymagana jest nazwa, parametr i wartoÅÄ repozytorium"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1269
msgid "An action, e.g. 'update-system' is required"
msgstr "Wymagane jest dziaÅanie, np. \"update-system\""
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1276
msgid "A correct role is required"
msgstr "Wymagana jest bieżÄ
ca rola"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:931
msgid "Failed to get the time since this action was last completed"
msgstr ""
"Uzyskanie czasu od ostatniego zakoÅczenia tego dziaÅania nie powiodÅo siÄ"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
-#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
-#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1286
+#: ../client/pk-console-test.c:1301 ../client/pk-console-test.c:1310
+#: ../client/pk-console-test.c:1330 ../client/pk-console-test.c:1339
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:285
msgid "A package name is required"
msgstr "Wymagana jest nazwa pakietu"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1319
msgid "A package provide string is required"
msgstr "Wymagany jest ÅaÅcuch dostarczania pakietu"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2409
+#: ../client/pk-console.c:2408
msgid "A list file name to create is required"
msgstr "Wymagana jest lista nazw plików do utworzenia"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2419 ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "Wymagana jest lista plików do otwarcia"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1399
#, c-format
msgid "Option '%s' is not supported"
msgstr "Opcja \"%s\" nie jest obsÅugiwana"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "Niepoprawne uprawnienia dla tego dziaÅania"
@@ -746,34 +748,24 @@ msgstr "Niepoprawne uprawnienia dla tego dziaÅania"
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1411
msgid "Command failed"
msgstr "Polecenie nie powiodÅo siÄ"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
-msgid "More than one package matches:"
-msgstr "Pasuje wiÄcej niż jeden pakiet:"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
-msgid "Please choose the correct package: "
-msgstr "ProszÄ wybraÄ poprawny pakiet: "
-
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734
+#: ../client/pk-console-test.c:568
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "Te narzÄdzie nie może znaleÅºÄ dostÄpnego pakietu: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762
+#: ../client/pk-console-test.c:596
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "Te narzÄdzie nie może znaleÅºÄ zainstalowanego pakietu: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
+#: ../client/pk-console-test.c:624 ../client/pk-console-test.c:652
#, c-format
msgid "This tool could not find the package: %s"
msgstr "Te narzÄdzie nie może znaleÅºÄ pakietu: %s"
@@ -782,45 +774,50 @@ msgstr "Te narzÄdzie nie może znaleÅºÄ pakietu: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
-#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
-#: ../client/pk-console-test.c:950
+#: ../client/pk-console-test.c:680 ../client/pk-console-test.c:708
+#: ../client/pk-console-test.c:736 ../client/pk-console-test.c:764
+#: ../client/pk-console-test.c:792
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "Te narzÄdzie nie może znaleÅºÄ wszystkich pakietów: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1000
+msgid "Failed to contact PackageKit"
+msgstr "Skontaktowanie siÄ z PackageKit nie powiodÅo siÄ"
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1261
+#: ../client/pk-console-test.c:1130
msgid "A package name to install is required"
msgstr "Wymagana jest nazwa pakietu do zainstalowania"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1270
+#: ../client/pk-console-test.c:1139
msgid "A filename to install is required"
msgstr "Wymagana jest nazwa pliku do zainstalowania"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "Pobieranie"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "Pobieranie pakietów"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "Pobieranie zależnoÅci"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:190
+#: ../client/pk-generate-pack.c:188 ../client/pk-generate-pack-test.c:225
msgid "Set the file name of dependencies to be excluded"
msgstr "ProszÄ ustawiÄ nazwy plików zależnoÅci do wykluczenia"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:193
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:228
msgid ""
"The output file or directory (the current directory is used if ommitted)"
msgstr ""
@@ -828,38 +825,41 @@ msgstr ""
"pominiÄte)"
#. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:196
+#: ../client/pk-generate-pack.c:194 ../client/pk-generate-pack-test.c:231
msgid "The package to be put into the service pack"
msgstr "Pakiet do umieszczenia w pakiecie serwisowym"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:199
+#: ../client/pk-generate-pack.c:197 ../client/pk-generate-pack-test.c:234
msgid "Put all updates available in the service pack"
msgstr "Wszystkie dostÄpne aktualizacje w pakiecie serwisowym"
#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:227
+#: ../client/pk-generate-pack.c:225 ../client/pk-generate-pack-test.c:269
msgid "Neither --package or --updates option selected."
msgstr "Nie wybrano żadnej z opcji --package lub --updates."
#. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:235
+#: ../client/pk-generate-pack.c:233 ../client/pk-generate-pack-test.c:277
msgid "Both options selected."
msgstr "Wybrano obie opcje."
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:251
+#: ../client/pk-generate-pack.c:249 ../client/pk-generate-pack-test.c:293
msgid "A output directory or file name is required"
msgstr "Wymagany jest katalog lub nazwa pliku wyjÅcia"
#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
#. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
+#. 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-test.c:321 ../client/pk-generate-pack-test.c:327
msgid "The package manager cannot perform this type of operation."
msgstr "Menedżer pakietów nie może wykonaÄ tego typu dziaÅania."
#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:282
+#: ../client/pk-generate-pack.c:280 ../client/pk-generate-pack-test.c:334
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
@@ -868,54 +868,54 @@ msgstr ""
"obsÅugi libarchive."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:293
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:345
msgid "If specifying a file, the service pack name must end with"
msgstr "JeÅli podano plik, nazwa pakietu serwisowego musi koÅczyÄ siÄ"
#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:309
+#: ../client/pk-generate-pack.c:307 ../client/pk-generate-pack-test.c:361
msgid "A pack with the same name already exists, do you want to overwrite it?"
msgstr "Pakiet serwisowy o tej samej nazwie już istnieje, zastÄ
piÄ go?"
#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:312
+#: ../client/pk-generate-pack.c:310 ../client/pk-generate-pack-test.c:364
msgid "The pack was not overwritten."
msgstr "Pakiet nie zostaÅ zastÄ
piony."
#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:325
+#: ../client/pk-generate-pack.c:323 ../client/pk-generate-pack-test.c:377
msgid "Failed to create directory:"
msgstr "Utworzenie katalogu nie powiodÅo siÄ:"
#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:335
+#: ../client/pk-generate-pack.c:333 ../client/pk-generate-pack-test.c:389
msgid "Failed to open package list."
msgstr "Otwarcie listy pakietów nie powiodÅo siÄ."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:346
+#: ../client/pk-generate-pack.c:344 ../client/pk-generate-pack-test.c:398
msgid "Finding package name."
msgstr "Wyszukiwanie nazwy pakietu."
#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:350
+#: ../client/pk-generate-pack.c:348 ../client/pk-generate-pack-test.c:402
#, c-format
msgid "Failed to find package '%s': %s"
msgstr "Nie można znaleÅºÄ pakietu \"%s\": %s"
#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:367
+#: ../client/pk-generate-pack.c:365 ../client/pk-generate-pack-test.c:410
msgid "Creating service pack..."
msgstr "Tworzenie pakietu serwisowego..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:425
#, c-format
msgid "Service pack created '%s'"
msgstr "Utworzono pakiet serwisowy \"%s\""
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:379
+#: ../client/pk-generate-pack.c:377 ../client/pk-generate-pack-test.c:430
#, c-format
msgid "Failed to create '%s': %s"
msgstr "Utworzenie \"%s\" nie powiodÅo siÄ: %s"
@@ -937,104 +937,30 @@ msgstr "Uzyskanie listy transakcji nie powiodÅo siÄ"
msgid "Failed to get daemon state"
msgstr "Uzyskanie stanu demona nie powiodÅo siÄ"
-#. ask the user
-#: ../client/pk-task-text.c:64
-msgid "Do you want to allow installing of unsigned software?"
-msgstr "PozwoliÄ na instalowanie niepodpisanego oprogramowania?"
-
-#: ../client/pk-task-text.c:68
-msgid "The unsigned software will not be installed."
-msgstr "Niepodpisane oprogramowanie nie zostanie zainstalowane."
-
-#: ../client/pk-task-text.c:100
-msgid "Software source signature required"
-msgstr "Wymagany jest podpis źródÅa oprogramowania"
-
-#: ../client/pk-task-text.c:102
-msgid "Software source name"
-msgstr "Nazwa źródÅa oprogramowania"
-
-#: ../client/pk-task-text.c:103
-msgid "Key URL"
-msgstr "Adres URL klucza"
-
-#: ../client/pk-task-text.c:104
-msgid "Key user"
-msgstr "Użytkownika klucza"
-
-#: ../client/pk-task-text.c:105
-msgid "Key ID"
-msgstr "Identyfikator klucza"
-
-#: ../client/pk-task-text.c:106
-msgid "Key fingerprint"
-msgstr "Odcisk klucza"
-
-#: ../client/pk-task-text.c:107
-msgid "Key Timestamp"
-msgstr "Czas klucza"
-
-#: ../client/pk-task-text.c:151
-msgid "End user licence agreement required"
-msgstr "Wymagana jest umowa licencyjna użytkownika koÅcowego"
-
-#: ../client/pk-task-text.c:152
-msgid "EULA ID"
-msgstr "Identyfikator licencji"
-
-#: ../client/pk-task-text.c:155
-msgid "Agreement"
-msgstr "Umowa"
-
-#. ask the user
-#: ../client/pk-task-text.c:161
-msgid "Do you accept this agreement?"
-msgstr "ZaakceptowaÄ tÄ umowÄ?"
-
-#: ../client/pk-task-text.c:165
-msgid "The agreement was not accepted."
-msgstr "Umowa nie zostaÅa zaakceptowana."
-
-#: ../client/pk-task-text.c:194
-msgid "Media change required"
-msgstr "Wymagana jest zmiana noÅnika"
-
-#: ../client/pk-task-text.c:195
-msgid "Media type"
-msgstr "Typ noÅnika"
-
-#: ../client/pk-task-text.c:196
-msgid "Media ID"
-msgstr "Identyfikator noÅnika"
-
-#: ../client/pk-task-text.c:197
-msgid "Text"
-msgstr "Tekst"
-
-#. ask the user
-#: ../client/pk-task-text.c:201
-msgid "Please insert the correct media"
-msgstr "ProszÄ wÅożyÄ poprawny noÅnik"
-
-#: ../client/pk-task-text.c:205
-msgid "The correct media was not inserted."
-msgstr "Nie wÅożono poprawnego noÅnika."
-
-#: ../client/pk-task-text.c:303
-msgid "The transaction did not proceed."
-msgstr "Transakcja nie bÄdzie kontynuowana."
-
-#: ../client/pk-text.c:50
+#: ../client/pk-tools-common.c:51
+#: ../lib/packagekit-glib2/pk-console-shared.c:53
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "ProszÄ podaÄ numer od 1 do %i: "
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, c-format
msgid "The package could not be found"
msgstr "Nie można znaleÅºÄ pakietu"
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-tools-common.c:200
+#: ../lib/packagekit-glib2/pk-console-shared.c:153
+msgid "More than one package matches:"
+msgstr "Pasuje wiÄcej niż jeden pakiet:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:207
+#: ../lib/packagekit-glib2/pk-console-shared.c:162
+msgid "Please choose the correct package: "
+msgstr "ProszÄ wybraÄ poprawny pakiet: "
+
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -1091,90 +1017,110 @@ msgstr "Instalowanie..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
+#: ../contrib/command-not-found/pk-command-not-found-test.c:358
msgid "Downloading details about the software sources."
msgstr "Pobieranie szczegóÅów o źródÅach oprogramowania."
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
+#: ../contrib/command-not-found/pk-command-not-found-test.c:362
msgid "Downloading filelists (this may take some time to complete)."
msgstr "Pobieranie list plików (może to zajÄ
Ä trochÄ czasu)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
+#: ../contrib/command-not-found/pk-command-not-found-test.c:366
msgid "Waiting for package manager lock."
msgstr "Oczekiwanie na blokadÄ menedżera pakietów."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
+#: ../contrib/command-not-found/pk-command-not-found-test.c:370
msgid "Loading list of packages."
msgstr "Wczytywanie listy pakietów."
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
+#: ../contrib/command-not-found/pk-command-not-found-test.c:444
msgid "Failed to search for file"
msgstr "Znalezienie pliku nie powiodÅo siÄ"
#. TRANSLATORS: we failed to launch the executable, the error follows
#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found-test.c:570
msgid "Failed to launch:"
msgstr "Uruchomienie nie powiodÅo siÄ:"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/command-not-found/pk-command-not-found.c:632
+#: ../contrib/command-not-found/pk-command-not-found-test.c:630
msgid "PackageKit Command Not Found"
msgstr "Nie znaleziono polecenia PackageKit"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
+#: ../contrib/command-not-found/pk-command-not-found-test.c:658
msgid "Command not found."
msgstr "Nie znaleziono polecenia."
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
+#: ../contrib/command-not-found/pk-command-not-found-test.c:665
msgid "Similar command is:"
msgstr "Podobne polecenie:"
#. TRANSLATORS: Ask the user if we should run the similar command
#: ../contrib/command-not-found/pk-command-not-found.c:674
+#: ../contrib/command-not-found/pk-command-not-found-test.c:674
msgid "Run similar command:"
msgstr "Wykonaj podobne polecenie:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
#: ../contrib/command-not-found/pk-command-not-found.c:686
#: ../contrib/command-not-found/pk-command-not-found.c:695
+#: ../contrib/command-not-found/pk-command-not-found-test.c:686
+#: ../contrib/command-not-found/pk-command-not-found-test.c:695
msgid "Similar commands are:"
msgstr "Podobne polecenia:"
#. TRANSLATORS: ask the user to choose a file to run
#: ../contrib/command-not-found/pk-command-not-found.c:702
+#: ../contrib/command-not-found/pk-command-not-found-test.c:702
msgid "Please choose a command to run"
msgstr "ProszÄ wybraÄ polecenie do wykonania"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
+#: ../contrib/command-not-found/pk-command-not-found-test.c:721
msgid "The package providing this file is:"
msgstr "Pakiet dostarczajÄ
cy ten plik:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
+#: ../contrib/command-not-found/pk-command-not-found-test.c:726
#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr "ZainstalowaÄ pakiet \"%s\", aby dostarczyÄ polecenie \"%s\"?"
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
+#: ../contrib/command-not-found/pk-command-not-found-test.c:747
msgid "Packages providing this file are:"
msgstr "Pakiety dostarczajÄ
ce ten plik:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
+#: ../contrib/command-not-found/pk-command-not-found-test.c:756
msgid "Suitable packages are:"
msgstr "Odpowiednie pakiety:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found-test.c:764
msgid "Please choose a package to install"
msgstr "ProszÄ wybraÄ pakiet do zainstalowania"
@@ -1461,6 +1407,93 @@ msgstr "Lista pakietów PackageKit"
msgid "PackageKit Service Pack"
msgstr "Pakiet serwisowy PackageKit"
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "PozwoliÄ na instalowanie niepodpisanego oprogramowania?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "Niepodpisane oprogramowanie nie zostanie zainstalowane."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "Wymagany jest podpis źródÅa oprogramowania"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Nazwa źródÅa oprogramowania"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:103
+msgid "Key URL"
+msgstr "Adres URL klucza"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:104
+msgid "Key user"
+msgstr "Użytkownika klucza"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:105
+msgid "Key ID"
+msgstr "Identyfikator klucza"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "Odcisk klucza"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "Czas klucza"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "Wymagana jest umowa licencyjna użytkownika koÅcowego"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "Identyfikator licencji"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Umowa"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "ZaakceptowaÄ tÄ umowÄ?"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "Umowa nie zostaÅa zaakceptowana."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:194
+msgid "Media change required"
+msgstr "Wymagana jest zmiana noÅnika"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:195
+msgid "Media type"
+msgstr "Typ noÅnika"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:196
+msgid "Media ID"
+msgstr "Identyfikator noÅnika"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:197
+msgid "Text"
+msgstr "Tekst"
+
+#. ask the user
+#: ../lib/packagekit-glib2/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "ProszÄ wÅożyÄ poprawny noÅnik"
+
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "Nie wÅożono poprawnego noÅnika."
+
+#: ../lib/packagekit-glib2/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "Transakcja nie bÄdzie kontynuowana."
+
#. SECURITY:
#. - Normal users do not require admin authentication to accept new
#. licence agreements.
commit 543073d713ee9d84e10a6c2f043b5940a3d44cd0
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 16:04:19 2009 +0100
glib2: port the PkDesktop class from glib1
diff --git a/client/Makefile.am b/client/Makefile.am
index fb8b30c..44261d4 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -79,6 +79,7 @@ pkcon_test_SOURCES = \
pkcon_test_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
+ $(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
@@ -93,6 +94,7 @@ pkmon_test_SOURCES = \
pkmon_test_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
+ $(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
@@ -108,6 +110,7 @@ pkgenpack_test_LDADD = \
$(ARCHIVE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
+ $(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index f02ae9f..0d1a9d4 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -35,13 +35,16 @@ libpackagekit_glib2_include_HEADERS = \
pk-client.h \
pk-common.h \
pk-control.h \
+ pk-desktop.h \
+ pk-enum.h \
+ pk-item.h \
pk-package.h \
pk-package-id.h \
pk-package-ids.h \
pk-package-sack.h \
pk-progress.h \
- pk-service-pack.h \
pk-results.h \
+ pk-service-pack.h \
pk-task.h \
$(NULL)
@@ -59,6 +62,8 @@ libpackagekit_glib2_la_SOURCES = \
pk-common.h \
pk-control.c \
pk-control.h \
+ pk-desktop.c \
+ pk-desktop.h \
pk-enum.c \
pk-enum.h \
pk-marshal.c \
@@ -89,6 +94,7 @@ libpackagekit_glib2_la_LIBADD = \
$(GIO_LIBS) \
$(DBUS_LIBS) \
$(ARCHIVE_LIBS) \
+ $(SQLITE_LIBS) \
$(NULL)
libpackagekit_glib2_la_LDFLAGS = \
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index e3572fd..8ce5d71 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -27,6 +27,7 @@
#include <packagekit-glib2/pk-client.h>
#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-desktop.h>
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-item.h>
#include <packagekit-glib2/pk-package-id.h>
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
new file mode 100644
index 0000000..efc14a8
--- /dev/null
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -0,0 +1,406 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-desktop
+ * @short_description: Client singleton access to desktop metadata about a package
+ *
+ * Desktop metadata such as icon name and localised summary may be stored here
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <sqlite3.h>
+#include <packagekit-glib2/pk-desktop.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+static void pk_desktop_finalize (GObject *object);
+
+#define PK_DESKTOP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_DESKTOP, PkDesktopPrivate))
+
+/* Database format is:
+ * CREATE TABLE cache ( filename TEXT, package TEXT, show INTEGER, md5 TEXT );
+ */
+
+/**
+ * PkDesktopPrivate:
+ *
+ * Private #PkDesktop data
+ **/
+struct _PkDesktopPrivate
+{
+ sqlite3 *db;
+};
+
+G_DEFINE_TYPE (PkDesktop, pk_desktop, G_TYPE_OBJECT)
+static gpointer pk_desktop_object = NULL;
+
+/**
+ * pk_desktop_sqlite_filename_cb:
+ **/
+static gint
+pk_desktop_sqlite_filename_cb (void *data, gint argc, gchar **argv, gchar **col_name)
+{
+ GPtrArray *array = (GPtrArray *) data;
+ gint i;
+
+ /* add the filename data to the array */
+ for (i=0; i<argc; i++) {
+ if (g_strcmp0 (col_name[i], "filename") == 0 && argv[i] != NULL)
+ g_ptr_array_add (array, g_strdup (argv[i]));
+ }
+
+ return 0;
+}
+
+/**
+ * pk_desktop_sqlite_package_cb:
+ **/
+static gint
+pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_name)
+{
+ gchar **package = (gchar **) data;
+ gint i;
+
+ /* add the filename data to the array */
+ for (i=0; i<argc; i++) {
+ if (g_strcmp0 (col_name[i], "package") == 0 && argv[i] != NULL)
+ *package = g_strdup (argv[i]);
+ }
+
+ return 0;
+}
+
+/**
+ * pk_desktop_get_files_for_package:
+ * @desktop: a valid #PkDesktop instance
+ * @package: the package name, e.g. "gnome-power-manager"
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Return all desktop files owned by a package, regardless if they are shown
+ * in the main menu or not.
+ *
+ * Return value: array of results
+ **/
+GPtrArray *
+pk_desktop_get_files_for_package (PkDesktop *desktop, const gchar *package, GError **error)
+{
+ gchar *statement;
+ gchar *error_msg = NULL;
+ gint rc;
+ GPtrArray *array = NULL;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), NULL);
+ g_return_val_if_fail (package != NULL, NULL);
+
+ /* no database */
+ if (desktop->priv->db == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database is not open");
+ goto out;
+ }
+
+ /* get packages */
+ array = g_ptr_array_new ();
+ statement = g_strdup_printf ("SELECT filename FROM cache WHERE package = '%s'", package);
+ rc = sqlite3_exec (desktop->priv->db, statement, pk_desktop_sqlite_filename_cb, array, &error_msg);
+ g_free (statement);
+ if (rc != SQLITE_OK) {
+ egg_warning ("SQL error: %s\n", error_msg);
+ sqlite3_free (error_msg);
+ }
+out:
+ return array;
+}
+
+/**
+ * pk_desktop_get_shown_for_package:
+ * @desktop: a valid #PkDesktop instance
+ * @package: the package name, e.g. "gnome-power-manager"
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Return all desktop files owned by a package that would be shown in a menu,
+ * i.e are an application
+ *
+ * Return value: array of results
+ **/
+GPtrArray *
+pk_desktop_get_shown_for_package (PkDesktop *desktop, const gchar *package, GError **error)
+{
+ gchar *statement;
+ gchar *error_msg = NULL;
+ gint rc;
+ GPtrArray *array = NULL;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), NULL);
+ g_return_val_if_fail (package != NULL, NULL);
+
+ /* no database */
+ if (desktop->priv->db == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database is not open");
+ goto out;
+ }
+
+ /* get packages */
+ array = g_ptr_array_new ();
+ statement = g_strdup_printf ("SELECT filename FROM cache WHERE package = '%s' AND show = 1", package);
+ rc = sqlite3_exec (desktop->priv->db, statement, pk_desktop_sqlite_filename_cb, array, &error_msg);
+ g_free (statement);
+ if (rc != SQLITE_OK) {
+ egg_warning ("SQL error: %s\n", error_msg);
+ sqlite3_free (error_msg);
+ }
+out:
+ return array;
+}
+
+/**
+ * pk_desktop_get_package_for_file:
+ * @desktop: a valid #PkDesktop instance
+ * @filename: a fully qualified filename
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Returns the package name that owns the desktop file. Fast.
+ *
+ * Return value: package name, or %NULL
+ **/
+gchar *
+pk_desktop_get_package_for_file (PkDesktop *desktop, const gchar *filename, GError **error)
+{
+ gchar *statement;
+ gchar *error_msg = NULL;
+ gint rc;
+ gchar *package = NULL;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), NULL);
+ g_return_val_if_fail (filename != NULL, NULL);
+
+ /* no database */
+ if (desktop->priv->db == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database is not open");
+ goto out;
+ }
+
+ /* get packages */
+ statement = g_strdup_printf ("SELECT package FROM cache WHERE filename = '%s' LIMIT 1", filename);
+ rc = sqlite3_exec (desktop->priv->db, statement, pk_desktop_sqlite_package_cb, &package, &error_msg);
+ g_free (statement);
+ if (rc != SQLITE_OK) {
+ egg_warning ("SQL error: %s\n", error_msg);
+ sqlite3_free (error_msg);
+ }
+
+ /* no result */
+ if (package == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "could not find package for %s", filename);
+ goto out;
+ }
+out:
+ return package;
+}
+
+/**
+ * pk_desktop_open_database:
+ * @desktop: a valid #PkDesktop instance
+ *
+ * Return value: %TRUE if opened correctly
+ **/
+gboolean
+pk_desktop_open_database (PkDesktop *desktop, GError **error)
+{
+ gboolean ret;
+ gint rc;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), FALSE);
+
+ /* already opened */
+ if (desktop->priv->db != NULL)
+ return TRUE;
+
+ /* if the database file was not installed (or was nuked) recreate it */
+ ret = g_file_test (PK_DESKTOP_DEFAULT_DATABASE, G_FILE_TEST_EXISTS);
+ if (!ret) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database %s is not present", PK_DESKTOP_DEFAULT_DATABASE);
+ return FALSE;
+ }
+
+ egg_debug ("trying to open database '%s'", PK_DESKTOP_DEFAULT_DATABASE);
+ rc = sqlite3_open (PK_DESKTOP_DEFAULT_DATABASE, &desktop->priv->db);
+ if (rc != 0) {
+ egg_warning ("Can't open database: %s\n", sqlite3_errmsg (desktop->priv->db));
+ if (error != NULL)
+ *error = g_error_new (1, 0, "can't open database: %s", sqlite3_errmsg (desktop->priv->db));
+ sqlite3_close (desktop->priv->db);
+ desktop->priv->db = NULL;
+ return FALSE;
+ }
+
+ /* we don't need to keep syncing */
+ sqlite3_exec (desktop->priv->db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
+
+ return TRUE;
+}
+
+/**
+ * pk_desktop_class_init:
+ **/
+static void
+pk_desktop_class_init (PkDesktopClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = pk_desktop_finalize;
+ g_type_class_add_private (klass, sizeof (PkDesktopPrivate));
+}
+
+/**
+ * pk_desktop_init:
+ **/
+static void
+pk_desktop_init (PkDesktop *desktop)
+{
+ desktop->priv = PK_DESKTOP_GET_PRIVATE (desktop);
+}
+
+/**
+ * pk_desktop_finalize:
+ **/
+static void
+pk_desktop_finalize (GObject *object)
+{
+ PkDesktop *desktop;
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (PK_IS_DESKTOP (object));
+ desktop = PK_DESKTOP (object);
+ g_return_if_fail (desktop->priv != NULL);
+
+ sqlite3_close (desktop->priv->db);
+
+ G_OBJECT_CLASS (pk_desktop_parent_class)->finalize (object);
+}
+
+/**
+ * pk_desktop_new:
+ **/
+PkDesktop *
+pk_desktop_new (void)
+{
+ if (pk_desktop_object != NULL) {
+ g_object_ref (pk_desktop_object);
+ } else {
+ pk_desktop_object = g_object_new (PK_TYPE_DESKTOP, NULL);
+ g_object_add_weak_pointer (pk_desktop_object, &pk_desktop_object);
+ }
+ return PK_DESKTOP (pk_desktop_object);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_desktop_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ PkDesktop *desktop;
+ gboolean ret;
+ gchar *package;
+ GPtrArray *array;
+ GError *error = NULL;
+
+ if (!egg_test_start (test, "PkDesktop"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get desktop");
+ desktop = pk_desktop_new ();
+ egg_test_assert (test, desktop != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get package when not valid");
+ package = pk_desktop_get_package_for_file (desktop, "/usr/share/applications/gpk-update-viewer.desktop", NULL);
+ egg_test_assert (test, package == NULL);
+
+ /* file does not exist */
+ ret = g_file_test (PK_DESKTOP_DEFAULT_DATABASE, G_FILE_TEST_EXISTS);
+ if (!ret) {
+ egg_warning ("skipping checks as database does not exist");
+ goto out;
+ }
+
+ /************************************************************/
+ egg_test_title (test, "open database");
+ ret = pk_desktop_open_database (desktop, &error);
+ if (ret)
+ egg_test_success (test, "%ims", egg_test_elapsed (test));
+ else
+ egg_test_failed (test, "failed to open: %s", error->message);
+
+ /************************************************************/
+ egg_test_title (test, "get package");
+ package = pk_desktop_get_package_for_file (desktop, "/usr/share/applications/gpk-update-viewer.desktop", NULL);
+
+ /* dummy, not yum */
+ if (g_strcmp0 (package, "vips-doc") == 0) {
+ egg_test_success (test, "created db with dummy, skipping remaining tests");
+ goto out;
+ }
+
+ if (g_strcmp0 (package, "gnome-packagekit") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "package was: %s", package);
+ g_free (package);
+
+ /************************************************************/
+ egg_test_title (test, "get files");
+ array = pk_desktop_get_files_for_package (desktop, "gnome-packagekit", NULL);
+ if (array->len >= 5)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "length=%i", array->len);
+ g_ptr_array_foreach (array, (GFunc) g_free, NULL);
+ g_ptr_array_free (array, TRUE);
+
+ /************************************************************/
+ egg_test_title (test, "get shown files");
+ array = pk_desktop_get_shown_for_package (desktop, "f-spot", NULL);
+ if (array->len == 1)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "length=%i", array->len);
+ g_ptr_array_foreach (array, (GFunc) g_free, NULL);
+ g_ptr_array_free (array, TRUE);
+out:
+ g_object_unref (desktop);
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-desktop.h b/lib/packagekit-glib2/pk-desktop.h
new file mode 100644
index 0000000..2892b31
--- /dev/null
+++ b/lib/packagekit-glib2/pk-desktop.h
@@ -0,0 +1,92 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_DESKTOP_H
+#define __PK_DESKTOP_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_DESKTOP (pk_desktop_get_type ())
+#define PK_DESKTOP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_DESKTOP, PkDesktop))
+#define PK_DESKTOP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_DESKTOP, PkDesktopClass))
+#define PK_IS_DESKTOP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_DESKTOP))
+#define PK_IS_DESKTOP_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_DESKTOP))
+#define PK_DESKTOP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_DESKTOP, PkDesktopClass))
+
+/**
+ * PK_DESKTOP_DEFAULT_DATABASE:
+ *
+ * The default location for the database
+ */
+#define PK_DESKTOP_DEFAULT_DATABASE LOCALSTATEDIR "/lib/PackageKit/desktop-files.db"
+
+/**
+ * PK_DESKTOP_DEFAULT_APPLICATION_DIR:
+ *
+ * The default location for the desktop files
+ */
+#ifndef __FreeBSD__
+#define PK_DESKTOP_DEFAULT_APPLICATION_DIR "/usr/share/applications"
+#else
+#define PK_DESKTOP_DEFAULT_APPLICATION_DIR "/usr/local/share/applications"
+#endif
+
+typedef struct _PkDesktopPrivate PkDesktopPrivate;
+typedef struct _PkDesktop PkDesktop;
+typedef struct _PkDesktopClass PkDesktopClass;
+
+struct _PkDesktop
+{
+ GObject parent;
+ PkDesktopPrivate *priv;
+};
+
+struct _PkDesktopClass
+{
+ GObjectClass parent_class;
+};
+
+GType pk_desktop_get_type (void);
+PkDesktop *pk_desktop_new (void);
+void pk_desktop_test (gpointer user_data);
+
+gboolean pk_desktop_open_database (PkDesktop *desktop,
+ GError **error);
+GPtrArray *pk_desktop_get_files_for_package (PkDesktop *desktop,
+ const gchar *package,
+ GError **error);
+GPtrArray *pk_desktop_get_shown_for_package (PkDesktop *desktop,
+ const gchar *package,
+ GError **error);
+gchar *pk_desktop_get_package_for_file (PkDesktop *desktop,
+ const gchar *filename,
+ GError **error);
+
+G_END_DECLS
+
+#endif /* __PK_DESKTOP_H */
+
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index f75f7b0..6d452dc 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -29,6 +29,7 @@
#include "pk-client.h"
#include "pk-common.h"
#include "pk-control.h"
+#include "pk-desktop.h"
#include "pk-enum.h"
#include "pk-package.h"
#include "pk-package-id.h"
@@ -53,6 +54,7 @@ main (int argc, char **argv)
egg_string_test (test);
pk_common_test (test);
pk_enum_test (test);
+ pk_desktop_test (test);
pk_bitfield_test (test);
pk_package_id_test (test);
pk_package_ids_test (test);
commit 687ca91d491f67d955faa49c973f3615bb83155d
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 16:06:58 2009 +0100
Convert all the daemon to use the glib2 code, not the glib1 code
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 075770b..cc9b3d3 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -891,7 +891,8 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
}
/* is it the same? */
- ret = (obj->info_enum == backend->priv->last_package->info_enum &&
+ ret = (backend->priv->last_package != NULL &&
+ obj->info_enum == backend->priv->last_package->info_enum &&
g_strcmp0 (obj->package_id, backend->priv->last_package->package_id) == 0);
if (ret) {
egg_debug ("skipping duplicate %s", package_id);
@@ -903,7 +904,8 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
pk_backend_package_emulate_finished_for_package (backend, obj);
/* update the 'last' package */
- pk_item_package_unref (backend->priv->last_package);
+ if (backend->priv->last_package != NULL)
+ pk_item_package_unref (backend->priv->last_package);
backend->priv->last_package = pk_item_package_ref (obj);
/* have we already set an error? */
@@ -995,7 +997,7 @@ pk_backend_update_detail (PkBackend *backend, const gchar *package_id,
ret = TRUE;
out:
- pk_update_detail_obj_free (detail);
+ pk_item_update_detail_unref (detail);
g_free (update_text_safe);
if (issued != NULL)
g_date_free (issued);
@@ -1186,7 +1188,7 @@ pk_backend_details (PkBackend *backend, const gchar *package_id,
ret = TRUE;
out:
- pk_details_obj_free (details);
+ pk_item_details_unref (details);
g_free (description_safe);
return ret;
}
@@ -2079,7 +2081,8 @@ pk_backend_reset (PkBackend *backend)
backend->priv->signal_error_timeout = 0;
}
- pk_item_package_unref (backend->priv->last_package);
+ if (backend->priv->last_package != NULL)
+ pk_item_package_unref (backend->priv->last_package);
backend->priv->set_error = FALSE;
backend->priv->set_signature = FALSE;
backend->priv->set_eula = FALSE;
@@ -2219,9 +2222,9 @@ pk_backend_test_func_immediate_false (PkBackend *backend)
* pk_backend_test_package_cb:
**/
static void
-pk_backend_test_package_cb (PkBackend *backend, const PkItemPackage *obj, EggTest *test)
+pk_backend_test_package_cb (PkBackend *backend, PkItemPackage *obj, EggTest *test)
{
- egg_debug ("package:%s", obj->id->name);
+ egg_debug ("package:%s", obj->package_id);
number_packages++;
}
diff --git a/src/pk-cache.c b/src/pk-cache.c
index 1594ab8..5c24fe5 100644
--- a/src/pk-cache.c
+++ b/src/pk-cache.c
@@ -81,8 +81,7 @@ pk_cache_set_updates (PkCache *cache, GPtrArray *list)
pk_cache_invalidate (cache);
egg_debug ("reffing updates cache");
- cache->priv->updates_cache = g_object_ref (list);
- g_object_add_weak_pointer (G_OBJECT (cache->priv->updates_cache), (gpointer) &cache->priv->updates_cache);
+ cache->priv->updates_cache = g_ptr_array_ref (list);
return TRUE;
}
@@ -96,7 +95,7 @@ pk_cache_invalidate (PkCache *cache)
egg_debug ("unreffing updates cache");
if (cache->priv->updates_cache != NULL) {
- g_object_unref (cache->priv->updates_cache);
+ g_ptr_array_unref (cache->priv->updates_cache);
cache->priv->updates_cache = NULL;
}
return TRUE;
@@ -113,7 +112,7 @@ pk_cache_finalize (GObject *object)
cache = PK_CACHE (object);
if (cache->priv->updates_cache != NULL)
- g_object_unref (cache->priv->updates_cache);
+ g_ptr_array_unref (cache->priv->updates_cache);
G_OBJECT_CLASS (pk_cache_parent_class)->finalize (object);
}
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index 6739c40..3675d15 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -47,7 +47,7 @@ struct PkTransactionExtraPrivate
sqlite3 *db;
PkBackend *backend;
GMainLoop *loop;
- PkObjList *running_exec_list;
+ GPtrArray *running_exec_list;
GPtrArray *list;
PkLsof *lsof;
guint finished_id;
@@ -81,9 +81,9 @@ pk_transaction_extra_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTr
* pk_transaction_extra_package_cb:
**/
static void
-pk_transaction_extra_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTransactionExtra *extra)
+pk_transaction_extra_package_cb (PkBackend *backend, PkItemPackage *item, PkTransactionExtra *extra)
{
- pk_obj_list_add (PK_OBJ_LIST(extra->priv->list), obj);
+ g_ptr_array_add (extra->priv->list, pk_item_package_ref (item));
}
/**
@@ -126,7 +126,8 @@ pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *extra,
PkStore *store;
/* use PK to find the correct package */
- pk_obj_list_clear (PK_OBJ_LIST(extra->priv->list));
+ if (extra->priv->list->len > 0)
+ g_ptr_array_remove_range (extra->priv->list, 0, extra->priv->list->len);
pk_backend_reset (extra->priv->backend);
store = pk_backend_get_store (extra->priv->backend);
pk_store_set_uint (store, "filters", pk_bitfield_value (PK_FILTER_ENUM_INSTALLED));
@@ -138,7 +139,7 @@ pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *extra,
/* check that we only matched one package */
if (extra->priv->list->len != 1) {
- egg_warning ("not correct size, %i", size);
+ egg_warning ("not correct size, %i", extra->priv->list->len);
goto out;
}
@@ -153,22 +154,6 @@ out:
}
/**
- * pk_transaction_extra_string_list_new:
- **/
-static PkObjList *
-pk_transaction_extra_string_list_new ()
-{
- PkObjList *list;
- list = pk_obj_list_new ();
- pk_obj_list_set_compare (list, (PkObjListCompareFunc) g_strcmp0);
- pk_obj_list_set_copy (list, (PkObjListCopyFunc) g_strdup);
- pk_obj_list_set_free (list, (PkObjListFreeFunc) g_free);
- pk_obj_list_set_to_string (list, (PkObjListToStringFunc) g_strdup);
- pk_obj_list_set_from_string (list, (PkObjListFromStringFunc) g_strdup);
- return list;
-}
-
-/**
* pk_transaction_extra_get_filename_md5:
**/
static gchar *
@@ -280,6 +265,7 @@ pk_transaction_extra_sqlite_add_filename (PkTransactionExtra *extra, const gchar
gchar *package = NULL;
gint rc = -1;
const PkItemPackage *obj;
+ gchar **parts = NULL;
/* if we've got it, use old data */
if (md5_opt != NULL)
@@ -295,8 +281,10 @@ pk_transaction_extra_sqlite_add_filename (PkTransactionExtra *extra, const gchar
}
/* add */
- rc = pk_transaction_extra_sqlite_add_filename_details (extra, filename, obj->id->name, md5);
+ parts = pk_package_id_split (obj->package_id);
+ rc = pk_transaction_extra_sqlite_add_filename_details (extra, filename, parts[0], md5);
out:
+ g_strfreev (parts);
g_free (md5);
g_free (package);
return rc;
@@ -438,12 +426,38 @@ out:
}
/**
+ * pk_transaction_extra_package_list_to_string:
+ **/
+static gchar *
+pk_transaction_extra_package_list_to_string (GPtrArray *array)
+{
+ guint i;
+ const PkItemPackage *item;
+ GString *string;
+
+ string = g_string_new ("");
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ g_string_append_printf (string, "%s\t%s\t%s\n",
+ pk_info_enum_to_text (item->info_enum),
+ item->package_id, item->summary);
+ }
+
+ /* remove trailing newline */
+ if (string->len != 0)
+ g_string_set_size (string, string->len-1);
+ return g_string_free (string, FALSE);
+}
+
+/**
* pk_transaction_extra_update_package_list:
**/
gboolean
pk_transaction_extra_update_package_list (PkTransactionExtra *extra)
{
gboolean ret;
+ gchar *data = NULL;
+ GError *error = NULL;
g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
@@ -455,7 +469,8 @@ pk_transaction_extra_update_package_list (PkTransactionExtra *extra)
egg_debug ("updating package lists");
/* clear old list */
- pk_obj_list_clear (PK_OBJ_LIST(extra->priv->list));
+ if (extra->priv->list->len > 0)
+ g_ptr_array_remove_range (extra->priv->list, 0, extra->priv->list->len);
/* update UI */
pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_GENERATE_PACKAGE_LIST);
@@ -473,14 +488,18 @@ pk_transaction_extra_update_package_list (PkTransactionExtra *extra)
pk_transaction_extra_set_progress_changed (extra, 90);
/* convert to a file */
- ret = pk_obj_list_to_file (PK_OBJ_LIST(extra->priv->list), PK_SYSTEM_PACKAGE_LIST_FILENAME);
- if (!ret)
- egg_warning ("failed to save to file");
+ data = pk_transaction_extra_package_list_to_string (extra->priv->list);
+ ret = g_file_set_contents (PK_SYSTEM_PACKAGE_LIST_FILENAME, data, -1, &error);
+ if (!ret) {
+ egg_warning ("failed to save to file: %s", error->message);
+ g_error_free (error);
+ }
/* update UI */
pk_transaction_extra_set_progress_changed (extra, 100);
pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_FINISHED);
+ g_free (data);
return ret;
}
@@ -513,10 +532,12 @@ static void
pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gchar *package_id,
const gchar *filelist, PkTransactionExtra *extra)
{
- guint i;
+ guint i, j;
guint len;
gboolean ret;
gchar **files;
+ const gchar *tmp;
+ GPtrArray *array;
files = g_strsplit (filelist, ";", 0);
@@ -529,7 +550,15 @@ pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gc
continue;
/* running? */
- ret = pk_obj_list_exists (PK_OBJ_LIST(extra->priv->running_exec_list), files[i]);
+ ret = FALSE;
+ array = extra->priv->running_exec_list;
+ for (j=0; j<array->len; j++) {
+ tmp = g_ptr_array_index (array, j);
+ if (g_strcmp0 (tmp, files[i]) == 0) {
+ ret = TRUE;
+ break;
+ }
+ }
if (!ret)
continue;
@@ -588,7 +617,8 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *extra)
uid = getuid ();
dir = g_dir_open ("/proc", 0, NULL);
name = g_dir_read_name (dir);
- pk_obj_list_clear (PK_OBJ_LIST(extra->priv->running_exec_list));
+ if (extra->priv->running_exec_list->len > 0)
+ g_ptr_array_remove_range (extra->priv->running_exec_list, 0, extra->priv->running_exec_list->len);
while (name != NULL) {
contents = NULL;
exec = NULL;
@@ -630,7 +660,7 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *extra)
if (offset != NULL)
*(offset) = '\0';
egg_debug ("uid=%i, pid=%i, exec=%s", uid, pid, exec);
- pk_obj_list_add (PK_OBJ_LIST(extra->priv->running_exec_list), exec);
+ g_ptr_array_add (extra->priv->running_exec_list, g_strdup (exec));
out:
g_free (exec);
g_free (uid_file);
@@ -853,7 +883,6 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *extra)
gchar *filename;
gchar *cmdline;
gchar *cmdline_full;
- gchar *package_id;
GPtrArray *files_session;
GPtrArray *files_system;
const PkItemPackage *obj;
@@ -916,10 +945,7 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *extra)
egg_warning ("failed to find package for %s", filename);
continue;
}
-
- package_id = pk_package_id_to_string (obj->id);
- pk_transaction_extra_set_require_restart (extra, PK_RESTART_ENUM_SECURITY_SESSION, package_id);
- g_free (package_id);
+ pk_transaction_extra_set_require_restart (extra, PK_RESTART_ENUM_SECURITY_SESSION, obj->package_id);
}
/* process all system restarts */
@@ -931,10 +957,7 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *extra)
egg_warning ("failed to find package for %s", filename);
continue;
}
-
- package_id = pk_package_id_to_string (obj->id);
- pk_transaction_extra_set_require_restart (extra, PK_RESTART_ENUM_SECURITY_SYSTEM, package_id);
- g_free (package_id);
+ pk_transaction_extra_set_require_restart (extra, PK_RESTART_ENUM_SECURITY_SYSTEM, obj->package_id);
}
out:
@@ -1065,8 +1088,8 @@ pk_transaction_extra_finalize (GObject *object)
g_object_unref (extra->priv->backend);
g_object_unref (extra->priv->lsof);
- g_object_unref (extra->priv->list);
- g_object_unref (extra->priv->running_exec_list);
+ g_ptr_array_unref (extra->priv->list);
+ g_ptr_array_unref (extra->priv->running_exec_list);
G_OBJECT_CLASS (pk_transaction_extra_parent_class)->finalize (object);
}
@@ -1113,9 +1136,9 @@ pk_transaction_extra_init (PkTransactionExtra *extra)
gint rc;
extra->priv = PK_POST_TRANS_GET_PRIVATE (extra);
- extra->priv->running_exec_list = pk_transaction_extra_string_list_new ();
+ extra->priv->running_exec_list = g_ptr_array_new_with_free_func ((GDestroyNotify) g_free);
extra->priv->loop = g_main_loop_new (NULL, FALSE);
- extra->priv->list = g_ptr_array_new_with_free_funcxxx ();
+ extra->priv->list = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
extra->priv->backend = pk_backend_new ();
extra->priv->lsof = pk_lsof_new ();
extra->priv->db = NULL;
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 55526ef..56bd2da 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -473,16 +473,13 @@ static void
pk_transaction_details_cb (PkBackend *backend, PkItemDetails *obj, PkTransaction *transaction)
{
const gchar *group_text;
- gchar *package_id;
g_return_if_fail (PK_IS_TRANSACTION (transaction));
g_return_if_fail (transaction->priv->tid != NULL);
group_text = pk_group_enum_to_text (obj->group_enum);
- package_id = pk_package_id_to_string (obj->id);
- g_signal_emit (transaction, signals [PK_TRANSACTION_DETAILS], 0, package_id,
+ g_signal_emit (transaction, signals [PK_TRANSACTION_DETAILS], 0, obj->package_id,
obj->license, group_text, obj->description, obj->url, obj->size);
- g_free (package_id);
}
/**
@@ -567,6 +564,30 @@ pk_transaction_distro_upgrade_cb (PkBackend *backend, PkDistroUpgradeEnum type,
}
/**
+ * pk_transaction_package_list_to_string:
+ **/
+static gchar *
+pk_transaction_package_list_to_string (GPtrArray *array)
+{
+ guint i;
+ const PkItemPackage *item;
+ GString *string;
+
+ string = g_string_new ("");
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ g_string_append_printf (string, "%s\t%s\t%s\n",
+ pk_info_enum_to_text (item->info_enum),
+ item->package_id, item->summary);
+ }
+
+ /* remove trailing newline */
+ if (string->len != 0)
+ g_string_set_size (string, string->len-1);
+ return g_string_free (string, FALSE);
+}
+
+/**
* pk_transaction_finished_cb:
**/
static void
@@ -576,11 +597,12 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
guint time_ms;
gchar *packages;
gchar **package_ids;
- guint i, length;
+ guint i;
GPtrArray *list;
GPtrArray *package_list;
const PkItemPackage *obj;
gchar *package_id;
+ gchar **split;
g_return_if_fail (PK_IS_TRANSACTION (transaction));
g_return_if_fail (transaction->priv->tid != NULL);
@@ -619,18 +641,20 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
package_list = transaction->priv->package_list;
for (i=0; i<package_list->len; i++) {
obj = g_ptr_array_index (package_list, i);
- if (obj->info == PK_INFO_ENUM_UPDATING) {
+ if (obj->info_enum == PK_INFO_ENUM_UPDATING) {
/* we convert the package_id data to be 'installed' as this means
* we can use the local package database for GetFiles rather than
* downloading new remote metadata */
- package_id = pk_package_id_build (obj->id->name, obj->id->version, obj->id->arch, "installed");
+ split = pk_package_id_split (obj->package_id);
+ package_id = pk_package_id_build (split[0], split[1], split[2], "installed");
+ g_strfreev (split);
g_ptr_array_add (list, package_id);
}
}
/* process file lists on these packages */
if (list->len > 0) {
- package_ids = pk_package_ids_from_array (list);
+ package_ids = pk_ptr_array_to_strv (list);
pk_transaction_extra_check_running_process (transaction->priv->transaction_extra, package_ids);
g_strfreev (package_ids);
}
@@ -652,17 +676,20 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
package_list = transaction->priv->package_list;
for (i=0; i<package_list->len; i++) {
obj = g_ptr_array_index (package_list, i);
- if (obj->info == PK_INFO_ENUM_INSTALLING || obj->info == PK_INFO_ENUM_UPDATING) {
+ if (obj->info_enum == PK_INFO_ENUM_INSTALLING ||
+ obj->info_enum == PK_INFO_ENUM_UPDATING) {
/* we convert the package_id data to be 'installed' */
- package_id = pk_package_id_build (obj->id->name, obj->id->version, obj->id->arch, "installed");
+ split = pk_package_id_split (obj->package_id);
+ package_id = pk_package_id_build (split[0], split[1], split[2], "installed");
+ g_strfreev (split);
g_ptr_array_add (list, package_id);
}
}
- egg_debug ("processing %i packags for desktop files", PK_OBJ_LIST(list)->len);
+ egg_debug ("processing %i packags for desktop files", list->len);
/* process file lists on these packages */
if (list->len > 0) {
- package_ids = pk_package_ids_from_array (list);
+ package_ids = pk_ptr_array_to_strv (list);
pk_transaction_extra_check_desktop_files (transaction->priv->transaction_extra, package_ids);
g_strfreev (package_ids);
}
@@ -736,7 +763,8 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
transaction->priv->role == PK_ROLE_ENUM_UPDATE_PACKAGES ||
transaction->priv->role == PK_ROLE_ENUM_INSTALL_PACKAGES ||
transaction->priv->role == PK_ROLE_ENUM_REMOVE_PACKAGES) {
- packages = pk_obj_list_to_string (PK_OBJ_LIST(transaction->priv->package_list));
+ GPtrArray *array;
+ packages = pk_transaction_package_list_to_string (transaction->priv->package_list);
/* save to database */
if (!egg_strzero (packages))
@@ -744,17 +772,15 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
g_free (packages);
/* report to syslog */
- length = PK_OBJ_LIST(transaction->priv->package_list)->len;
- for (i=0; i<length; i++) {
- obj = g_ptr_array_index (transaction->priv->package_list, i);
- if (obj->info == PK_INFO_ENUM_REMOVING ||
- obj->info == PK_INFO_ENUM_INSTALLING ||
- obj->info == PK_INFO_ENUM_UPDATING) {
- packages = pk_package_id_to_string (obj->id);
+ array = transaction->priv->package_list;
+ for (i=0; i<array->len; i++) {
+ obj = g_ptr_array_index (array, i);
+ if (obj->info_enum == PK_INFO_ENUM_REMOVING ||
+ obj->info_enum == PK_INFO_ENUM_INSTALLING ||
+ obj->info_enum == PK_INFO_ENUM_UPDATING) {
pk_syslog_add (transaction->priv->syslog, PK_SYSLOG_TYPE_INFO, "in %s for %s package %s was %s for uid %i",
transaction->priv->tid, pk_role_enum_to_text (transaction->priv->role),
- packages, pk_info_enum_to_text (obj->info), transaction->priv->uid);
- g_free (packages);
+ obj->package_id, pk_info_enum_to_text (obj->info_enum), transaction->priv->uid);
}
}
}
@@ -821,7 +847,7 @@ pk_transaction_message_cb (PkBackend *backend, PkMessageEnum message, const gcha
* pk_transaction_package_cb:
**/
static void
-pk_transaction_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTransaction *transaction)
+pk_transaction_package_cb (PkBackend *backend, PkItemPackage *obj, PkTransaction *transaction)
{
const gchar *info_text;
const gchar *role_text;
@@ -842,7 +868,7 @@ pk_transaction_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTrans
if (transaction->priv->role == PK_ROLE_ENUM_UPDATE_SYSTEM ||
transaction->priv->role == PK_ROLE_ENUM_INSTALL_PACKAGES ||
transaction->priv->role == PK_ROLE_ENUM_UPDATE_PACKAGES) {
- if (obj->info == PK_INFO_ENUM_INSTALLED) {
+ if (obj->info_enum == PK_INFO_ENUM_INSTALLED) {
pk_backend_message (transaction->priv->backend, PK_MESSAGE_ENUM_BACKEND_ERROR,
"%s emitted 'installed' rather than 'installing' "
"- you need to do the package *before* you do the action", role_text);
@@ -852,7 +878,7 @@ pk_transaction_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTrans
/* check we are respecting the filters */
if (pk_bitfield_contain (transaction->priv->cached_filters, PK_FILTER_ENUM_NOT_INSTALLED)) {
- if (obj->info == PK_INFO_ENUM_INSTALLED) {
+ if (obj->info_enum == PK_INFO_ENUM_INSTALLED) {
pk_backend_message (transaction->priv->backend, PK_MESSAGE_ENUM_BACKEND_ERROR,
"%s emitted package that was installed when "
"the ~installed filter is in place", role_text);
@@ -860,7 +886,7 @@ pk_transaction_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTrans
}
}
if (pk_bitfield_contain (transaction->priv->cached_filters, PK_FILTER_ENUM_INSTALLED)) {
- if (obj->info == PK_INFO_ENUM_AVAILABLE) {
+ if (obj->info_enum == PK_INFO_ENUM_AVAILABLE) {
pk_backend_message (transaction->priv->backend, PK_MESSAGE_ENUM_BACKEND_ERROR,
"%s emitted package that was ~installed when "
"the installed filter is in place", role_text);
@@ -869,15 +895,15 @@ pk_transaction_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTrans
}
/* add to package cache even if we already got a result */
- if (obj->info != PK_INFO_ENUM_FINISHED)
- pk_obj_list_add (PK_OBJ_LIST(transaction->priv->package_list), obj);
+ if (obj->info_enum != PK_INFO_ENUM_FINISHED)
+ g_ptr_array_add (transaction->priv->package_list, pk_item_package_ref (obj));
/* emit */
g_free (transaction->priv->last_package_id);
- transaction->priv->last_package_id = pk_package_id_to_string (obj->id);
- info_text = pk_info_enum_to_text (obj->info);
+ transaction->priv->last_package_id = g_strdup (obj->package_id);
+ info_text = pk_info_enum_to_text (obj->info_enum);
g_signal_emit (transaction, signals [PK_TRANSACTION_PACKAGE], 0, info_text,
- transaction->priv->last_package_id, obj->summary);
+ obj->package_id, obj->summary);
}
/**
@@ -1065,27 +1091,24 @@ pk_transaction_update_detail_cb (PkBackend *backend, const PkItemUpdateDetail *d
{
const gchar *restart_text;
const gchar *state_text;
- gchar *package_id;
gchar *issued;
gchar *updated;
g_return_if_fail (PK_IS_TRANSACTION (transaction));
g_return_if_fail (transaction->priv->tid != NULL);
- restart_text = pk_restart_enum_to_text (detail->restart);
- package_id = pk_package_id_to_string (detail->id);
- state_text = pk_update_state_enum_to_text (detail->state);
+ restart_text = pk_restart_enum_to_text (detail->restart_enum);
+ state_text = pk_update_state_enum_to_text (detail->state_enum);
issued = pk_iso8601_from_date (detail->issued);
updated = pk_iso8601_from_date (detail->updated);
g_signal_emit (transaction, signals [PK_TRANSACTION_UPDATE_DETAIL], 0,
- package_id, detail->updates, detail->obsoletes, detail->vendor_url,
+ detail->package_id, detail->updates, detail->obsoletes, detail->vendor_url,
detail->bugzilla_url, detail->cve_url, restart_text, detail->update_text,
detail->changelog, state_text, issued, updated);
g_free (issued);
g_free (updated);
- g_free (package_id);
}
/**
@@ -1101,12 +1124,9 @@ pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **packa
const PkItemPackage *obj;
guint i;
guint j;
- guint length;
+ guint length = 0;
gboolean ret = FALSE;
- gchar *package_id;
gchar **package_ids_security = NULL;
- GPtrArray *list = NULL;
- const gchar *package_id_tmp;
/* only do this for update actions */
if (transaction->priv->role != PK_ROLE_ENUM_UPDATE_SYSTEM &&
@@ -1131,31 +1151,37 @@ pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **packa
}
/* find security update packages */
- list = g_ptr_array_new ();
for (i=0; i<updates->len; i++) {
obj = g_ptr_array_index (updates, i);
- if (obj->info == PK_INFO_ENUM_SECURITY) {
- package_id = pk_package_id_to_string (obj->id);
- egg_debug ("security update: %s", package_id);
- g_ptr_array_add (list, package_id);
+ if (obj->info_enum == PK_INFO_ENUM_SECURITY) {
+ egg_debug ("security update: %s", obj->package_id);
+ length++;
}
}
/* nothing to scan for */
- if (list->len == 0) {
+ if (length == 0) {
egg_debug ("no security updates");
goto out;
}
+ /* create list of security packages */
+ package_ids_security = g_new (gchar *, length+1);
+ for (i=0; i<updates->len; i++) {
+ obj = g_ptr_array_index (updates, i);
+ if (obj->info_enum == PK_INFO_ENUM_SECURITY)
+ package_ids_security[i] = g_strdup (obj->package_id);
+ }
+
+
/* is a security update we are installing */
if (transaction->priv->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
ret = FALSE;
/* do any of the packages we are updating match */
- for (i=0; i < list->len; i++) {
- package_id_tmp = g_ptr_array_index (list, i);
+ for (i=0; package_ids_security[i] != NULL; i++) {
for (j=0; package_ids[j] != NULL; j++) {
- if (g_strcmp0 (package_id_tmp, package_ids[j]) == 0) {
+ if (g_strcmp0 (package_ids_security[i], package_ids[j]) == 0) {
ret = TRUE;
break;
}
@@ -1170,14 +1196,9 @@ pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **packa
}
/* find files in security updates */
- package_ids_security = pk_package_ids_from_array (list);
ret = pk_transaction_extra_check_library_restart_pre (transaction->priv->transaction_extra, package_ids_security);
out:
g_strfreev (package_ids_security);
- if (list != NULL) {
- g_ptr_array_foreach (list, (GFunc) g_free, NULL);
- g_ptr_array_free (list, TRUE);
- }
return ret;
}
@@ -3000,7 +3021,6 @@ pk_transaction_get_updates (PkTransaction *transaction, const gchar *filter, DBu
gboolean ret;
GError *error;
GPtrArray *updates_cache;
- gchar *package_id;
g_return_if_fail (PK_IS_TRANSACTION (transaction));
g_return_if_fail (transaction->priv->tid != NULL);
@@ -3048,11 +3068,9 @@ pk_transaction_get_updates (PkTransaction *transaction, const gchar *filter, DBu
/* emulate the backend */
for (i=0; i<updates_cache->len; i++) {
obj = g_ptr_array_index (updates_cache, i);
- info_text = pk_info_enum_to_text (obj->info);
- package_id = pk_package_id_to_string (obj->id);
+ info_text = pk_info_enum_to_text (obj->info_enum);
g_signal_emit (transaction, signals [PK_TRANSACTION_PACKAGE], 0,
- info_text, package_id, obj->summary);
- g_free (package_id);
+ info_text, obj->package_id, obj->summary);
}
/* set finished */
@@ -3215,8 +3233,7 @@ pk_transaction_install_files (PkTransaction *transaction, gboolean only_trusted,
/* valid */
if (g_str_has_suffix (full_paths[i], ".servicepack")) {
service_pack = pk_service_pack_new ();
- pk_service_pack_set_filename (service_pack, full_paths[i]);
- ret = pk_service_pack_check_valid (service_pack, &error_local);
+ ret = pk_service_pack_check_valid (service_pack, full_paths[i], &error_local);
g_object_unref (service_pack);
if (!ret) {
error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_PACK_INVALID, "%s", error_local->message);
@@ -4205,8 +4222,7 @@ pk_transaction_simulate_install_files (PkTransaction *transaction, gchar **full_
/* valid */
if (g_str_has_suffix (full_paths[i], ".servicepack")) {
service_pack = pk_service_pack_new ();
- pk_service_pack_set_filename (service_pack, full_paths[i]);
- ret = pk_service_pack_check_valid (service_pack, &error_local);
+ ret = pk_service_pack_check_valid (service_pack, full_paths[i], &error_local);
g_object_unref (service_pack);
if (!ret) {
error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_PACK_INVALID, "%s", error_local->message);
@@ -4960,7 +4976,7 @@ pk_transaction_init (PkTransaction *transaction)
transaction->priv->conf = pk_conf_new ();
transaction->priv->notify = pk_notify_new ();
transaction->priv->inhibit = pk_inhibit_new ();
- transaction->priv->package_list = g_ptr_array_new_with_free_funcxxx ();
+ transaction->priv->package_list = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
transaction->priv->transaction_list = pk_transaction_list_new ();
transaction->priv->syslog = pk_syslog_new ();
transaction->priv->dbus = pk_dbus_new ();
@@ -5053,13 +5069,13 @@ pk_transaction_finalize (GObject *object)
g_free (transaction->priv->sender);
g_free (transaction->priv->cmdline);
+ g_ptr_array_unref (transaction->priv->package_list);
g_object_unref (transaction->priv->conf);
g_object_unref (transaction->priv->dbus);
g_object_unref (transaction->priv->cache);
g_object_unref (transaction->priv->inhibit);
g_object_unref (transaction->priv->backend);
g_object_unref (transaction->priv->monitor);
- g_object_unref (transaction->priv->package_list);
g_object_unref (transaction->priv->transaction_list);
g_object_unref (transaction->priv->transaction_db);
g_object_unref (transaction->priv->notify);
commit 036f4ded7a5d31daeb79225fe7e802a06569a476
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 16:04:19 2009 +0100
glib2: port the PkDesktop class from glib1
diff --git a/client/Makefile.am b/client/Makefile.am
index fb8b30c..44261d4 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -79,6 +79,7 @@ pkcon_test_SOURCES = \
pkcon_test_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
+ $(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
@@ -93,6 +94,7 @@ pkmon_test_SOURCES = \
pkmon_test_LDADD = \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
+ $(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
@@ -108,6 +110,7 @@ pkgenpack_test_LDADD = \
$(ARCHIVE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
+ $(SQLITE_LIBS) \
$(PK_GLIB2_LIBS) \
$(NULL)
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index f02ae9f..0d1a9d4 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -35,13 +35,16 @@ libpackagekit_glib2_include_HEADERS = \
pk-client.h \
pk-common.h \
pk-control.h \
+ pk-desktop.h \
+ pk-enum.h \
+ pk-item.h \
pk-package.h \
pk-package-id.h \
pk-package-ids.h \
pk-package-sack.h \
pk-progress.h \
- pk-service-pack.h \
pk-results.h \
+ pk-service-pack.h \
pk-task.h \
$(NULL)
@@ -59,6 +62,8 @@ libpackagekit_glib2_la_SOURCES = \
pk-common.h \
pk-control.c \
pk-control.h \
+ pk-desktop.c \
+ pk-desktop.h \
pk-enum.c \
pk-enum.h \
pk-marshal.c \
@@ -89,6 +94,7 @@ libpackagekit_glib2_la_LIBADD = \
$(GIO_LIBS) \
$(DBUS_LIBS) \
$(ARCHIVE_LIBS) \
+ $(SQLITE_LIBS) \
$(NULL)
libpackagekit_glib2_la_LDFLAGS = \
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index e3572fd..8ce5d71 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -27,6 +27,7 @@
#include <packagekit-glib2/pk-client.h>
#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-control.h>
+#include <packagekit-glib2/pk-desktop.h>
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-item.h>
#include <packagekit-glib2/pk-package-id.h>
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
new file mode 100644
index 0000000..efc14a8
--- /dev/null
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -0,0 +1,406 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-desktop
+ * @short_description: Client singleton access to desktop metadata about a package
+ *
+ * Desktop metadata such as icon name and localised summary may be stored here
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <sqlite3.h>
+#include <packagekit-glib2/pk-desktop.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+static void pk_desktop_finalize (GObject *object);
+
+#define PK_DESKTOP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_DESKTOP, PkDesktopPrivate))
+
+/* Database format is:
+ * CREATE TABLE cache ( filename TEXT, package TEXT, show INTEGER, md5 TEXT );
+ */
+
+/**
+ * PkDesktopPrivate:
+ *
+ * Private #PkDesktop data
+ **/
+struct _PkDesktopPrivate
+{
+ sqlite3 *db;
+};
+
+G_DEFINE_TYPE (PkDesktop, pk_desktop, G_TYPE_OBJECT)
+static gpointer pk_desktop_object = NULL;
+
+/**
+ * pk_desktop_sqlite_filename_cb:
+ **/
+static gint
+pk_desktop_sqlite_filename_cb (void *data, gint argc, gchar **argv, gchar **col_name)
+{
+ GPtrArray *array = (GPtrArray *) data;
+ gint i;
+
+ /* add the filename data to the array */
+ for (i=0; i<argc; i++) {
+ if (g_strcmp0 (col_name[i], "filename") == 0 && argv[i] != NULL)
+ g_ptr_array_add (array, g_strdup (argv[i]));
+ }
+
+ return 0;
+}
+
+/**
+ * pk_desktop_sqlite_package_cb:
+ **/
+static gint
+pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_name)
+{
+ gchar **package = (gchar **) data;
+ gint i;
+
+ /* add the filename data to the array */
+ for (i=0; i<argc; i++) {
+ if (g_strcmp0 (col_name[i], "package") == 0 && argv[i] != NULL)
+ *package = g_strdup (argv[i]);
+ }
+
+ return 0;
+}
+
+/**
+ * pk_desktop_get_files_for_package:
+ * @desktop: a valid #PkDesktop instance
+ * @package: the package name, e.g. "gnome-power-manager"
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Return all desktop files owned by a package, regardless if they are shown
+ * in the main menu or not.
+ *
+ * Return value: array of results
+ **/
+GPtrArray *
+pk_desktop_get_files_for_package (PkDesktop *desktop, const gchar *package, GError **error)
+{
+ gchar *statement;
+ gchar *error_msg = NULL;
+ gint rc;
+ GPtrArray *array = NULL;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), NULL);
+ g_return_val_if_fail (package != NULL, NULL);
+
+ /* no database */
+ if (desktop->priv->db == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database is not open");
+ goto out;
+ }
+
+ /* get packages */
+ array = g_ptr_array_new ();
+ statement = g_strdup_printf ("SELECT filename FROM cache WHERE package = '%s'", package);
+ rc = sqlite3_exec (desktop->priv->db, statement, pk_desktop_sqlite_filename_cb, array, &error_msg);
+ g_free (statement);
+ if (rc != SQLITE_OK) {
+ egg_warning ("SQL error: %s\n", error_msg);
+ sqlite3_free (error_msg);
+ }
+out:
+ return array;
+}
+
+/**
+ * pk_desktop_get_shown_for_package:
+ * @desktop: a valid #PkDesktop instance
+ * @package: the package name, e.g. "gnome-power-manager"
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Return all desktop files owned by a package that would be shown in a menu,
+ * i.e are an application
+ *
+ * Return value: array of results
+ **/
+GPtrArray *
+pk_desktop_get_shown_for_package (PkDesktop *desktop, const gchar *package, GError **error)
+{
+ gchar *statement;
+ gchar *error_msg = NULL;
+ gint rc;
+ GPtrArray *array = NULL;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), NULL);
+ g_return_val_if_fail (package != NULL, NULL);
+
+ /* no database */
+ if (desktop->priv->db == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database is not open");
+ goto out;
+ }
+
+ /* get packages */
+ array = g_ptr_array_new ();
+ statement = g_strdup_printf ("SELECT filename FROM cache WHERE package = '%s' AND show = 1", package);
+ rc = sqlite3_exec (desktop->priv->db, statement, pk_desktop_sqlite_filename_cb, array, &error_msg);
+ g_free (statement);
+ if (rc != SQLITE_OK) {
+ egg_warning ("SQL error: %s\n", error_msg);
+ sqlite3_free (error_msg);
+ }
+out:
+ return array;
+}
+
+/**
+ * pk_desktop_get_package_for_file:
+ * @desktop: a valid #PkDesktop instance
+ * @filename: a fully qualified filename
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Returns the package name that owns the desktop file. Fast.
+ *
+ * Return value: package name, or %NULL
+ **/
+gchar *
+pk_desktop_get_package_for_file (PkDesktop *desktop, const gchar *filename, GError **error)
+{
+ gchar *statement;
+ gchar *error_msg = NULL;
+ gint rc;
+ gchar *package = NULL;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), NULL);
+ g_return_val_if_fail (filename != NULL, NULL);
+
+ /* no database */
+ if (desktop->priv->db == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database is not open");
+ goto out;
+ }
+
+ /* get packages */
+ statement = g_strdup_printf ("SELECT package FROM cache WHERE filename = '%s' LIMIT 1", filename);
+ rc = sqlite3_exec (desktop->priv->db, statement, pk_desktop_sqlite_package_cb, &package, &error_msg);
+ g_free (statement);
+ if (rc != SQLITE_OK) {
+ egg_warning ("SQL error: %s\n", error_msg);
+ sqlite3_free (error_msg);
+ }
+
+ /* no result */
+ if (package == NULL) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "could not find package for %s", filename);
+ goto out;
+ }
+out:
+ return package;
+}
+
+/**
+ * pk_desktop_open_database:
+ * @desktop: a valid #PkDesktop instance
+ *
+ * Return value: %TRUE if opened correctly
+ **/
+gboolean
+pk_desktop_open_database (PkDesktop *desktop, GError **error)
+{
+ gboolean ret;
+ gint rc;
+
+ g_return_val_if_fail (PK_IS_DESKTOP (desktop), FALSE);
+
+ /* already opened */
+ if (desktop->priv->db != NULL)
+ return TRUE;
+
+ /* if the database file was not installed (or was nuked) recreate it */
+ ret = g_file_test (PK_DESKTOP_DEFAULT_DATABASE, G_FILE_TEST_EXISTS);
+ if (!ret) {
+ if (error != NULL)
+ *error = g_error_new (1, 0, "database %s is not present", PK_DESKTOP_DEFAULT_DATABASE);
+ return FALSE;
+ }
+
+ egg_debug ("trying to open database '%s'", PK_DESKTOP_DEFAULT_DATABASE);
+ rc = sqlite3_open (PK_DESKTOP_DEFAULT_DATABASE, &desktop->priv->db);
+ if (rc != 0) {
+ egg_warning ("Can't open database: %s\n", sqlite3_errmsg (desktop->priv->db));
+ if (error != NULL)
+ *error = g_error_new (1, 0, "can't open database: %s", sqlite3_errmsg (desktop->priv->db));
+ sqlite3_close (desktop->priv->db);
+ desktop->priv->db = NULL;
+ return FALSE;
+ }
+
+ /* we don't need to keep syncing */
+ sqlite3_exec (desktop->priv->db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
+
+ return TRUE;
+}
+
+/**
+ * pk_desktop_class_init:
+ **/
+static void
+pk_desktop_class_init (PkDesktopClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = pk_desktop_finalize;
+ g_type_class_add_private (klass, sizeof (PkDesktopPrivate));
+}
+
+/**
+ * pk_desktop_init:
+ **/
+static void
+pk_desktop_init (PkDesktop *desktop)
+{
+ desktop->priv = PK_DESKTOP_GET_PRIVATE (desktop);
+}
+
+/**
+ * pk_desktop_finalize:
+ **/
+static void
+pk_desktop_finalize (GObject *object)
+{
+ PkDesktop *desktop;
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (PK_IS_DESKTOP (object));
+ desktop = PK_DESKTOP (object);
+ g_return_if_fail (desktop->priv != NULL);
+
+ sqlite3_close (desktop->priv->db);
+
+ G_OBJECT_CLASS (pk_desktop_parent_class)->finalize (object);
+}
+
+/**
+ * pk_desktop_new:
+ **/
+PkDesktop *
+pk_desktop_new (void)
+{
+ if (pk_desktop_object != NULL) {
+ g_object_ref (pk_desktop_object);
+ } else {
+ pk_desktop_object = g_object_new (PK_TYPE_DESKTOP, NULL);
+ g_object_add_weak_pointer (pk_desktop_object, &pk_desktop_object);
+ }
+ return PK_DESKTOP (pk_desktop_object);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_desktop_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ PkDesktop *desktop;
+ gboolean ret;
+ gchar *package;
+ GPtrArray *array;
+ GError *error = NULL;
+
+ if (!egg_test_start (test, "PkDesktop"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get desktop");
+ desktop = pk_desktop_new ();
+ egg_test_assert (test, desktop != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get package when not valid");
+ package = pk_desktop_get_package_for_file (desktop, "/usr/share/applications/gpk-update-viewer.desktop", NULL);
+ egg_test_assert (test, package == NULL);
+
+ /* file does not exist */
+ ret = g_file_test (PK_DESKTOP_DEFAULT_DATABASE, G_FILE_TEST_EXISTS);
+ if (!ret) {
+ egg_warning ("skipping checks as database does not exist");
+ goto out;
+ }
+
+ /************************************************************/
+ egg_test_title (test, "open database");
+ ret = pk_desktop_open_database (desktop, &error);
+ if (ret)
+ egg_test_success (test, "%ims", egg_test_elapsed (test));
+ else
+ egg_test_failed (test, "failed to open: %s", error->message);
+
+ /************************************************************/
+ egg_test_title (test, "get package");
+ package = pk_desktop_get_package_for_file (desktop, "/usr/share/applications/gpk-update-viewer.desktop", NULL);
+
+ /* dummy, not yum */
+ if (g_strcmp0 (package, "vips-doc") == 0) {
+ egg_test_success (test, "created db with dummy, skipping remaining tests");
+ goto out;
+ }
+
+ if (g_strcmp0 (package, "gnome-packagekit") == 0)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "package was: %s", package);
+ g_free (package);
+
+ /************************************************************/
+ egg_test_title (test, "get files");
+ array = pk_desktop_get_files_for_package (desktop, "gnome-packagekit", NULL);
+ if (array->len >= 5)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "length=%i", array->len);
+ g_ptr_array_foreach (array, (GFunc) g_free, NULL);
+ g_ptr_array_free (array, TRUE);
+
+ /************************************************************/
+ egg_test_title (test, "get shown files");
+ array = pk_desktop_get_shown_for_package (desktop, "f-spot", NULL);
+ if (array->len == 1)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, "length=%i", array->len);
+ g_ptr_array_foreach (array, (GFunc) g_free, NULL);
+ g_ptr_array_free (array, TRUE);
+out:
+ g_object_unref (desktop);
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-desktop.h b/lib/packagekit-glib2/pk-desktop.h
new file mode 100644
index 0000000..2892b31
--- /dev/null
+++ b/lib/packagekit-glib2/pk-desktop.h
@@ -0,0 +1,92 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_DESKTOP_H
+#define __PK_DESKTOP_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_DESKTOP (pk_desktop_get_type ())
+#define PK_DESKTOP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_DESKTOP, PkDesktop))
+#define PK_DESKTOP_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_DESKTOP, PkDesktopClass))
+#define PK_IS_DESKTOP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_DESKTOP))
+#define PK_IS_DESKTOP_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_DESKTOP))
+#define PK_DESKTOP_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_DESKTOP, PkDesktopClass))
+
+/**
+ * PK_DESKTOP_DEFAULT_DATABASE:
+ *
+ * The default location for the database
+ */
+#define PK_DESKTOP_DEFAULT_DATABASE LOCALSTATEDIR "/lib/PackageKit/desktop-files.db"
+
+/**
+ * PK_DESKTOP_DEFAULT_APPLICATION_DIR:
+ *
+ * The default location for the desktop files
+ */
+#ifndef __FreeBSD__
+#define PK_DESKTOP_DEFAULT_APPLICATION_DIR "/usr/share/applications"
+#else
+#define PK_DESKTOP_DEFAULT_APPLICATION_DIR "/usr/local/share/applications"
+#endif
+
+typedef struct _PkDesktopPrivate PkDesktopPrivate;
+typedef struct _PkDesktop PkDesktop;
+typedef struct _PkDesktopClass PkDesktopClass;
+
+struct _PkDesktop
+{
+ GObject parent;
+ PkDesktopPrivate *priv;
+};
+
+struct _PkDesktopClass
+{
+ GObjectClass parent_class;
+};
+
+GType pk_desktop_get_type (void);
+PkDesktop *pk_desktop_new (void);
+void pk_desktop_test (gpointer user_data);
+
+gboolean pk_desktop_open_database (PkDesktop *desktop,
+ GError **error);
+GPtrArray *pk_desktop_get_files_for_package (PkDesktop *desktop,
+ const gchar *package,
+ GError **error);
+GPtrArray *pk_desktop_get_shown_for_package (PkDesktop *desktop,
+ const gchar *package,
+ GError **error);
+gchar *pk_desktop_get_package_for_file (PkDesktop *desktop,
+ const gchar *filename,
+ GError **error);
+
+G_END_DECLS
+
+#endif /* __PK_DESKTOP_H */
+
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index f75f7b0..6d452dc 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -29,6 +29,7 @@
#include "pk-client.h"
#include "pk-common.h"
#include "pk-control.h"
+#include "pk-desktop.h"
#include "pk-enum.h"
#include "pk-package.h"
#include "pk-package-id.h"
@@ -53,6 +54,7 @@ main (int argc, char **argv)
egg_string_test (test);
pk_common_test (test);
pk_enum_test (test);
+ pk_desktop_test (test);
pk_bitfield_test (test);
pk_package_id_test (test);
pk_package_ids_test (test);
commit d6b75401bc7755fde1fd14a459aa57e97727aa8e
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 14:28:53 2009 +0100
trivial: More work to make the daemon compile with glib2
diff --git a/src/pk-backend.c b/src/pk-backend.c
index bd4c93d..075770b 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -101,7 +101,7 @@ struct _PkBackendPrivate
guint download_files;
PkNetwork *network;
PkStore *store;
- PkPackageObj *last_package;
+ PkItemPackage *last_package;
PkRoleEnum role; /* this never changes for the lifetime of a transaction */
PkStatusEnum status; /* this changes */
PkExitEnum exit;
@@ -789,37 +789,35 @@ pk_backend_get_status (PkBackend *backend)
static gboolean
pk_backend_package_emulate_finished (PkBackend *backend)
{
- PkInfoEnum info;
- gchar *package_id;
gboolean ret = FALSE;
+ const PkItemPackage *item;
/* simultaneous handles this on it's own */
if (backend->priv->simultaneous)
- return FALSE;
+ goto out;
/* first package in transaction */
- if (backend->priv->last_package == NULL)
- return FALSE;
+ item = backend->priv->last_package;
+ if (item == NULL)
+ goto out;
/* already finished */
- if (backend->priv->last_package->info == PK_INFO_ENUM_FINISHED)
- return FALSE;
+ if (item->info_enum == PK_INFO_ENUM_FINISHED)
+ goto out;
/* only makes sense for some values */
- info = backend->priv->last_package->info;
- if (info == PK_INFO_ENUM_DOWNLOADING ||
- info == PK_INFO_ENUM_UPDATING ||
- info == PK_INFO_ENUM_INSTALLING ||
- info == PK_INFO_ENUM_REMOVING ||
- info == PK_INFO_ENUM_CLEANUP ||
- info == PK_INFO_ENUM_OBSOLETING ||
- info == PK_INFO_ENUM_REINSTALLING ||
- info == PK_INFO_ENUM_DOWNGRADING) {
- package_id = pk_package_id_to_string (backend->priv->last_package->id);
- pk_backend_package (backend, PK_INFO_ENUM_FINISHED, package_id, backend->priv->last_package->summary);
- g_free (package_id);
+ if (item->info_enum == PK_INFO_ENUM_DOWNLOADING ||
+ item->info_enum == PK_INFO_ENUM_UPDATING ||
+ item->info_enum == PK_INFO_ENUM_INSTALLING ||
+ item->info_enum == PK_INFO_ENUM_REMOVING ||
+ item->info_enum == PK_INFO_ENUM_CLEANUP ||
+ item->info_enum == PK_INFO_ENUM_OBSOLETING ||
+ item->info_enum == PK_INFO_ENUM_REINSTALLING ||
+ item->info_enum == PK_INFO_ENUM_DOWNGRADING) {
+ pk_backend_package (backend, PK_INFO_ENUM_FINISHED, item->package_id, item->summary);
ret = TRUE;
}
+out:
return ret;
}
@@ -827,7 +825,7 @@ pk_backend_package_emulate_finished (PkBackend *backend)
* pk_backend_package_emulate_finished_for_package:
**/
static gboolean
-pk_backend_package_emulate_finished_for_package (PkBackend *backend, const PkPackageObj *obj)
+pk_backend_package_emulate_finished_for_package (PkBackend *backend, const PkItemPackage *obj)
{
/* simultaneous handles this on it's own */
if (backend->priv->simultaneous)
@@ -838,11 +836,11 @@ pk_backend_package_emulate_finished_for_package (PkBackend *backend, const PkPac
return FALSE;
/* sending finished already */
- if (obj->info == PK_INFO_ENUM_FINISHED)
+ if (obj->info_enum == PK_INFO_ENUM_FINISHED)
return FALSE;
/* same package, just info change */
- if (pk_package_id_equal (backend->priv->last_package->id, obj->id))
+ if (g_strcmp0 (backend->priv->last_package->package_id, obj->package_id))
return FALSE;
/* emit the old package as finished */
@@ -856,7 +854,7 @@ gboolean
pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id, const gchar *summary)
{
gchar *summary_safe = NULL;
- PkPackageObj *obj = NULL;
+ PkItemPackage *obj = NULL;
gboolean ret;
g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
@@ -885,13 +883,16 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
}
/* create a new package object AFTER we emulate the info value */
- obj = pk_package_obj_new (info, package_id, summary_safe);
+ obj = pk_item_package_new (info, package_id, summary_safe);
if (obj == NULL) {
egg_warning ("Failed to create object summary: '%s'", summary_safe);
ret = FALSE;
goto out;
}
- ret = pk_package_obj_equal (obj, backend->priv->last_package);
+
+ /* is it the same? */
+ ret = (obj->info_enum == backend->priv->last_package->info_enum &&
+ g_strcmp0 (obj->package_id, backend->priv->last_package->package_id) == 0);
if (ret) {
egg_debug ("skipping duplicate %s", package_id);
ret = FALSE;
@@ -902,8 +903,8 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
pk_backend_package_emulate_finished_for_package (backend, obj);
/* update the 'last' package */
- pk_package_obj_free (backend->priv->last_package);
- backend->priv->last_package = pk_package_obj_copy (obj);
+ pk_item_package_unref (backend->priv->last_package);
+ backend->priv->last_package = pk_item_package_ref (obj);
/* have we already set an error? */
if (backend->priv->set_error) {
@@ -938,7 +939,8 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
/* success */
ret = TRUE;
out:
- pk_package_obj_free (obj);
+ if (obj != NULL)
+ pk_item_package_unref (obj);
g_free (summary_safe);
return ret;
}
@@ -956,7 +958,7 @@ pk_backend_update_detail (PkBackend *backend, const gchar *package_id,
const gchar *updated_text)
{
gchar *update_text_safe = NULL;
- PkUpdateDetailObj *detail = NULL;
+ PkItemUpdateDetail *detail = NULL;
GDate *issued = NULL;
GDate *updated = NULL;
gboolean ret = FALSE;
@@ -978,8 +980,8 @@ pk_backend_update_detail (PkBackend *backend, const gchar *package_id,
/* replace unsafe chars */
update_text_safe = pk_strsafe (update_text);
- /* form PkUpdateDetailObj struct */
- detail = pk_update_detail_obj_new_from_data (package_id, updates, obsoletes, vendor_url,
+ /* form PkItemUpdateDetail struct */
+ detail = pk_item_update_detail_new (package_id, updates, obsoletes, vendor_url,
bugzilla_url, cve_url, restart,
update_text_safe, changelog,
state, issued, updated);
@@ -1156,7 +1158,7 @@ pk_backend_details (PkBackend *backend, const gchar *package_id,
const gchar *description, const gchar *url, gulong size)
{
gchar *description_safe = NULL;
- PkDetailsObj *details = NULL;
+ PkItemDetails *details = NULL;
gboolean ret = FALSE;
g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
@@ -1172,8 +1174,8 @@ pk_backend_details (PkBackend *backend, const gchar *package_id,
/* replace unsafe chars */
description_safe = pk_strsafe (description);
- /* form PkDetailsObj struct */
- details = pk_details_obj_new_from_data (package_id, license, group, description_safe, url, size);
+ /* form PkItemDetails struct */
+ details = pk_item_details_new (package_id, license, group, description_safe, url, size);
if (details == NULL) {
egg_warning ("Failed to parse details object");
goto out;
@@ -2077,7 +2079,7 @@ pk_backend_reset (PkBackend *backend)
backend->priv->signal_error_timeout = 0;
}
- pk_package_obj_free (backend->priv->last_package);
+ pk_item_package_unref (backend->priv->last_package);
backend->priv->set_error = FALSE;
backend->priv->set_signature = FALSE;
backend->priv->set_eula = FALSE;
@@ -2217,7 +2219,7 @@ pk_backend_test_func_immediate_false (PkBackend *backend)
* pk_backend_test_package_cb:
**/
static void
-pk_backend_test_package_cb (PkBackend *backend, const PkPackageObj *obj, EggTest *test)
+pk_backend_test_package_cb (PkBackend *backend, const PkItemPackage *obj, EggTest *test)
{
egg_debug ("package:%s", obj->id->name);
number_packages++;
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index 7016ca3..6739c40 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -81,7 +81,7 @@ pk_transaction_extra_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTr
* pk_transaction_extra_package_cb:
**/
static void
-pk_transaction_extra_package_cb (PkBackend *backend, const PkPackageObj *obj, PkTransactionExtra *extra)
+pk_transaction_extra_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTransactionExtra *extra)
{
pk_obj_list_add (PK_OBJ_LIST(extra->priv->list), obj);
}
@@ -119,10 +119,10 @@ pk_transaction_extra_set_progress_changed (PkTransactionExtra *extra, guint perc
/**
* pk_transaction_extra_get_installed_package_for_file:
**/
-static const PkPackageObj *
+static const PkItemPackage *
pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *extra, const gchar *filename)
{
- const PkPackageObj *obj = NULL;
+ const PkItemPackage *obj = NULL;
PkStore *store;
/* use PK to find the correct package */
@@ -279,7 +279,7 @@ pk_transaction_extra_sqlite_add_filename (PkTransactionExtra *extra, const gchar
gchar *md5 = NULL;
gchar *package = NULL;
gint rc = -1;
- const PkPackageObj *obj;
+ const PkItemPackage *obj;
/* if we've got it, use old data */
if (md5_opt != NULL)
@@ -856,7 +856,7 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *extra)
gchar *package_id;
GPtrArray *files_session;
GPtrArray *files_system;
- const PkPackageObj *obj;
+ const PkItemPackage *obj;
GPtrArray *pids;
g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 0b28ee4..55526ef 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -470,7 +470,7 @@ pk_transaction_caller_active_changed_cb (EggDbusMonitor *egg_dbus_monitor, gbool
* pk_transaction_details_cb:
**/
static void
-pk_transaction_details_cb (PkBackend *backend, PkDetailsObj *obj, PkTransaction *transaction)
+pk_transaction_details_cb (PkBackend *backend, PkItemDetails *obj, PkTransaction *transaction)
{
const gchar *group_text;
gchar *package_id;
@@ -478,7 +478,7 @@ pk_transaction_details_cb (PkBackend *backend, PkDetailsObj *obj, PkTransaction
g_return_if_fail (PK_IS_TRANSACTION (transaction));
g_return_if_fail (transaction->priv->tid != NULL);
- group_text = pk_group_enum_to_text (obj->group);
+ group_text = pk_group_enum_to_text (obj->group_enum);
package_id = pk_package_id_to_string (obj->id);
g_signal_emit (transaction, signals [PK_TRANSACTION_DETAILS], 0, package_id,
obj->license, group_text, obj->description, obj->url, obj->size);
@@ -579,7 +579,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
guint i, length;
GPtrArray *list;
GPtrArray *package_list;
- const PkPackageObj *obj;
+ const PkItemPackage *obj;
gchar *package_id;
g_return_if_fail (PK_IS_TRANSACTION (transaction));
@@ -821,7 +821,7 @@ pk_transaction_message_cb (PkBackend *backend, PkMessageEnum message, const gcha
* pk_transaction_package_cb:
**/
static void
-pk_transaction_package_cb (PkBackend *backend, const PkPackageObj *obj, PkTransaction *transaction)
+pk_transaction_package_cb (PkBackend *backend, const PkItemPackage *obj, PkTransaction *transaction)
{
const gchar *info_text;
const gchar *role_text;
@@ -1061,7 +1061,7 @@ pk_transaction_transaction_cb (PkTransactionDb *tdb, const gchar *old_tid, const
* pk_transaction_update_detail_cb:
**/
static void
-pk_transaction_update_detail_cb (PkBackend *backend, const PkUpdateDetailObj *detail, PkTransaction *transaction)
+pk_transaction_update_detail_cb (PkBackend *backend, const PkItemUpdateDetail *detail, PkTransaction *transaction)
{
const gchar *restart_text;
const gchar *state_text;
@@ -1098,7 +1098,7 @@ static gboolean
pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **package_ids)
{
GPtrArray *updates;
- const PkPackageObj *obj;
+ const PkItemPackage *obj;
guint i;
guint j;
guint length;
@@ -3039,7 +3039,7 @@ pk_transaction_get_updates (PkTransaction *transaction, const gchar *filter, DBu
/* try and reuse cache */
updates_cache = pk_cache_get_updates (transaction->priv->cache);
if (updates_cache != NULL) {
- const PkPackageObj *obj;
+ const PkItemPackage *obj;
const gchar *info_text;
guint i;
commit c879297cce35172401b164e29f61d8dd3b7e7bb2
Merge: 7c260de... 9f11304...
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 14:15:28 2009 +0100
Merge branch 'master' into daemon-glib2
commit 9f11304bc5bc16233d72df6f742b2c6ccbb747b6
Merge: 0c12ffd... 5dae094...
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 14:14:19 2009 +0100
Merge branch 'master' into item-new
commit 0c12ffd6c62405df68180583773f766ab1c59092
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 14:13:14 2009 +0100
trivial: Make PkItem structures independant of PkResults so the daemon can use them
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 020f5ba..3754827 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -443,6 +443,7 @@ pk_client_copy_downloaded_file (PkClientState *state, const gchar *package_id, c
gchar **files;
GFile *source;
GFile *destination;
+ PkItemFiles *item;
/* generate the destination location */
basename = g_path_get_basename (source_file);
@@ -458,9 +459,11 @@ pk_client_copy_downloaded_file (PkClientState *state, const gchar *package_id, c
/* Add the result (as a GStrv) to the results set */
files = g_strsplit (path, ",", -1);
- pk_results_add_files (state->results, package_id, files);
+ item = pk_item_files_new (package_id, files);
+ pk_results_add_files (state->results, item);
/* free everything we've used */
+ pk_item_files_unref (item);
g_object_unref (source);
g_object_unref (destination);
g_strfreev (files);
@@ -488,7 +491,6 @@ pk_client_copy_downloaded (PkClientState *state)
array = pk_results_get_files_array (state->results);
if (array == NULL)
egg_error ("internal error");
-
/* get the number of files to copy */
for (i=0; i < array->len; i++) {
item = g_ptr_array_index (array, i);
@@ -516,7 +518,7 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
{
GError *error = NULL;
PkExitEnum exit_enum;
- const PkItemErrorCode *error_item;
+ PkItemErrorCode *error_item = NULL;
egg_debug ("exit_text=%s", exit_text);
@@ -537,17 +539,20 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED, "Failed: %s", exit_text);
}
pk_client_state_finish (state, error);
- return;
+ goto out;
}
/* do we have to copy results? */
if (state->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
pk_client_copy_downloaded (state);
- return;
+ goto out;
}
/* we're done */
pk_client_state_finish (state, error);
+out:
+ if (error_item != NULL)
+ pk_item_error_code_unref (error_item);
}
/**
@@ -584,12 +589,16 @@ static void
pk_client_package_cb (DBusGProxy *proxy, const gchar *info_text, const gchar *package_id, const gchar *summary, PkClientState *state)
{
PkInfoEnum info_enum;
+ PkItemPackage *item;
g_return_if_fail (PK_IS_CLIENT (state->client));
/* add to results */
info_enum = pk_info_enum_from_text (info_text);
- if (info_enum != PK_INFO_ENUM_FINISHED)
- pk_results_add_package (state->results, info_enum, package_id, summary);
+ if (info_enum != PK_INFO_ENUM_FINISHED) {
+ item = pk_item_package_new (info_enum, package_id, summary);
+ pk_results_add_package (state->results, item);
+ pk_item_package_unref (item);
+ }
/* save progress */
g_object_set (state->progress,
@@ -701,8 +710,13 @@ pk_client_details_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *l
guint64 size, PkClientState *state)
{
PkGroupEnum group_enum;
+ PkItemDetails *item;
group_enum = pk_group_enum_from_text (group_text);
- pk_results_add_details (state->results, package_id, license, group_enum, description, url, size);
+
+ /* add to results */
+ item = pk_item_details_new (package_id, license, group_enum, description, url, size);
+ pk_results_add_details (state->results, item);
+ pk_item_details_unref (item);
}
/**
@@ -719,15 +733,19 @@ pk_client_update_detail_cb (DBusGProxy *proxy, const gchar *package_id, const g
GDate *updated;
PkUpdateStateEnum state_enum;
PkRestartEnum restart_enum;
+ PkItemUpdateDetail *item;
restart_enum = pk_restart_enum_from_text (restart_text);
state_enum = pk_update_state_enum_from_text (state_text);
issued = pk_iso8601_to_date (issued_text);
updated = pk_iso8601_to_date (updated_text);
- pk_results_add_update_detail (state->results, package_id, updates, obsoletes, vendor_url,
- bugzilla_url, cve_url, restart_enum, update_text, changelog,
- state_enum, issued, updated);
+ /* add to results */
+ item = pk_item_update_detail_new (package_id, updates, obsoletes, vendor_url,
+ bugzilla_url, cve_url, restart_enum, update_text, changelog,
+ state_enum, issued, updated);
+ pk_results_add_update_detail (state->results, item);
+ pk_item_update_detail_unref (item);
if (issued != NULL)
g_date_free (issued);
@@ -744,8 +762,13 @@ pk_client_transaction_cb (DBusGProxy *proxy, const gchar *old_tid, const gchar *
const gchar *data, guint uid, const gchar *cmdline, PkClientState *state)
{
PkRoleEnum role_enum;
+ PkItemTransaction *item;
role_enum = pk_role_enum_from_text (role_text);
- pk_results_add_transaction (state->results, old_tid, timespec, succeeded, role_enum, duration, data, uid, cmdline);
+
+ /* add to results */
+ item = pk_item_transaction_new (old_tid, timespec, succeeded, role_enum, duration, data, uid, cmdline);
+ pk_results_add_transaction (state->results, item);
+ pk_item_transaction_unref (item);
}
/**
@@ -756,8 +779,13 @@ pk_client_distro_upgrade_cb (DBusGProxy *proxy, const gchar *type_text, const gc
const gchar *summary, PkClientState *state)
{
PkUpdateStateEnum type_enum;
+ PkItemDistroUpgrade *item;
type_enum = pk_update_state_enum_from_text (type_text);
- pk_results_add_distro_upgrade (state->results, type_enum, name, summary);
+
+ /* add to results */
+ item = pk_item_distro_upgrade_new (type_enum, name, summary);
+ pk_results_add_distro_upgrade (state->results, item);
+ pk_item_distro_upgrade_unref (item);
}
/**
@@ -767,8 +795,13 @@ static void
pk_client_require_restart_cb (DBusGProxy *proxy, const gchar *restart_text, const gchar *package_id, PkClientState *state)
{
PkRestartEnum restart_enum;
+ PkItemRequireRestart *item;
restart_enum = pk_restart_enum_from_text (restart_text);
- pk_results_add_require_restart (state->results, restart_enum, package_id);
+
+ /* add to results */
+ item = pk_item_require_restart_new (restart_enum, package_id);
+ pk_results_add_require_restart (state->results, item);
+ pk_item_require_restart_unref (item);
}
/**
@@ -778,7 +811,12 @@ static void
pk_client_category_cb (DBusGProxy *proxy, const gchar *parent_id, const gchar *cat_id,
const gchar *name, const gchar *summary, const gchar *icon, PkClientState *state)
{
- pk_results_add_category (state->results, parent_id, cat_id, name, summary, icon);
+ PkItemCategory *item;
+
+ /* add to results */
+ item = pk_item_category_new (parent_id, cat_id, name, summary, icon);
+ pk_results_add_category (state->results, item);
+ pk_item_category_unref (item);
}
/**
@@ -788,8 +826,13 @@ static void
pk_client_files_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *filelist, PkClientState *state)
{
gchar **files;
+ PkItemFiles *item;
files = g_strsplit (filelist, ";", -1);
- pk_results_add_files (state->results, package_id, files);
+
+ /* add to results */
+ item = pk_item_files_new (package_id, files);
+ pk_results_add_files (state->results, item);
+ pk_item_files_unref (item);
g_strfreev (files);
}
@@ -803,9 +846,14 @@ pk_client_repo_signature_required_cb (DBusGProxy *proxy, const gchar *package_id
const gchar *type_text, PkClientState *state)
{
PkSigTypeEnum type_enum;
+ PkItemRepoSignatureRequired *item;
type_enum = pk_sig_type_enum_from_text (type_text);
- pk_results_add_repo_signature_required (state->results, package_id, repository_name, key_url, key_userid,
- key_id, key_fingerprint, key_timestamp, type_enum);
+
+ /* add to results */
+ item = pk_item_repo_signature_required_new (package_id, repository_name, key_url, key_userid,
+ key_id, key_fingerprint, key_timestamp, type_enum);
+ pk_results_add_repo_signature_required (state->results, item);
+ pk_item_repo_signature_required_unref (item);
}
/**
@@ -815,7 +863,12 @@ static void
pk_client_eula_required_cb (DBusGProxy *proxy, const gchar *eula_id, const gchar *package_id,
const gchar *vendor_name, const gchar *license_agreement, PkClientState *state)
{
- pk_results_add_eula_required (state->results, eula_id, package_id, vendor_name, license_agreement);
+ PkItemEulaRequired *item;
+
+ /* add to results */
+ item = pk_item_eula_required_new (eula_id, package_id, vendor_name, license_agreement);
+ pk_results_add_eula_required (state->results, item);
+ pk_item_eula_required_unref (item);
}
/**
@@ -826,8 +879,13 @@ pk_client_media_change_required_cb (DBusGProxy *proxy, const gchar *media_type_t
const gchar *media_id, const gchar *media_text, PkClientState *state)
{
PkMediaTypeEnum media_type_enum;
+ PkItemMediaChangeRequired *item;
media_type_enum = pk_media_type_enum_from_text (media_type_text);
- pk_results_add_media_change_required (state->results, media_type_enum, media_id, media_text);
+
+ /* add to results */
+ item = pk_item_media_change_required_new (media_type_enum, media_id, media_text);
+ pk_results_add_media_change_required (state->results, item);
+ pk_item_media_change_required_unref (item);
}
/**
@@ -837,7 +895,12 @@ static void
pk_client_repo_detail_cb (DBusGProxy *proxy, const gchar *repo_id,
const gchar *description, gboolean enabled, PkClientState *state)
{
- pk_results_add_repo_detail (state->results, repo_id, description, enabled);
+ PkItemRepoDetail *item;
+
+ /* add to results */
+ item = pk_item_repo_detail_new (repo_id, description, enabled);
+ pk_results_add_repo_detail (state->results, item);
+ pk_item_repo_detail_unref (item);
}
/**
@@ -847,8 +910,13 @@ static void
pk_client_error_code_cb (DBusGProxy *proxy, const gchar *code_text, const gchar *details, PkClientState *state)
{
PkErrorCodeEnum code_enum;
+ PkItemErrorCode *item;
code_enum = pk_error_enum_from_text (code_text);
- pk_results_add_error_code (state->results, code_enum, details);
+
+ /* add to results */
+ item = pk_item_error_code_new (code_enum, details);
+ pk_results_add_error_code (state->results, item);
+ pk_item_error_code_unref (item);
}
/**
@@ -858,8 +926,13 @@ static void
pk_client_message_cb (DBusGProxy *proxy, const gchar *message_text, const gchar *details, PkClientState *state)
{
PkMessageEnum message_enum;
+ PkItemMessage *item;
message_enum = pk_message_enum_from_text (message_text);
- pk_results_add_message (state->results, message_enum, details);
+
+ /* add to results */
+ item = pk_item_message_new (message_enum, details);
+ pk_results_add_message (state->results, item);
+ pk_item_message_unref (item);
}
/**
@@ -3461,7 +3534,7 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
GError *error = NULL;
PkResults *results = NULL;
PkExitEnum exit_enum;
- const PkItemErrorCode *error_item;
+ PkItemErrorCode *error_item = NULL;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -3482,6 +3555,8 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
if (g_strcmp0 (error_item->details, "The task was stopped successfully") != 0)
egg_test_failed (test, "failed to get error message: %s", error_item->details);
out:
+ if (error_item != NULL)
+ pk_item_error_code_unref (error_item);
if (results != NULL)
g_object_unref (results);
egg_test_loop_quit (test);
diff --git a/lib/packagekit-glib2/pk-item.c b/lib/packagekit-glib2/pk-item.c
index c3acde2..8320b54 100644
--- a/lib/packagekit-glib2/pk-item.c
+++ b/lib/packagekit-glib2/pk-item.c
@@ -33,7 +33,6 @@
#include "egg-debug.h"
-
/**
* pk_item_package_ref:
* @item: the #PkItemPackage
@@ -158,13 +157,8 @@ PkItemFiles *
pk_item_files_ref (PkItemFiles *item)
{
g_return_val_if_fail (item != NULL, NULL);
-
- /* post decrement */
- if (item->refcount-- != 0)
- return item;
-
- g_strfreev (item->files);
- return NULL;
+ item->refcount++;
+ return item;
}
/**
@@ -606,6 +600,366 @@ pk_item_message_unref (PkItemMessage *item)
return NULL;
}
+
+/**
+ * pk_item_package_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a package to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemPackage *
+pk_item_package_new (PkInfoEnum info_enum, const gchar *package_id, const gchar *summary)
+{
+ PkItemPackage *item;
+
+ g_return_val_if_fail (info_enum != PK_INFO_ENUM_UNKNOWN, FALSE);
+ g_return_val_if_fail (package_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemPackage, 1);
+ item->info_enum = info_enum;
+ item->package_id = g_strdup (package_id);
+ item->summary = g_strdup (summary);
+ return item;
+}
+
+/**
+ * pk_item_details_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some package details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemDetails *
+pk_item_details_new (const gchar *package_id, const gchar *license,
+ PkGroupEnum group_enum, const gchar *description, const gchar *url, guint64 size)
+{
+ PkItemDetails *item;
+
+ g_return_val_if_fail (package_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemDetails, 1);
+ item->package_id = g_strdup (package_id);
+ item->license = g_strdup (license);
+ item->group_enum = group_enum;
+ item->description = g_strdup (description);
+ item->url = g_strdup (url);
+ item->size = size;
+ return item;
+}
+
+/**
+ * pk_item_update_detail_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some update details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemUpdateDetail *
+pk_item_update_detail_new (const gchar *package_id, const gchar *updates,
+ const gchar *obsoletes, const gchar *vendor_url, const gchar *bugzilla_url,
+ const gchar *cve_url, PkRestartEnum restart_enum, const gchar *update_text,
+ const gchar *changelog, PkUpdateStateEnum state_enum, GDate *issued, GDate *updated)
+{
+ PkItemUpdateDetail *item;
+
+ g_return_val_if_fail (package_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemUpdateDetail, 1);
+ item->package_id = g_strdup (package_id);
+ item->updates = g_strdup (updates);
+ item->obsoletes = g_strdup (obsoletes);
+ item->vendor_url = g_strdup (vendor_url);
+ item->bugzilla_url = g_strdup (bugzilla_url);
+ item->cve_url = g_strdup (cve_url);
+ item->restart_enum = restart_enum;
+ item->update_text = g_strdup (update_text);
+ item->changelog = g_strdup (changelog);
+ item->state_enum = state_enum;
+ if (issued != NULL)
+ item->issued = g_date_new_dmy (issued->day, issued->month, issued->year);
+ if (updated != NULL)
+ item->updated = g_date_new_dmy (updated->day, updated->month, updated->year);
+ return item;
+}
+
+/**
+ * pk_item_category_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a category item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemCategory *
+pk_item_category_new (const gchar *parent_id, const gchar *cat_id, const gchar *name,
+ const gchar *summary, const gchar *icon)
+{
+ PkItemCategory *item;
+
+ g_return_val_if_fail (name != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemCategory, 1);
+ item->parent_id = g_strdup (parent_id);
+ item->cat_id = g_strdup (cat_id);
+ item->name = g_strdup (name);
+ item->summary = g_strdup (summary);
+ item->icon = g_strdup (icon);
+ return item;
+}
+
+/**
+ * pk_item_distro_upgrade_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a distribution upgrade item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemDistroUpgrade *
+pk_item_distro_upgrade_new (PkUpdateStateEnum state_enum, const gchar *name, const gchar *summary)
+{
+ PkItemDistroUpgrade *item;
+
+ g_return_val_if_fail (state_enum != PK_UPDATE_STATE_ENUM_UNKNOWN, FALSE);
+ g_return_val_if_fail (name != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemDistroUpgrade, 1);
+ item->state = state_enum;
+ item->name = g_strdup (name);
+ item->summary = g_strdup (summary);
+ return item;
+}
+
+/**
+ * pk_item_require_restart_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a require restart item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemRequireRestart *
+pk_item_require_restart_new (PkRestartEnum restart_enum, const gchar *package_id)
+{
+ PkItemRequireRestart *item;
+
+ g_return_val_if_fail (restart_enum != PK_RESTART_ENUM_UNKNOWN, FALSE);
+ g_return_val_if_fail (package_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemRequireRestart, 1);
+ item->restart = restart_enum;
+ item->package_id = g_strdup (package_id);
+ return item;
+}
+
+/**
+ * pk_item_transaction_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds a transaction item to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemTransaction *
+pk_item_transaction_new (const gchar *tid, const gchar *timespec,
+ gboolean succeeded, PkRoleEnum role_enum,
+ guint duration, const gchar *data,
+ guint uid, const gchar *cmdline)
+{
+ PkItemTransaction *item;
+
+ g_return_val_if_fail (role_enum != PK_ROLE_ENUM_UNKNOWN, FALSE);
+ g_return_val_if_fail (tid != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemTransaction, 1);
+ item->tid = g_strdup (tid);
+ item->timespec = g_strdup (timespec);
+ item->succeeded = succeeded;
+ item->role = role_enum;
+ item->duration = duration;
+ item->data = g_strdup (data);
+ item->uid = uid;
+ item->cmdline = g_strdup (cmdline);
+ return item;
+}
+
+/**
+ * pk_item_files_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some files details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemFiles *
+pk_item_files_new (const gchar *package_id, gchar **files)
+{
+ PkItemFiles *item;
+
+ g_return_val_if_fail (package_id != NULL, FALSE);
+ g_return_val_if_fail (files != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemFiles, 1);
+ item->package_id = g_strdup (package_id);
+ item->files = g_strdupv (files);
+ return item;
+}
+
+/**
+ * pk_item_repo_signature_required_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some repository signature details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemRepoSignatureRequired *
+pk_item_repo_signature_required_new (const gchar *package_id, const gchar *repository_name,
+ const gchar *key_url, const gchar *key_userid, const gchar *key_id,
+ const gchar *key_fingerprint, const gchar *key_timestamp,
+ PkSigTypeEnum type_enum)
+{
+ PkItemRepoSignatureRequired *item;
+
+ g_return_val_if_fail (package_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemRepoSignatureRequired, 1);
+ item->package_id = g_strdup (package_id);
+ item->repository_name = g_strdup (repository_name);
+ item->key_url = g_strdup (key_url);
+ item->key_userid = g_strdup (key_userid);
+ item->key_id = g_strdup (key_id);
+ item->key_fingerprint = g_strdup (key_fingerprint);
+ item->key_timestamp = g_strdup (key_timestamp);
+ item->type = type_enum;
+ return item;
+}
+
+/**
+ * pk_item_eula_required_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some EULA details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemEulaRequired *
+pk_item_eula_required_new (const gchar *eula_id, const gchar *package_id,
+ const gchar *vendor_name, const gchar *license_agreement)
+{
+ PkItemEulaRequired *item;
+
+ g_return_val_if_fail (eula_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemEulaRequired, 1);
+ item->eula_id = g_strdup (eula_id);
+ item->package_id = g_strdup (package_id);
+ item->vendor_name = g_strdup (vendor_name);
+ item->license_agreement = g_strdup (license_agreement);
+ return item;
+}
+
+/**
+ * pk_item_media_change_required_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some media change details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemMediaChangeRequired *
+pk_item_media_change_required_new (PkMediaTypeEnum media_type_enum, const gchar *media_id, const gchar *media_text)
+{
+ PkItemMediaChangeRequired *item;
+
+ g_return_val_if_fail (media_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemMediaChangeRequired, 1);
+ item->media_type = media_type_enum;
+ item->media_id = g_strdup (media_id);
+ item->media_text = g_strdup (media_text);
+ return item;
+}
+
+/**
+ * pk_item_repo_detail_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some repository details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemRepoDetail *
+pk_item_repo_detail_new (const gchar *repo_id, const gchar *description, gboolean enabled)
+{
+ PkItemRepoDetail *item;
+
+ g_return_val_if_fail (repo_id != NULL, FALSE);
+
+ /* copy and add to array */
+ item = g_new0 (PkItemRepoDetail, 1);
+ item->repo_id = g_strdup (repo_id);
+ item->description = g_strdup (description);
+ item->enabled = enabled;
+ return item;
+}
+
+/**
+ * pk_item_error_code_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some error details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemErrorCode *
+pk_item_error_code_new (PkErrorCodeEnum code_enum, const gchar *details)
+{
+ PkItemErrorCode *item;
+
+ /* copy and add to array */
+ item = g_new0 (PkItemErrorCode, 1);
+ item->code = code_enum;
+ item->details = g_strdup (details);
+ return item;
+}
+
+/**
+ * pk_item_message_new:
+ * @results: a valid #PkResults instance
+ *
+ * Adds some message details to the results set.
+ *
+ * Return value: %TRUE if the value was set
+ **/
+PkItemMessage *
+pk_item_message_new (PkMessageEnum message_enum, const gchar *details)
+{
+ PkItemMessage *item;
+
+ /* copy and add to array */
+ item = g_new0 (PkItemMessage, 1);
+ item->message = message_enum;
+ item->details = g_strdup (details);
+ return item;
+}
+
+
/***************************************************************************
*** MAKE CHECK TESTS ***
***************************************************************************/
@@ -616,10 +970,38 @@ void
pk_item_test (gpointer user_data)
{
EggTest *test = (EggTest *) user_data;
+ PkItemPackage *item;
- if (!egg_test_start (test, "PkResults"))
+ if (!egg_test_start (test, "PkItem"))
return;
+ item = pk_item_package_new (PK_INFO_ENUM_AVAILABLE, "gnome-power-manager;0.1.2;i386;fedora", "Power manager for GNOME");
+
+ /************************************************************/
+ egg_test_title (test, "check refcount");
+ egg_test_assert (test, (item->refcount == 0));
+
+ /************************************************************/
+ egg_test_title (test, "check set");
+ egg_test_assert (test, (item->info_enum == PK_INFO_ENUM_AVAILABLE &&
+ g_strcmp0 ("gnome-power-manager;0.1.2;i386;fedora", item->package_id) == 0 &&
+ g_strcmp0 ("Power manager for GNOME", item->summary) == 0));
+
+ /************************************************************/
+ egg_test_title (test, "check refcount up");
+ item = pk_item_package_ref (item);
+ egg_test_assert (test, (item->refcount == 1));
+
+ /************************************************************/
+ egg_test_title (test, "check refcount down");
+ item = pk_item_package_unref (item);
+ egg_test_assert (test, (item->refcount == 0));
+
+ /************************************************************/
+ egg_test_title (test, "check NULL");
+ item = pk_item_package_unref (item);
+ egg_test_assert (test, (item == NULL));
+
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-item.h b/lib/packagekit-glib2/pk-item.h
index e7d9df2..a0eb9e5 100644
--- a/lib/packagekit-glib2/pk-item.h
+++ b/lib/packagekit-glib2/pk-item.h
@@ -237,6 +237,8 @@ typedef struct
} PkItemMessage;
void pk_item_test (gpointer user_data);
+
+/* refcount */
PkItemPackage *pk_item_package_ref (PkItemPackage *item);
PkItemPackage *pk_item_package_unref (PkItemPackage *item);
PkItemDetails *pk_item_details_ref (PkItemDetails *item);
@@ -266,6 +268,71 @@ PkItemErrorCode *pk_item_error_code_unref (PkItemErrorCode *item);
PkItemMessage *pk_item_message_ref (PkItemMessage *item);
PkItemMessage *pk_item_message_unref (PkItemMessage *item);
+/* create */
+PkItemPackage *pk_item_package_new (PkInfoEnum info_enum,
+ const gchar *package_id,
+ const gchar *summary);
+PkItemDetails *pk_item_details_new (const gchar *package_id,
+ const gchar *license,
+ PkGroupEnum group_enum,
+ const gchar *description,
+ const gchar *url,
+ guint64 size);
+PkItemUpdateDetail *pk_item_update_detail_new (const gchar *package_id,
+ const gchar *updates,
+ const gchar *obsoletes,
+ const gchar *vendor_url,
+ const gchar *bugzilla_url,
+ const gchar *cve_url,
+ PkRestartEnum restart_enum,
+ const gchar *update_text,
+ const gchar *changelog,
+ PkUpdateStateEnum state_enum,
+ GDate *issued,
+ GDate *updated);
+PkItemCategory *pk_item_category_new (const gchar *parent_id,
+ const gchar *cat_id,
+ const gchar *name,
+ const gchar *summary,
+ const gchar *icon);
+PkItemDistroUpgrade *pk_item_distro_upgrade_new (PkUpdateStateEnum state_enum,
+ const gchar *name,
+ const gchar *summary);
+PkItemRequireRestart *pk_item_require_restart_new (PkRestartEnum restart_enum,
+ const gchar *package_id);
+PkItemTransaction *pk_item_transaction_new (const gchar *tid,
+ const gchar *timespec,
+ gboolean succeeded,
+ PkRoleEnum role_enum,
+ guint duration,
+ const gchar *data,
+ guint uid,
+ const gchar *cmdline);
+PkItemFiles *pk_item_files_new (const gchar *package_id,
+ gchar **files);
+PkItemRepoSignatureRequired *pk_item_repo_signature_required_new (const gchar *package_id,
+ const gchar *repository_name,
+ const gchar *key_url,
+ const gchar *key_userid,
+ const gchar *key_id,
+ const gchar *key_fingerprint,
+ const gchar *key_timestamp,
+ PkSigTypeEnum type_enum);
+PkItemEulaRequired *pk_item_eula_required_new (const gchar *eula_id,
+ const gchar *package_id,
+ const gchar *vendor_name,
+ const gchar *license_agreement);
+PkItemMediaChangeRequired *pk_item_media_change_required_new (PkMediaTypeEnum media_type_enum,
+ const gchar *media_id,
+ const gchar *media_text);
+PkItemRepoDetail *pk_item_repo_detail_new (const gchar *repo_id,
+ const gchar *description,
+ gboolean enabled);
+PkItemErrorCode *pk_item_error_code_new (PkErrorCodeEnum code_enum,
+ const gchar *details);
+PkItemMessage *pk_item_message_new (PkMessageEnum message_enum,
+ const gchar *details);
+
G_END_DECLS
#endif /* __PK_ITEM_H */
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 7a41e3f..9b97f03 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -132,26 +132,20 @@ pk_results_set_exit_code (PkResults *results, PkExitEnum exit_enum)
/**
* pk_results_add_package:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds a package to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_package (PkResults *results, PkInfoEnum info_enum, const gchar *package_id, const gchar *summary)
+pk_results_add_package (PkResults *results, PkItemPackage *item)
{
- PkItemPackage *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (info_enum != PK_INFO_ENUM_UNKNOWN, FALSE);
- g_return_val_if_fail (package_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemPackage, 1);
- item->info_enum = info_enum;
- item->package_id = g_strdup (package_id);
- item->summary = g_strdup (summary);
- g_ptr_array_add (results->priv->package_array, item);
+ g_ptr_array_add (results->priv->package_array, pk_item_package_ref (item));
return TRUE;
}
@@ -159,29 +153,20 @@ pk_results_add_package (PkResults *results, PkInfoEnum info_enum, const gchar *p
/**
* pk_results_add_details:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some package details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_details (PkResults *results, const gchar *package_id, const gchar *license,
- PkGroupEnum group_enum, const gchar *description, const gchar *url, guint64 size)
+pk_results_add_details (PkResults *results, PkItemDetails *item)
{
- PkItemDetails *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (package_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemDetails, 1);
- item->package_id = g_strdup (package_id);
- item->license = g_strdup (license);
- item->group_enum = group_enum;
- item->description = g_strdup (description);
- item->url = g_strdup (url);
- item->size = size;
- g_ptr_array_add (results->priv->details_array, item);
+ g_ptr_array_add (results->priv->details_array, pk_item_details_ref (item));
return TRUE;
}
@@ -189,39 +174,20 @@ pk_results_add_details (PkResults *results, const gchar *package_id, const gchar
/**
* pk_results_add_update_detail:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some update details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_update_detail (PkResults *results, const gchar *package_id, const gchar *updates,
- const gchar *obsoletes, const gchar *vendor_url, const gchar *bugzilla_url,
- const gchar *cve_url, PkRestartEnum restart_enum, const gchar *update_text,
- const gchar *changelog, PkUpdateStateEnum state_enum, GDate *issued, GDate *updated)
+pk_results_add_update_detail (PkResults *results, PkItemUpdateDetail *item)
{
- PkItemUpdateDetail *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (package_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemUpdateDetail, 1);
- item->package_id = g_strdup (package_id);
- item->updates = g_strdup (updates);
- item->obsoletes = g_strdup (obsoletes);
- item->vendor_url = g_strdup (vendor_url);
- item->bugzilla_url = g_strdup (bugzilla_url);
- item->cve_url = g_strdup (cve_url);
- item->restart_enum = restart_enum;
- item->update_text = g_strdup (update_text);
- item->changelog = g_strdup (changelog);
- item->state_enum = state_enum;
- if (issued != NULL)
- item->issued = g_date_new_dmy (issued->day, issued->month, issued->year);
- if (updated != NULL)
- item->updated = g_date_new_dmy (updated->day, updated->month, updated->year);
- g_ptr_array_add (results->priv->update_detail_array, item);
+ g_ptr_array_add (results->priv->update_detail_array, pk_item_update_detail_ref (item));
return TRUE;
}
@@ -229,28 +195,20 @@ pk_results_add_update_detail (PkResults *results, const gchar *package_id, const
/**
* pk_results_add_category:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds a category item to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_category (PkResults *results, const gchar *parent_id, const gchar *cat_id, const gchar *name,
- const gchar *summary, const gchar *icon)
+pk_results_add_category (PkResults *results, PkItemCategory *item)
{
- PkItemCategory *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (name != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemCategory, 1);
- item->parent_id = g_strdup (parent_id);
- item->cat_id = g_strdup (cat_id);
- item->name = g_strdup (name);
- item->summary = g_strdup (summary);
- item->icon = g_strdup (icon);
- g_ptr_array_add (results->priv->category_array, item);
+ g_ptr_array_add (results->priv->category_array, pk_item_category_ref (item));
return TRUE;
}
@@ -258,26 +216,20 @@ pk_results_add_category (PkResults *results, const gchar *parent_id, const gchar
/**
* pk_results_add_distro_upgrade:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds a distribution upgrade item to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_distro_upgrade (PkResults *results, PkUpdateStateEnum state_enum, const gchar *name, const gchar *summary)
+pk_results_add_distro_upgrade (PkResults *results, PkItemDistroUpgrade *item)
{
- PkItemDistroUpgrade *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (state_enum != PK_UPDATE_STATE_ENUM_UNKNOWN, FALSE);
- g_return_val_if_fail (name != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemDistroUpgrade, 1);
- item->state = state_enum;
- item->name = g_strdup (name);
- item->summary = g_strdup (summary);
- g_ptr_array_add (results->priv->distro_upgrade_array, item);
+ g_ptr_array_add (results->priv->distro_upgrade_array, pk_item_distro_upgrade_ref (item));
return TRUE;
}
@@ -285,25 +237,20 @@ pk_results_add_distro_upgrade (PkResults *results, PkUpdateStateEnum state_enum,
/**
* pk_results_add_require_restart:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds a require restart item to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_require_restart (PkResults *results, PkRestartEnum restart_enum, const gchar *package_id)
+pk_results_add_require_restart (PkResults *results, PkItemRequireRestart *item)
{
- PkItemRequireRestart *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (restart_enum != PK_RESTART_ENUM_UNKNOWN, FALSE);
- g_return_val_if_fail (package_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemRequireRestart, 1);
- item->restart = restart_enum;
- item->package_id = g_strdup (package_id);
- g_ptr_array_add (results->priv->require_restart_array, item);
+ g_ptr_array_add (results->priv->require_restart_array, pk_item_require_restart_ref (item));
return TRUE;
}
@@ -311,34 +258,20 @@ pk_results_add_require_restart (PkResults *results, PkRestartEnum restart_enum,
/**
* pk_results_add_transaction:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds a transaction item to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_transaction (PkResults *results, const gchar *tid, const gchar *timespec,
- gboolean succeeded, PkRoleEnum role_enum,
- guint duration, const gchar *data,
- guint uid, const gchar *cmdline)
+pk_results_add_transaction (PkResults *results, PkItemTransaction *item)
{
- PkItemTransaction *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (role_enum != PK_ROLE_ENUM_UNKNOWN, FALSE);
- g_return_val_if_fail (tid != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemTransaction, 1);
- item->tid = g_strdup (tid);
- item->timespec = g_strdup (timespec);
- item->succeeded = succeeded;
- item->role = role_enum;
- item->duration = duration;
- item->data = g_strdup (data);
- item->uid = uid;
- item->cmdline = g_strdup (cmdline);
- g_ptr_array_add (results->priv->transaction_array, item);
+ g_ptr_array_add (results->priv->transaction_array, pk_item_transaction_ref (item));
return TRUE;
}
@@ -346,25 +279,20 @@ pk_results_add_transaction (PkResults *results, const gchar *tid, const gchar *t
/**
* pk_results_add_files:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some files details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_files (PkResults *results, const gchar *package_id, gchar **files)
+pk_results_add_files (PkResults *results, PkItemFiles *item)
{
- PkItemFiles *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (package_id != NULL, FALSE);
- g_return_val_if_fail (files != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemFiles, 1);
- item->package_id = g_strdup (package_id);
- item->files = g_strdupv (files);
- g_ptr_array_add (results->priv->files_array, item);
+ g_ptr_array_add (results->priv->files_array, pk_item_files_ref (item));
return TRUE;
}
@@ -372,33 +300,20 @@ pk_results_add_files (PkResults *results, const gchar *package_id, gchar **files
/**
* pk_results_add_repo_signature_required:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some repository signature details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_repo_signature_required (PkResults *results, const gchar *package_id, const gchar *repository_name,
- const gchar *key_url, const gchar *key_userid, const gchar *key_id,
- const gchar *key_fingerprint, const gchar *key_timestamp,
- PkSigTypeEnum type_enum)
+pk_results_add_repo_signature_required (PkResults *results, PkItemRepoSignatureRequired *item)
{
- PkItemRepoSignatureRequired *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (package_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemRepoSignatureRequired, 1);
- item->package_id = g_strdup (package_id);
- item->repository_name = g_strdup (repository_name);
- item->key_url = g_strdup (key_url);
- item->key_userid = g_strdup (key_userid);
- item->key_id = g_strdup (key_id);
- item->key_fingerprint = g_strdup (key_fingerprint);
- item->key_timestamp = g_strdup (key_timestamp);
- item->type = type_enum;
- g_ptr_array_add (results->priv->repo_signature_required_array, item);
+ g_ptr_array_add (results->priv->repo_signature_required_array, pk_item_repo_signature_required_ref (item));
return TRUE;
}
@@ -406,27 +321,20 @@ pk_results_add_repo_signature_required (PkResults *results, const gchar *package
/**
* pk_results_add_eula_required:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some EULA details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_eula_required (PkResults *results, const gchar *eula_id, const gchar *package_id,
- const gchar *vendor_name, const gchar *license_agreement)
+pk_results_add_eula_required (PkResults *results, PkItemEulaRequired *item)
{
- PkItemEulaRequired *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (eula_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemEulaRequired, 1);
- item->eula_id = g_strdup (eula_id);
- item->package_id = g_strdup (package_id);
- item->vendor_name = g_strdup (vendor_name);
- item->license_agreement = g_strdup (license_agreement);
- g_ptr_array_add (results->priv->eula_required_array, item);
+ g_ptr_array_add (results->priv->eula_required_array, pk_item_eula_required_ref (item));
return TRUE;
}
@@ -434,26 +342,20 @@ pk_results_add_eula_required (PkResults *results, const gchar *eula_id, const gc
/**
* pk_results_add_media_change_required:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some media change details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_media_change_required (PkResults *results, PkMediaTypeEnum media_type_enum,
- const gchar *media_id, const gchar *media_text)
+pk_results_add_media_change_required (PkResults *results, PkItemMediaChangeRequired *item)
{
- PkItemMediaChangeRequired *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (media_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemMediaChangeRequired, 1);
- item->media_type = media_type_enum;
- item->media_id = g_strdup (media_id);
- item->media_text = g_strdup (media_text);
- g_ptr_array_add (results->priv->media_change_required_array, item);
+ g_ptr_array_add (results->priv->media_change_required_array, pk_item_media_change_required_ref (item));
return TRUE;
}
@@ -461,26 +363,20 @@ pk_results_add_media_change_required (PkResults *results, PkMediaTypeEnum media_
/**
* pk_results_add_repo_detail:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some repository details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_repo_detail (PkResults *results, const gchar *repo_id,
- const gchar *description, gboolean enabled)
+pk_results_add_repo_detail (PkResults *results, PkItemRepoDetail *item)
{
- PkItemRepoDetail *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
- g_return_val_if_fail (repo_id != NULL, FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemRepoDetail, 1);
- item->repo_id = g_strdup (repo_id);
- item->description = g_strdup (description);
- item->enabled = enabled;
- g_ptr_array_add (results->priv->repo_detail_array, item);
+ g_ptr_array_add (results->priv->repo_detail_array, pk_item_repo_detail_ref (item));
return TRUE;
}
@@ -488,23 +384,20 @@ pk_results_add_repo_detail (PkResults *results, const gchar *repo_id,
/**
* pk_results_add_error_code:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some error details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_error_code (PkResults *results, PkErrorCodeEnum code_enum, const gchar *details)
+pk_results_add_error_code (PkResults *results, PkItemErrorCode *item)
{
- PkItemErrorCode *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemErrorCode, 1);
- item->code = code_enum;
- item->details = g_strdup (details);
- g_ptr_array_add (results->priv->error_code_array, item);
+ g_ptr_array_add (results->priv->error_code_array, pk_item_error_code_ref (item));
return TRUE;
}
@@ -512,23 +405,20 @@ pk_results_add_error_code (PkResults *results, PkErrorCodeEnum code_enum, const
/**
* pk_results_add_message:
* @results: a valid #PkResults instance
+ * @item: the object to add to the array
*
* Adds some message details to the results set.
*
* Return value: %TRUE if the value was set
**/
gboolean
-pk_results_add_message (PkResults *results, PkMessageEnum message_enum, const gchar *details)
+pk_results_add_message (PkResults *results, PkItemMessage *item)
{
- PkItemMessage *item;
-
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
+ g_return_val_if_fail (item != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkItemMessage, 1);
- item->message = message_enum;
- item->details = g_strdup (details);
- g_ptr_array_add (results->priv->message_array, item);
+ g_ptr_array_add (results->priv->message_array, pk_item_message_ref (item));
return TRUE;
}
@@ -831,19 +721,21 @@ pk_results_get_error_code_array (PkResults *results)
*
* Gets the last error code from the transaction.
*
- * Return value: A #PkItemErrorCode, or %NULL
+ * Return value: A #PkItemErrorCode, or %NULL, free with pk_item_error_code_unref()
**/
-const PkItemErrorCode *
+PkItemErrorCode *
pk_results_get_error_code (PkResults *results)
{
GPtrArray *array;
+ PkItemErrorCode *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
array = results->priv->error_code_array;
if (array->len == 0)
return NULL;
- return g_ptr_array_index (array, 0);
+ item = g_ptr_array_index (array, 0);
+ return pk_item_error_code_ref (item);
}
/**
@@ -995,7 +887,9 @@ pk_results_test (gpointer user_data)
/************************************************************/
egg_test_title (test, "add package");
- ret = pk_results_add_package (results, PK_INFO_ENUM_AVAILABLE, "gnome-power-manager;0.1.2;i386;fedora", "Power manager for GNOME");
+ item = pk_item_package_new (PK_INFO_ENUM_AVAILABLE, "gnome-power-manager;0.1.2;i386;fedora", "Power manager for GNOME");
+ ret = pk_results_add_package (results, item);
+ pk_item_package_unref (item);
egg_test_assert (test, ret);
/************************************************************/
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index f469d5e..f9179a7 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -79,87 +79,38 @@ gboolean pk_results_set_exit_code (PkResults *results,
/* add */
gboolean pk_results_add_package (PkResults *results,
- PkInfoEnum info_enum,
- const gchar *package_id,
- const gchar *summary);
+ PkItemPackage *item);
gboolean pk_results_add_details (PkResults *results,
- const gchar *package_id,
- const gchar *license,
- PkGroupEnum group_enum,
- const gchar *description,
- const gchar *url,
- guint64 size);
+ PkItemDetails *item);
gboolean pk_results_add_update_detail (PkResults *results,
- const gchar *package_id,
- const gchar *updates,
- const gchar *obsoletes,
- const gchar *vendor_url,
- const gchar *bugzilla_url,
- const gchar *cve_url,
- PkRestartEnum restart_enum,
- const gchar *update_text,
- const gchar *changelog,
- PkUpdateStateEnum state_enum,
- GDate *issued,
- GDate *updated);
+ PkItemUpdateDetail *item);
gboolean pk_results_add_category (PkResults *results,
- const gchar *parent_id,
- const gchar *cat_id,
- const gchar *name,
- const gchar *summary,
- const gchar *icon);
+ PkItemCategory *item);
gboolean pk_results_add_distro_upgrade (PkResults *results,
- PkUpdateStateEnum state_enum,
- const gchar *name,
- const gchar *summary);
+ PkItemDistroUpgrade *item);
gboolean pk_results_add_require_restart (PkResults *results,
- PkRestartEnum restart_enum,
- const gchar *package_id);
+ PkItemRequireRestart *item);
gboolean pk_results_add_transaction (PkResults *results,
- const gchar *tid,
- const gchar *timespec,
- gboolean succeeded,
- PkRoleEnum role_enum,
- guint duration,
- const gchar *data,
- guint uid,
- const gchar *cmdline);
+ PkItemTransaction *item);
gboolean pk_results_add_files (PkResults *results,
- const gchar *package_id,
- gchar **files);
+ PkItemFiles *item);
gboolean pk_results_add_repo_signature_required (PkResults *results,
- const gchar *package_id,
- const gchar *repository_name,
- const gchar *key_url,
- const gchar *key_userid,
- const gchar *key_id,
- const gchar *key_fingerprint,
- const gchar *key_timestamp,
- PkSigTypeEnum type_enum);
+ PkItemRepoSignatureRequired *item);
gboolean pk_results_add_eula_required (PkResults *results,
- const gchar *eula_id,
- const gchar *package_id,
- const gchar *vendor_name,
- const gchar *license_agreement);
+ PkItemEulaRequired *item);
gboolean pk_results_add_media_change_required (PkResults *results,
- PkMediaTypeEnum media_type_enum,
- const gchar *media_id,
- const gchar *media_text);
+ PkItemMediaChangeRequired *item);
gboolean pk_results_add_repo_detail (PkResults *results,
- const gchar *repo_id,
- const gchar *description,
- gboolean enabled);
+ PkItemRepoDetail *item);
gboolean pk_results_add_error_code (PkResults *results,
- PkErrorCodeEnum code_enum,
- const gchar *details);
+ PkItemErrorCode *item);
gboolean pk_results_add_message (PkResults *results,
- PkMessageEnum message_enum,
- const gchar *details);
+ PkItemMessage *item);
/* get single data */
PkExitEnum pk_results_get_exit_code (PkResults *results);
PkPackageSack *pk_results_get_package_sack (PkResults *results);
-const PkItemErrorCode *pk_results_get_error_code (PkResults *results);
+PkItemErrorCode *pk_results_get_error_code (PkResults *results);
PkRestartEnum pk_results_get_require_restart_worst (PkResults *results);
/* get array objects */
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index b4a723c..f75f7b0 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -57,8 +57,8 @@ main (int argc, char **argv)
pk_package_id_test (test);
pk_package_ids_test (test);
pk_progress_test (test);
- pk_results_test (test);
pk_item_test (test);
+ pk_results_test (test);
pk_package_test (test);
pk_control_test (test);
pk_client_test (test);
commit 5dae094ef7d9731f270cd6748e445a871ff69d1d
Author: sandeeps <sandeeps at fedoraproject.org>
Date: Tue Sep 8 12:45:45 2009 +0000
Sending translation for Marathi
diff --git a/po/mr.po b/po/mr.po
index c3b7e4f..e7f605e 100644
--- a/po/mr.po
+++ b/po/mr.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-07 02:36+0000\n"
-"PO-Revision-Date: 2009-09-07 13:10+0530\n"
+"POT-Creation-Date: 2009-09-08 08:28+0000\n"
+"PO-Revision-Date: 2009-09-08 18:13+0530\n"
"Last-Translator: Sandeep Shedmake <sshedmak at redhat.com>\n"
"Language-Team: Marathi <fedora-trans-mr at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -19,106 +19,106 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:146
msgid "Transaction"
msgstr "वà¥à¤¯à¤µà¤¹à¤¾à¤°"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:148
msgid "System time"
msgstr "पà¥à¤°à¤£à¤¾à¤²à¥ वà¥à¤³"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "Succeeded"
msgstr "यशसà¥à¤µà¥"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "True"
msgstr "True"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "False"
msgstr "False"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:152
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "Role"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "Duration"
msgstr "à¤à¤¾à¤²à¤¾à¤µà¤§à¥"
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "(seconds)"
msgstr "(सà¥à¤à¤à¤¦)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:161
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "à¤à¤¦à¥à¤¶ à¤à¤³"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:163
msgid "User ID"
msgstr "वापरà¤à¤°à¥à¤¤à¤¾ ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:170
msgid "Username"
msgstr "वापरà¤à¤°à¥à¤¤à¤¾ नाव"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:174
msgid "Real name"
msgstr "वासà¥à¤¤à¤µà¤¿à¤ नाव"
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:182
msgid "Affected packages:"
msgstr "पà¥à¤°à¤à¤¾à¤µà¥à¤¤ सà¤à¤à¥à¤²:"
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:184
msgid "Affected packages: None"
msgstr "पà¥à¤°à¤à¤¾à¤µà¥à¤¤ सà¤à¤à¥à¤²: à¤à¤¾à¤¹à¤¿à¤ नाहà¥"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336 ../client/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "à¤à¤¾à¤²à¤¿à¤² सà¤à¤à¥à¤² à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339 ../client/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "à¤à¤¾à¤²à¥à¤² सà¤à¤à¥à¤² पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ à¤à¤°à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342 ../client/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "à¤à¤¾à¤²à¥à¤² सà¤à¤à¥à¤² सà¥à¤§à¤¾à¤°à¥à¤¤ à¤à¤°à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345 ../client/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "à¤à¤¾à¤²à¥à¤² सà¤à¤à¥à¤²à¤¾à¤à¤à¥ पà¥à¤¨à¤à¤ªà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापन à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348 ../client/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "à¤à¤¾à¤²à¥à¤² सà¤à¤à¥à¤²à¤¾à¤à¤à¥ à¤à¤ à¤à¤µà¥à¤¤à¥à¤¤à¥ à¤à¤®à¥ à¤à¤°à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:204
msgid "Distribution"
msgstr "वितरण"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:206
msgid "Type"
msgstr "पà¥à¤°à¤à¤¾à¤°"
@@ -126,44 +126,44 @@ msgstr "पà¥à¤°à¤à¤¾à¤°"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
msgid "Summary"
msgstr "साराà¤à¤¶"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:218
msgid "Category"
msgstr "पà¥à¤°à¤µà¤°à¥à¤"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:220
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:223
msgid "Parent"
msgstr "मà¥à¤à¥à¤¯"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:226
msgid "Name"
msgstr "नाव"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:232
msgid "Icon"
msgstr "à¤à¤¿à¤¨à¥à¤¹"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:246
msgid "Details about the update:"
msgstr "à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤ विषयॠतपशà¥à¤²:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:252
#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
@@ -172,121 +172,121 @@ msgstr[0] "सà¤à¤à¥à¤²"
msgstr[1] "सà¤à¤à¥à¤²à¥"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:255
msgid "Updates"
msgstr "à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:259
msgid "Obsoletes"
msgstr "à¤à¥à¤£à¥"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:263
#: ../client/pk-task-text.c:154
msgid "Vendor"
msgstr "विà¤à¥à¤°à¥à¤¤à¤¾"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:267
msgid "Bugzilla"
msgstr "बà¤à¤à¥à¤²à¤¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:271
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:275
msgid "Restart"
msgstr "पà¥à¤¨à¥à¤¹à¤¾ सà¥à¤°à¥ à¤à¤°à¤¾"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:279
msgid "Update text"
msgstr "à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤ पाठà¥à¤¯"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:283
msgid "Changes"
msgstr "बदल"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:287
msgid "State"
msgstr "सà¥à¤¤à¤°"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:292
msgid "Issued"
msgstr "वितरण दिनाà¤à¤"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:297
msgid "Updated"
msgstr "à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤à¥à¤¤"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:315
msgid "Enabled"
msgstr "à¤à¤¾à¤°à¥à¤¯à¤à¥à¤·à¤® à¤à¥à¤²à¥"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:318
msgid "Disabled"
msgstr "à¤
à¤à¤¾à¤°à¥à¤¯à¤à¥à¤·à¤® à¤à¥à¤²à¥"
-#: ../client/pk-console.c:555 ../client/pk-console.c:557
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "à¤à¤à¥à¤à¥à¤µà¤¾à¤°à¥"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "à¤
परिà¤à¥à¤¤"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:340
msgid "System restart required by:"
msgstr "पà¥à¤°à¤£à¤¾à¤²à¥ पà¥à¤¨à¥à¤¹à¤¾ à¤à¤¾à¤²à¥ à¤à¤°à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:343
msgid "Session restart required:"
msgstr "सतà¥à¤° पà¥à¤¨à¥à¤¹à¤¾ à¤à¤¾à¤²à¥ à¤à¤°à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:346
msgid "System restart (security) required by:"
msgstr "पà¥à¤°à¤£à¤¾à¤²à¥ पà¥à¤¨à¤ à¤à¤¾à¤²à¥ à¤à¤°à¤£à¥ (सà¥à¤°à¤à¥à¤·à¤¾) à¤à¤µà¤¶à¥à¤¯à¤:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:349
msgid "Session restart (security) required:"
msgstr "सतà¥à¤° पà¥à¤¨à¤ à¤à¤¾à¤²à¥ à¤à¤°à¤£à¥ (सà¥à¤°à¤à¥à¤·à¤¾) à¤à¤µà¤¶à¥à¤¯à¤:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:352
msgid "Application restart required by:"
msgstr "à¤
नà¥à¤ªà¥à¤°à¤¯à¥à¤ पà¥à¤¨à¥à¤¹à¤¾ à¤à¤¾à¤²à¥ à¤à¤°à¤£à¥ à¤à¤µà¤¶à¥à¤¯à¤:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:541
msgid "Please restart the computer to complete the update."
msgstr "à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤ पà¥à¤°à¥à¤£ à¤à¤°à¤£à¥à¤¯à¤¾à¤à¤°à¥à¤¤à¤¾ à¤à¥à¤ªà¤¯à¤¾ सà¤à¤à¤£à¤ पà¥à¤¨à¥à¤¹à¤¾ à¤à¤¾à¤²à¥ à¤à¤°à¤¾."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:544
msgid "Please logout and login to complete the update."
msgstr "à¤à¥à¤ªà¤¯à¤¾ वापरà¤à¤°à¥à¤¤à¤¾ बदला व à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤ पà¥à¤°à¥à¤£ à¤à¤°à¤£à¥à¤¯à¤¾à¤à¤°à¥à¤¤à¤¾ पà¥à¤°à¤µà¥à¤¶ à¤à¤°à¤¾."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "à¤à¥à¤ªà¤¯à¤¾ à¤
नà¥à¤ªà¥à¤°à¤¯à¥à¤ à¤à¥à¤¯à¤¾à¤¨à¥à¤°à¥à¤ª वापरलॠà¤à¤¾à¤¤à¥ तà¥à¤¯à¤¾à¤¨à¥à¤°à¥à¤ª पà¥à¤¨à¥à¤¹à¤¾ à¤à¤¾à¤²à¥ à¤à¤°à¤¾."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:547
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -295,7 +295,7 @@ msgstr ""
"पà¥à¤¨à¤à¤à¤¾à¤²à¥ à¤à¤°à¤¾."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:550
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -304,292 +304,292 @@ msgstr ""
"पà¥à¤¨à¤ पà¥à¤°à¤µà¥à¤¶ à¤à¤°à¤¾."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "सà¤à¤à¥à¤² %s à¤à¤§à¤¿à¤ªà¤¾à¤¸à¥à¤¨à¤ पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ à¤à¤¹à¥"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:817
#, 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: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
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "à¤à¤à¤¤à¤°à¥à¤ तà¥à¤°à¥à¤à¥: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../client/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "बदलाà¤à¤¶à¥ पà¥à¤¢à¥ à¤à¤¾à¤¯à¤à¥?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:881 ../client/pk-console.c:953
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "सà¤à¤à¥à¤² पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापन रदà¥à¤¦ à¤à¥à¤²à¥ à¤à¥à¤²à¥!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "हॠसाधन सà¤à¤à¥à¤² पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "हॠसाधन फाà¤à¤² पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "या साधन दà¥à¤µà¤¾à¤°à¥ %s à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥ शà¤à¥à¤¯ नाहà¥: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "या साधन दà¥à¤µà¤¾à¤°à¥ सà¤à¤à¥à¤² à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥ à¤
शà¤à¥à¤¯: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "à¤
à¤à¤¾à¤ सà¤à¤à¥à¤² à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥ à¤à¤¾à¤²à¥ ठà¥à¤µà¤¾à¤¯à¤à¥?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1109
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "सà¤à¤à¥à¤² à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥ रदà¥à¤¦ à¤à¥à¤²à¥ à¤à¥à¤²à¥!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "हॠसाधन सà¤à¤à¥à¤² %s न à¤à¤¢à¤³à¤²à¥à¤¯à¤¾à¤®à¥à¤³à¥ डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "हॠसाधन सà¤à¤à¥à¤² डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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
+#: ../client/pk-console.c:1270
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:1304 ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "हॠसाधन %s à¤à¤°à¥à¤¤à¤¾ à¤à¤µà¤¶à¥à¤¯à¤à¤¤à¤¾ पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "हॠसाधन %s à¤à¤°à¥à¤¤à¤¾ à¤
वलà¤à¤¬à¤¨ पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤°à¥ शà¤à¤¨à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "हॠसाधन %s à¤à¤°à¥à¤¤à¤¾ सà¤à¤à¥à¤² तपशà¥à¤² पà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "हॠसाधन %s à¤à¤°à¥à¤¤à¤¾ फाà¤à¤² शà¥à¤§à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1401
#, 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:1424
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "फाà¤à¤² à¤à¤§à¤¿à¤ªà¤¾à¤¸à¥à¤¨à¤ à¤
सà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ à¤à¤¹à¥: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "सà¤à¤à¥à¤² यादॠपà¥à¤°à¤¾à¤ªà¥à¤¤ à¤à¤°à¤¤ à¤à¤¹à¥"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1446
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "डिसà¥à¤ वर साठविणà¥à¤¯à¤¾à¤¸ à¤
पयशà¥"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "फाà¤à¤² à¤
सà¥à¤¤à¤¿à¤¤à¥à¤µà¤¾à¤¤ नाहà¥: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "समावà¥à¤· à¤à¤°à¤£à¥à¤¯à¤¾à¤à¥à¤à¥ सà¤à¤à¥à¤²"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥à¤¯à¤¾à¤à¥à¤à¥ सà¤à¤à¥à¤²"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "à¤à¥à¤ लà¥à¤¹à¥ नवà¥à¤¨ सà¤à¤à¥à¤² पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ à¤à¤°à¤£à¥à¤¯à¤¾à¤à¥ à¤à¤µà¤¶à¥à¤¯à¤à¤¤à¤¾ नाहà¥"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापन à¤à¤°à¤¾"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "सà¤à¤à¥à¤² à¤à¤°à¥à¤¤à¤¾ शà¥à¤§à¤¤ à¤à¤¹à¥: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "à¤à¤¢à¤³à¤²à¥ नाहà¥."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, 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:1627
+#: ../client/pk-console.c:1626
#: ../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:1663
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "हॠसाधन %s à¤à¤°à¥à¤¤à¤¾ à¤
दà¥à¤¯à¤¯à¤¾à¤µà¤¤ तपशà¥à¤² शà¥à¤§à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1670
#, 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:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "तà¥à¤°à¥à¤à¥:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:369
msgid "Package description"
msgstr "सà¤à¤à¥à¤² वरà¥à¤£à¤¨"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:387
msgid "Message:"
msgstr "सà¤à¤¦à¥à¤¶:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:406
msgid "Package files"
msgstr "सà¤à¤à¥à¤² फाà¤à¤²"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:401
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:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "रà¥à¤ªà¥à¤à¤à¤°à¥ सà¥à¤µà¤¾à¤à¥à¤·à¤°à¥ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800 ../client/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "तà¥à¤®à¥à¤¹à¥ हॠसà¥à¤µà¤¾à¤à¥à¤·à¤°à¥ सà¥à¤µà¥à¤à¤¾à¤°à¤¤à¤¾?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804 ../client/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "सà¥à¤µà¤¾à¤à¥à¤·à¤°à¥ सà¥à¤µà¥à¤à¤¾à¤°à¤²à¥ à¤à¥à¤²à¥ नाहà¥."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "वापरà¤à¤°à¥à¤¤à¤¾ परवाना à¤à¤°à¤¾à¤° à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1846
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "तà¥à¤®à¥à¤¹à¥ हा परवाना सà¥à¤µà¥à¤à¤¾à¤°à¤£à¥à¤¯à¤¾à¤à¥ à¤à¤¾à¤¤à¥à¤°à¥ दà¥à¤¤à¤¾?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1850
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "परवाना फà¥à¤à¤¾à¤³à¤²à¥ à¤à¥à¤²à¥."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:819
msgid "The daemon crashed mid-transaction!"
msgstr "डिमन वà¥à¤¯à¤µà¤¹à¤¾à¤°à¤à¥à¤¯à¤¾ मधà¥à¤®à¤§ à¤à¥à¤°à¥
श à¤à¤¾à¤²à¥!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:853
msgid "PackageKit Console Interface"
msgstr "PackageKit à¤à¤¨à¥à¤¸à¥à¤² सà¤à¤µà¤¾à¤¦"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:855
msgid "Subcommands:"
msgstr "à¤à¤ªà¤à¤¦à¥à¤¶:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
-#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
-#: ../client/pk-monitor-test.c:282
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:969
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:225
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -597,149 +597,149 @@ msgid "Show extra debugging information"
msgstr "à¤
à¤à¤¾à¤ डिबà¤à¥à¤à¤ माहितॠदाà¤à¤µà¤¾"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:972
#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "à¤à¤¾à¤°à¥à¤¯à¤à¥à¤°à¤® à¤à¤µà¥à¤¤à¥à¤¤à¥ दाà¤à¤µà¤¾ व बाहà¥à¤° पडा"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:975
msgid "Set the filter, e.g. installed"
msgstr "à¤à¤¾à¤³à¤£à¥ निशà¥à¤à¤¿à¤¤ à¤à¤°à¤¾, à¤.दा. पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:978
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:2063
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "हॠसाधन पà¥à¤°à¤£à¤¾à¤²à¥ DBUS शॠà¤à¥à¤³à¤µà¤£à¥ सà¥à¤¥à¤¾à¤ªà¥à¤¤ à¤à¤°à¤£à¥à¤¯à¤¾à¤¸ à¤
शà¤à¥à¤¯."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1055
msgid "The filter specified was invalid"
msgstr "निशà¥à¤à¤¿à¤¤ à¤à¤¾à¤³à¤£à¥ à¤
वà¥à¤§ नà¥à¤°à¥à¤ª à¤à¤¢à¤³à¤²à¥"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1074
msgid "A search type is required, e.g. name"
msgstr "शà¥à¤§ पà¥à¤°à¤à¤¾à¤° à¤à¤µà¤¶à¥à¤¯à¤, à¤.दा. नाव"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
-#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1081 ../client/pk-console-test.c:1093
+#: ../client/pk-console-test.c:1105 ../client/pk-console-test.c:1117
msgid "A search term is required"
msgstr "शà¥à¤§ सà¤à¤à¥à¤à¤¾ à¤à¤µà¤¶à¥à¤¯à¤"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1127
msgid "Invalid search type"
msgstr "à¤
वà¥à¤§ शà¥à¤§ पà¥à¤°à¤à¤¾à¤°"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "पà¥à¤°à¤¤à¤¿à¤·à¥à¤ पन à¤à¤°à¥à¤¤à¤¾ सà¤à¤à¥à¤² नाव à¤à¤¿à¤à¤µà¤¾ फाà¤à¤²à¤¨à¤¾à¤µ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1154
msgid "A type, key_id and package_id are required"
msgstr "पà¥à¤°à¤à¤¾à¤°, key_id व package_id à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1165
msgid "A package name to remove is required"
msgstr "à¤à¤¾à¤¢à¥à¤¨ à¤à¤¾à¤à¤£à¥à¤¯à¤¾à¤à¥à¤à¥ सà¤à¤à¥à¤² नाव"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1174
msgid "A destination directory and the package names to download are required"
msgstr "लà¤à¥à¤·à¥à¤¯ डिरà¥à¤à¥à¤à¥à¤°à¥ व डाà¤à¤¨à¤²à¥à¤¡à¤à¥à¤à¥ सà¤à¤à¥à¤² नावॠà¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1181
msgid "Directory not found"
msgstr "डिरà¥à¤à¥à¤à¥à¤°à¥ à¤à¤¢à¤³à¤²à¥ नाहà¥"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1190
msgid "A licence identifier (eula-id) is required"
msgstr "परवाना à¤à¤³à¤ (eula-id) à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1201
msgid "A transaction identifier (tid) is required"
msgstr "transaction identifier (tid) à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1222
msgid "A package name to resolve is required"
msgstr "निरà¥à¤§à¤¾à¤°à¤£ à¤à¤°à¥à¤¤à¤¾ सà¤à¤à¥à¤² नाव à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1244
msgid "A repository name is required"
msgstr "रà¥à¤ªà¥à¤à¤¿à¤à¤°à¥ नाव à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1255
msgid "A repo name, parameter and value are required"
msgstr "रà¥à¤ªà¥ नाव, बाब व मà¥à¤²à¥à¤¯ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1272
msgid "An action, e.g. 'update-system' is required"
msgstr "à¤à¥à¤¤à¥, à¤.दा. 'update-system' à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1279
msgid "A correct role is required"
msgstr "वरà¥à¤¤à¤®à¤¾à¤¨ à¤à¥à¤®à¤¿à¤à¤¾ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:934
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:2352 ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
-#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
-#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1289
+#: ../client/pk-console-test.c:1304 ../client/pk-console-test.c:1313
+#: ../client/pk-console-test.c:1333 ../client/pk-console-test.c:1342
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:288
msgid "A package name is required"
msgstr "सà¤à¤à¥à¤² नाव à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1322
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:2409
+#: ../client/pk-console.c:2408
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:2419 ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "à¤à¤à¤¡à¤£à¥à¤¯à¤¾à¤à¤°à¥à¤¤à¤¾ यादॠफाà¤à¤² à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1402
#, c-format
msgid "Option '%s' is not supported"
msgstr "परà¥à¤¯à¤¾à¤¯ '%s' समरà¥à¤¥à¥à¤¤ नाहà¥"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "या à¤à¥à¤°à¤¿à¤¯à¤¾ à¤à¤°à¥à¤¤à¤¾ à¤
यà¥à¤à¥à¤¯ परवानà¤à¥"
@@ -747,34 +747,39 @@ msgstr "या à¤à¥à¤°à¤¿à¤¯à¤¾ à¤à¤°à¥à¤¤à¤¾ à¤
यà¥à¤à¥à¤¯ परवà¤
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1414
msgid "Command failed"
msgstr "à¤à¤¦à¥à¤¶ à¤
पयशà¥"
+#: ../client/pk-console-shared.c:53 ../client/pk-tools-common.c:51
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "à¤à¥à¤ªà¤¯à¤¾ 1 तॠ%i à¤à¥à¤°à¤®à¤¾à¤à¤ निवडा: "
+
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+#: ../client/pk-console-shared.c:153 ../client/pk-tools-common.c:200
msgid "More than one package matches:"
msgstr "à¤à¤à¤¾à¤ªà¥à¤à¥à¤·à¤¾ à¤à¤¾à¤¸à¥à¤¤ सà¤à¤à¥à¤² à¤à¥à¤³à¤µà¤£à¥:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+#: ../client/pk-console-shared.c:162 ../client/pk-tools-common.c:207
msgid "Please choose the correct package: "
msgstr "à¤à¥à¤ªà¤¯à¤¾ यà¥à¤à¥à¤¯ सà¤à¤à¥à¤² निवडा: "
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734
+#: ../client/pk-console-test.c:571
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "हॠसाधन à¤à¤ªà¤²à¤¬à¥à¤§ सà¤à¤à¥à¤² पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ à¤à¤°à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762
+#: ../client/pk-console-test.c:599
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "हॠसाधन पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापà¥à¤¤ सà¤à¤à¥à¤² शà¥à¤§à¥ शà¤à¤²à¥ नाहà¥: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
+#: ../client/pk-console-test.c:627 ../client/pk-console-test.c:655
#, c-format
msgid "This tool could not find the package: %s"
msgstr "हॠसाधन सà¤à¤à¥à¤² शà¥à¤§à¥ शà¤à¤²à¥ नाहà¥: %s"
@@ -783,135 +788,143 @@ msgstr "हॠसाधन सà¤à¤à¥à¤² शà¥à¤§à¥ शà¤à¤²à¥ नाहà
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
-#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
-#: ../client/pk-console-test.c:950
+#: ../client/pk-console-test.c:683 ../client/pk-console-test.c:711
+#: ../client/pk-console-test.c:739 ../client/pk-console-test.c:767
+#: ../client/pk-console-test.c:795
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "हॠसाधन सरà¥à¤µ सà¤à¤à¥à¤² शà¥à¤§à¥ शà¤à¤²à¥ नाहà¥: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1003
+msgid "Failed to contact PackageKit"
+msgstr "PackageKit सह सà¤à¤ªà¤°à¥à¤ साधणà¥à¤¯à¤¾à¤¸ à¤
पयशà¥"
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1261
+#: ../client/pk-console-test.c:1133
msgid "A package name to install is required"
msgstr "पà¥à¤°à¤¤à¤¿à¤·à¥à¤ ापनà¤à¤°à¥à¤¤à¤¾ सà¤à¤à¥à¤²à¤à¥ नाव à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1270
+#: ../client/pk-console-test.c:1142
msgid "A filename to install is required"
msgstr "पà¥à¤°à¤¤à¤¿à¤·à¥à¤ पन à¤à¤°à¥à¤¤à¤¾ फाà¤à¤²à¤à¥à¤¨à¤¾à¤µ à¤à¤µà¤¶à¥à¤¯à¤ à¤à¤¹à¥"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¤ à¤à¤¹à¥"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "सà¤à¤à¥à¤² डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¤ à¤à¤¹à¥"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "à¤
वलà¤à¤¬à¤¨ डाà¤à¤¨à¤²à¥à¤¡ à¤à¤°à¤¤ à¤à¤¹à¥"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:190
+#: ../client/pk-generate-pack.c:188 ../client/pk-generate-pack-test.c:228
msgid "Set the file name of dependencies to be excluded"
msgstr "वà¤à¤³à¤£à¥à¤¯à¤¾à¤à¥à¤à¥ à¤
वलà¤à¤¬à¤¨à¤à¥ फाà¤à¤² नाव निशà¥à¤à¤¿à¤¤ à¤à¤°à¤¾"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:193
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:231
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:196
+#: ../client/pk-generate-pack.c:194 ../client/pk-generate-pack-test.c:234
msgid "The package to be put into the service pack"
msgstr "सà¥à¤µà¤¾ पà¥
ठà¤
à¤à¤¤à¤°à¥à¤à¤¤ समाविषà¥à¤ à¤à¤°à¤£à¥à¤¯à¤¾à¤à¥à¤à¥ सà¤à¤à¥à¤²"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:199
+#: ../client/pk-generate-pack.c:197 ../client/pk-generate-pack-test.c:237
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:227
+#: ../client/pk-generate-pack.c:225 ../client/pk-generate-pack-test.c:272
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:235
+#: ../client/pk-generate-pack.c:233 ../client/pk-generate-pack-test.c:280
msgid "Both options selected."
msgstr "दà¥à¤¨à¥à¤¹à¥ परà¥à¤¯à¤¾à¤¯ निवडलà¥."
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:251
+#: ../client/pk-generate-pack.c:249 ../client/pk-generate-pack-test.c:296
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:269 ../client/pk-generate-pack.c:275
+#. 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-test.c:324 ../client/pk-generate-pack-test.c:330
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:282
+#: ../client/pk-generate-pack.c:280 ../client/pk-generate-pack-test.c:337
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
msgstr "PackageKit ला libarchive समरà¥à¤¥à¤¨ सह बिलà¥à¤ न à¤à¥à¤²à¥à¤¯à¤¾à¤®à¥à¤³à¥ Service पà¥à¤ बनवणॠशà¤à¥à¤¯ नाहà¥."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:293
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:348
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:309
+#: ../client/pk-generate-pack.c:307 ../client/pk-generate-pack-test.c:364
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:312
+#: ../client/pk-generate-pack.c:310 ../client/pk-generate-pack-test.c:367
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:325
+#: ../client/pk-generate-pack.c:323 ../client/pk-generate-pack-test.c:380
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:335
+#: ../client/pk-generate-pack.c:333 ../client/pk-generate-pack-test.c:392
msgid "Failed to open package list."
msgstr "सà¤à¤à¥à¤² यादॠà¤à¤à¤¡à¤£à¥à¤¯à¤¾à¤¸ à¤
पयशà¥."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:346
+#: ../client/pk-generate-pack.c:344 ../client/pk-generate-pack-test.c:401
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:350
+#: ../client/pk-generate-pack.c:348 ../client/pk-generate-pack-test.c:405
#, 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:367
+#: ../client/pk-generate-pack.c:365 ../client/pk-generate-pack-test.c:413
msgid "Creating service pack..."
msgstr "सà¥à¤µà¤¾ पà¥
ठबनवत à¤à¤¹à¥..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:428
#, c-format
msgid "Service pack created '%s'"
msgstr "सà¥à¤µà¤¾ पà¥
ठ'%s' बनविलà¥"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:379
+#: ../client/pk-generate-pack.c:377 ../client/pk-generate-pack-test.c:433
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' बनविणà¥à¤¯à¤¾à¤¸ à¤
पयशà¥: %s"
@@ -1020,13 +1033,8 @@ msgstr "यà¥à¤à¥à¤¯ मिडà¥à¤¯à¤¾ à¤
à¤à¤¤à¤°à¥à¤à¥à¤¤ à¤à¥à¤²à¥
msgid "The transaction did not proceed."
msgstr "वà¥à¤¯à¤µà¤¹à¤¾à¤° पà¥à¤¢à¥ à¤à¤¾à¤°à¥à¤¯à¤¾à¤¨à¥à¤µà¥à¤¤ à¤à¤¾à¤²à¥ नाहà¥."
-#: ../client/pk-text.c:50
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "à¤à¥à¤ªà¤¯à¤¾ 1 तॠ%i à¤à¥à¤°à¤®à¤¾à¤à¤ निवडा: "
-
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, c-format
msgid "The package could not be found"
msgstr "सà¤à¤à¥à¤² à¤à¤¢à¤³à¤²à¥ नाहà¥"
commit 7c260de47da4cffd02034829bbd1e41a12075d55
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 13:12:54 2009 +0100
trivial: start converting the daemon to use the glib2 types
diff --git a/src/Makefile.am b/src/Makefile.am
index 48895f7..91a8436 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,8 +3,8 @@ AUTOMAKE_OPTIONS = 1.7
NULL =
-PK_GLIB_LIBS = \
- $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la \
+PK_GLIB2_LIBS = \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
$(NULL)
INCLUDES = \
@@ -129,7 +129,7 @@ packagekitd_LDADD = \
$(CONNMAN_LIBS) \
$(DBUS_LIBS) \
$(SQLITE_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(PYTHON_LIBS) \
$(POLKIT_LIBS) \
$(GIO_LIBS) \
@@ -198,7 +198,7 @@ libpackagekit_action_lookup_la_LDFLAGS = \
libpackagekit_action_lookup_la_LIBADD = \
$(GLIB_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(NULL)
endif
@@ -221,7 +221,7 @@ pk_self_test_LDADD = \
$(SQLITE_LIBS) \
$(LIBNM_LIBS) \
$(CONNMAN_LIBS) \
- $(PK_GLIB_LIBS) \
+ $(PK_GLIB2_LIBS) \
$(POLKIT_LIBS) \
$(GIO_LIBS) \
$(ARCHIVE_LIBS) \
diff --git a/src/pk-backend-internal.h b/src/pk-backend-internal.h
index 3fb8ac6..d5316b0 100644
--- a/src/pk-backend-internal.h
+++ b/src/pk-backend-internal.h
@@ -23,7 +23,7 @@
#define __PK_BACKEND_INTERNAL_H
#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "pk-store.h"
#include "pk-backend.h"
diff --git a/src/pk-backend-spawn.c b/src/pk-backend-spawn.c
index 8d463c2..6de0d12 100644
--- a/src/pk-backend-spawn.c
+++ b/src/pk-backend-spawn.c
@@ -38,7 +38,7 @@
#include <glib/gi18n.h>
#include <glib/gprintf.h>
#include <gmodule.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "egg-string.h"
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 5d53098..bd4c93d 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -31,7 +31,7 @@
#include <glib.h>
#include <gmodule.h>
#include <glib/gprintf.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "egg-string.h"
@@ -857,7 +857,6 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
{
gchar *summary_safe = NULL;
PkPackageObj *obj = NULL;
- PkPackageId *id = NULL;
gboolean ret;
g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
@@ -874,14 +873,6 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
/* replace unsafe chars */
summary_safe = pk_strsafe (summary);
- /* check against the old one */
- id = pk_package_id_new_from_string (package_id);
- if (id == NULL) {
- egg_warning ("Failed to parse package_id: '%s'", package_id);
- ret = FALSE;
- goto out;
- }
-
/* fix up available and installed when doing simulate roles */
if (backend->priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_FILES ||
backend->priv->role == PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES ||
@@ -894,7 +885,7 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
}
/* create a new package object AFTER we emulate the info value */
- obj = pk_package_obj_new (info, id, summary_safe);
+ obj = pk_package_obj_new (info, package_id, summary_safe);
if (obj == NULL) {
egg_warning ("Failed to create object summary: '%s'", summary_safe);
ret = FALSE;
@@ -947,7 +938,6 @@ pk_backend_package (PkBackend *backend, PkInfoEnum info, const gchar *package_id
/* success */
ret = TRUE;
out:
- pk_package_id_free (id);
pk_package_obj_free (obj);
g_free (summary_safe);
return ret;
@@ -967,7 +957,6 @@ pk_backend_update_detail (PkBackend *backend, const gchar *package_id,
{
gchar *update_text_safe = NULL;
PkUpdateDetailObj *detail = NULL;
- PkPackageId *id = NULL;
GDate *issued = NULL;
GDate *updated = NULL;
gboolean ret = FALSE;
@@ -989,15 +978,8 @@ pk_backend_update_detail (PkBackend *backend, const gchar *package_id,
/* replace unsafe chars */
update_text_safe = pk_strsafe (update_text);
- /* form PkPackageId struct */
- id = pk_package_id_new_from_string (package_id);
- if (id == NULL) {
- egg_warning ("Failed to parse package_id: '%s'", package_id);
- goto out;
- }
-
/* form PkUpdateDetailObj struct */
- detail = pk_update_detail_obj_new_from_data (id, updates, obsoletes, vendor_url,
+ detail = pk_update_detail_obj_new_from_data (package_id, updates, obsoletes, vendor_url,
bugzilla_url, cve_url, restart,
update_text_safe, changelog,
state, issued, updated);
@@ -1011,7 +993,6 @@ pk_backend_update_detail (PkBackend *backend, const gchar *package_id,
ret = TRUE;
out:
- pk_package_id_free (id);
pk_update_detail_obj_free (detail);
g_free (update_text_safe);
if (issued != NULL)
@@ -1176,7 +1157,6 @@ pk_backend_details (PkBackend *backend, const gchar *package_id,
{
gchar *description_safe = NULL;
PkDetailsObj *details = NULL;
- PkPackageId *id = NULL;
gboolean ret = FALSE;
g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
@@ -1192,15 +1172,8 @@ pk_backend_details (PkBackend *backend, const gchar *package_id,
/* replace unsafe chars */
description_safe = pk_strsafe (description);
- /* form PkPackageId struct */
- id = pk_package_id_new_from_string (package_id);
- if (id == NULL) {
- egg_warning ("Failed to parse package_id: '%s'", package_id);
- goto out;
- }
-
/* form PkDetailsObj struct */
- details = pk_details_obj_new_from_data (id, license, group, description_safe, url, size);
+ details = pk_details_obj_new_from_data (package_id, license, group, description_safe, url, size);
if (details == NULL) {
egg_warning ("Failed to parse details object");
goto out;
@@ -1211,7 +1184,6 @@ pk_backend_details (PkBackend *backend, const gchar *package_id,
ret = TRUE;
out:
- pk_package_id_free (id);
pk_details_obj_free (details);
g_free (description_safe);
return ret;
diff --git a/src/pk-backend.h b/src/pk-backend.h
index 10bd3eb..4811088 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -24,7 +24,7 @@
#include <glib.h>
#include <gmodule.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "egg-string.h"
diff --git a/src/pk-cache.c b/src/pk-cache.c
index 1c7aadb..1594ab8 100644
--- a/src/pk-cache.c
+++ b/src/pk-cache.c
@@ -27,7 +27,7 @@
#include <glib/gi18n.h>
#include <glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "pk-cache.h"
@@ -39,7 +39,7 @@ struct PkCachePrivate
{
PkConf *conf;
gboolean use_update_cache;
- PkPackageList *updates_cache;
+ GPtrArray *updates_cache;
};
G_DEFINE_TYPE (PkCache, pk_cache, G_TYPE_OBJECT)
@@ -48,7 +48,7 @@ static gpointer pk_cache_object = NULL;
/**
* pk_cache_get_updates:
**/
-PkPackageList *
+GPtrArray *
pk_cache_get_updates (PkCache *cache)
{
g_return_val_if_fail (PK_IS_CACHE (cache), NULL);
@@ -66,7 +66,7 @@ pk_cache_get_updates (PkCache *cache)
* pk_cache_set_updates:
**/
gboolean
-pk_cache_set_updates (PkCache *cache, PkPackageList *list)
+pk_cache_set_updates (PkCache *cache, GPtrArray *list)
{
g_return_val_if_fail (PK_IS_CACHE (cache), FALSE);
g_return_val_if_fail (list != NULL, FALSE);
diff --git a/src/pk-cache.h b/src/pk-cache.h
index 7154665..6678841 100644
--- a/src/pk-cache.h
+++ b/src/pk-cache.h
@@ -23,7 +23,7 @@
#define __PK_CACHE_H
#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
G_BEGIN_DECLS
@@ -50,9 +50,9 @@ typedef struct
GType pk_cache_get_type (void);
PkCache *pk_cache_new (void);
-PkPackageList *pk_cache_get_updates (PkCache *cache);
+GPtrArray *pk_cache_get_updates (PkCache *cache);
gboolean pk_cache_set_updates (PkCache *cache,
- PkPackageList *list);
+ GPtrArray *list);
gboolean pk_cache_invalidate (PkCache *cache);
G_END_DECLS
diff --git a/src/pk-conf.c b/src/pk-conf.c
index ffab018..6cc2fc8 100644
--- a/src/pk-conf.c
+++ b/src/pk-conf.c
@@ -31,7 +31,7 @@
#include <glib/gi18n.h>
#include <glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "pk-conf.h"
diff --git a/src/pk-engine.c b/src/pk-engine.c
index c308b9e..1aad259 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -37,7 +37,7 @@
#include <glib/gstdio.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#ifdef USE_SECURITY_POLKIT
#include <polkit/polkit.h>
#endif
diff --git a/src/pk-file-monitor.c b/src/pk-file-monitor.c
index 748f5be..7e5737e 100644
--- a/src/pk-file-monitor.c
+++ b/src/pk-file-monitor.c
@@ -36,7 +36,7 @@
#include <glib/gi18n.h>
#include <gio/gio.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "pk-conf.h"
diff --git a/src/pk-network-stack.h b/src/pk-network-stack.h
index fa5d161..362c556 100644
--- a/src/pk-network-stack.h
+++ b/src/pk-network-stack.h
@@ -22,7 +22,7 @@
#include <glib-object.h>
#include <dbus/dbus-glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
G_BEGIN_DECLS
diff --git a/src/pk-network.h b/src/pk-network.h
index 2ec6a07..60f71e6 100644
--- a/src/pk-network.h
+++ b/src/pk-network.h
@@ -30,7 +30,7 @@
#define __PK_NETWORK_H
#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
G_BEGIN_DECLS
diff --git a/src/pk-polkit-action-lookup.c b/src/pk-polkit-action-lookup.c
index 24dd656..c1d3776 100644
--- a/src/pk-polkit-action-lookup.c
+++ b/src/pk-polkit-action-lookup.c
@@ -23,7 +23,7 @@
#include "config.h"
#include <polkitbackend/polkitbackend.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include <glib/gi18n-lib.h>
#define PK_TYPE_ACTION_LOOKUP (pk_action_lookup_get_type())
@@ -256,7 +256,7 @@ out:
static gchar *
pk_action_lookup_package_ids_to_string (gchar **package_ids)
{
- PkPackageId *id;
+ gchar **split;
GPtrArray *array = NULL;
gchar **names = NULL;
gchar *names_str = NULL;
@@ -278,15 +278,15 @@ pk_action_lookup_package_ids_to_string (gchar **package_ids)
/* create array of name-version */
array = g_ptr_array_new ();
for (i=0; package_ids[i] != NULL; i++) {
- id = pk_package_id_new_from_string (package_ids[i]);
+ split = pk_package_id_split (package_ids[i]);
if (len == 1)
- names_str = g_strdup_printf ("%s-%s (%s)", id->name, id->version, id->data);
+ names_str = g_strdup_printf ("%s-%s (%s)", split[0], split[1], split[3]);
else if (len <= 3)
- names_str = g_strdup_printf ("%s-%s", id->name, id->version);
+ names_str = g_strdup_printf ("%s-%s", split[0], split[1]);
else
- names_str = g_strdup (id->name);
+ names_str = g_strdup (split[0]);
g_ptr_array_add (array, names_str);
- pk_package_id_free (id);
+ g_strfree (split);
}
/* create string */
diff --git a/src/pk-spawn.c b/src/pk-spawn.c
index a2472a8..a088395 100644
--- a/src/pk-spawn.c
+++ b/src/pk-spawn.c
@@ -41,7 +41,7 @@
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "egg-string.h"
diff --git a/src/pk-syslog.h b/src/pk-syslog.h
index 45a67f9..b2612d8 100644
--- a/src/pk-syslog.h
+++ b/src/pk-syslog.h
@@ -23,7 +23,7 @@
#define __PK_SYSLOG_H
#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
G_BEGIN_DECLS
diff --git a/src/pk-transaction-db.c b/src/pk-transaction-db.c
index 8d98d67..a33ae8d 100644
--- a/src/pk-transaction-db.c
+++ b/src/pk-transaction-db.c
@@ -35,7 +35,7 @@
#include <glib/gi18n.h>
#include <sqlite3.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "egg-string.h"
diff --git a/src/pk-transaction-db.h b/src/pk-transaction-db.h
index 5f47cc7..dc44243 100644
--- a/src/pk-transaction-db.h
+++ b/src/pk-transaction-db.h
@@ -23,7 +23,7 @@
#define __PK_TRANSACTION_DB_H
#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
G_BEGIN_DECLS
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index 30fb179..7016ca3 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -28,7 +28,7 @@
#include <stdlib.h>
#include <glib.h>
#include <glib/gi18n.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include <gio/gdesktopappinfo.h>
#include <sqlite3.h>
@@ -48,7 +48,7 @@ struct PkTransactionExtraPrivate
PkBackend *backend;
GMainLoop *loop;
PkObjList *running_exec_list;
- PkPackageList *list;
+ GPtrArray *list;
PkLsof *lsof;
guint finished_id;
guint package_id;
@@ -122,7 +122,6 @@ pk_transaction_extra_set_progress_changed (PkTransactionExtra *extra, guint perc
static const PkPackageObj *
pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *extra, const gchar *filename)
{
- guint size;
const PkPackageObj *obj = NULL;
PkStore *store;
@@ -138,14 +137,13 @@ pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *extra,
g_main_loop_run (extra->priv->loop);
/* check that we only matched one package */
- size = pk_package_list_get_size (extra->priv->list);
- if (size != 1) {
+ if (extra->priv->list->len != 1) {
egg_warning ("not correct size, %i", size);
goto out;
}
/* get the obj */
- obj = pk_package_list_get_obj (extra->priv->list, 0);
+ obj = g_ptr_array_index (extra->priv->list, 0);
if (obj == NULL) {
egg_warning ("cannot get obj");
goto out;
@@ -519,9 +517,7 @@ pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gc
guint len;
gboolean ret;
gchar **files;
- PkPackageId *id;
- id = pk_package_id_new_from_string (package_id);
files = g_strsplit (filelist, ";", 0);
/* check each file */
@@ -541,11 +537,10 @@ pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gc
* suggest an application restart instead */
/* send signal about session restart */
- egg_debug ("package %s updated, and %s is running", id->name, files[i]);
+ egg_debug ("package %s updated, and %s is running", package_id, files[i]);
pk_backend_require_restart (extra->priv->backend, PK_RESTART_ENUM_SESSION, package_id);
}
g_strfreev (files);
- pk_package_id_free (id);
}
#ifdef USE_SECURITY_POLKIT
@@ -696,12 +691,10 @@ pk_transaction_extra_update_files_check_desktop_cb (PkBackend *backend, const gc
gboolean ret;
gchar **files;
gchar **package;
- PkPackageId *id;
gchar *md5;
- id = pk_package_id_new_from_string (package_id);
files = g_strsplit (filelist, ";", 0);
- package = g_strsplit (package_id, ";", 0);
+ package = pk_package_id_split (package_id);
/* check each file */
len = g_strv_length (files);
@@ -723,7 +716,6 @@ pk_transaction_extra_update_files_check_desktop_cb (PkBackend *backend, const gc
}
g_strfreev (files);
g_strfreev (package);
- pk_package_id_free (id);
}
/**
@@ -1123,7 +1115,7 @@ pk_transaction_extra_init (PkTransactionExtra *extra)
extra->priv = PK_POST_TRANS_GET_PRIVATE (extra);
extra->priv->running_exec_list = pk_transaction_extra_string_list_new ();
extra->priv->loop = g_main_loop_new (NULL, FALSE);
- extra->priv->list = pk_package_list_new ();
+ extra->priv->list = g_ptr_array_new_with_free_funcxxx ();
extra->priv->backend = pk_backend_new ();
extra->priv->lsof = pk_lsof_new ();
extra->priv->db = NULL;
diff --git a/src/pk-transaction-list.c b/src/pk-transaction-list.c
index 66b2bc1..a51da7b 100644
--- a/src/pk-transaction-list.c
+++ b/src/pk-transaction-list.c
@@ -37,7 +37,7 @@
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "egg-debug.h"
#include "egg-string.h"
diff --git a/src/pk-transaction-list.h b/src/pk-transaction-list.h
index 83221f0..ffb25a9 100644
--- a/src/pk-transaction-list.h
+++ b/src/pk-transaction-list.h
@@ -23,7 +23,7 @@
#define __PK_TRANSACTION_LIST_H
#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#include "pk-transaction.h"
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 572d1ee..0b28ee4 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -41,7 +41,7 @@
#include <dbus/dbus-glib.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <gio/gio.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
#ifdef USE_SECURITY_POLKIT
#include <polkit/polkit.h>
#endif
@@ -117,7 +117,7 @@ struct PkTransactionPrivate
gchar *sender;
gchar *cmdline;
GPtrArray *require_restart_list;
- PkPackageList *package_list;
+ GPtrArray *package_list;
PkTransactionList *transaction_list;
PkTransactionDb *transaction_db;
@@ -290,7 +290,6 @@ pk_transaction_set_role (PkTransaction *transaction, PkRoleEnum role)
static gchar *
pk_transaction_get_text (PkTransaction *transaction)
{
- PkPackageId *id;
gchar *text = NULL;
const gchar *data;
@@ -299,25 +298,10 @@ pk_transaction_get_text (PkTransaction *transaction)
if (transaction->priv->cached_package_id != NULL) {
data = transaction->priv->cached_package_id;
- /* is a package id? */
- if (pk_package_id_check (data)) {
- id = pk_package_id_new_from_string (data);
- text = g_strdup (id->name);
- pk_package_id_free (id);
- } else {
- text = g_strdup (data);
- }
+ text = pk_package_id_to_printable (data);
} else if (transaction->priv->cached_package_ids != NULL) {
data = transaction->priv->cached_package_ids[0];
- /* is a package id? */
- if (pk_package_id_check (data)) {
- /* FIXME: join all with ';' */
- id = pk_package_id_new_from_string (data);
- text = g_strdup (id->name);
- pk_package_id_free (id);
- } else {
- text = g_strdup (data);
- }
+ text = pk_package_id_to_printable (data);
} else if (transaction->priv->cached_search != NULL) {
text = g_strdup (transaction->priv->cached_search);
}
@@ -594,6 +578,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
gchar **package_ids;
guint i, length;
GPtrArray *list;
+ GPtrArray *package_list;
const PkPackageObj *obj;
gchar *package_id;
@@ -631,9 +616,9 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
/* filter on UPDATING */
list = g_ptr_array_new ();
- length = pk_package_list_get_size (transaction->priv->package_list);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (transaction->priv->package_list, i);
+ package_list = transaction->priv->package_list;
+ for (i=0; i<package_list->len; i++) {
+ obj = g_ptr_array_index (package_list, i);
if (obj->info == PK_INFO_ENUM_UPDATING) {
/* we convert the package_id data to be 'installed' as this means
* we can use the local package database for GetFiles rather than
@@ -664,9 +649,9 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
/* filter on INSTALLING | UPDATING */
list = g_ptr_array_new ();
- length = pk_package_list_get_size (transaction->priv->package_list);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (transaction->priv->package_list, i);
+ package_list = transaction->priv->package_list;
+ for (i=0; i<package_list->len; i++) {
+ obj = g_ptr_array_index (package_list, i);
if (obj->info == PK_INFO_ENUM_INSTALLING || obj->info == PK_INFO_ENUM_UPDATING) {
/* we convert the package_id data to be 'installed' */
package_id = pk_package_id_build (obj->id->name, obj->id->version, obj->id->arch, "installed");
@@ -761,7 +746,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
/* report to syslog */
length = PK_OBJ_LIST(transaction->priv->package_list)->len;
for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (transaction->priv->package_list, i);
+ obj = g_ptr_array_index (transaction->priv->package_list, i);
if (obj->info == PK_INFO_ENUM_REMOVING ||
obj->info == PK_INFO_ENUM_INSTALLING ||
obj->info == PK_INFO_ENUM_UPDATING) {
@@ -1112,7 +1097,7 @@ pk_transaction_update_detail_cb (PkBackend *backend, const PkUpdateDetailObj *de
static gboolean
pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **package_ids)
{
- PkPackageList *updates;
+ GPtrArray *updates;
const PkPackageObj *obj;
guint i;
guint j;
@@ -1147,9 +1132,8 @@ pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **packa
/* find security update packages */
list = g_ptr_array_new ();
- length = pk_package_list_get_size (updates);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (updates, i);
+ for (i=0; i<updates->len; i++) {
+ obj = g_ptr_array_index (updates, i);
if (obj->info == PK_INFO_ENUM_SECURITY) {
package_id = pk_package_id_to_string (obj->id);
egg_debug ("security update: %s", package_id);
@@ -3015,7 +2999,7 @@ pk_transaction_get_updates (PkTransaction *transaction, const gchar *filter, DBu
{
gboolean ret;
GError *error;
- PkPackageList *updates_cache;
+ GPtrArray *updates_cache;
gchar *package_id;
g_return_if_fail (PK_IS_TRANSACTION (transaction));
@@ -3058,14 +3042,12 @@ pk_transaction_get_updates (PkTransaction *transaction, const gchar *filter, DBu
const PkPackageObj *obj;
const gchar *info_text;
guint i;
- guint length;
- length = pk_package_list_get_size (updates_cache);
- egg_debug ("we have cached data (%i) we should use!", length);
+ egg_debug ("we have cached data (%i) we should use!", updates_cache->len);
/* emulate the backend */
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (updates_cache, i);
+ for (i=0; i<updates_cache->len; i++) {
+ obj = g_ptr_array_index (updates_cache, i);
info_text = pk_info_enum_to_text (obj->info);
package_id = pk_package_id_to_string (obj->id);
g_signal_emit (transaction, signals [PK_TRANSACTION_PACKAGE], 0,
@@ -4978,7 +4960,7 @@ pk_transaction_init (PkTransaction *transaction)
transaction->priv->conf = pk_conf_new ();
transaction->priv->notify = pk_notify_new ();
transaction->priv->inhibit = pk_inhibit_new ();
- transaction->priv->package_list = pk_package_list_new ();
+ transaction->priv->package_list = g_ptr_array_new_with_free_funcxxx ();
transaction->priv->transaction_list = pk_transaction_list_new ();
transaction->priv->syslog = pk_syslog_new ();
transaction->priv->dbus = pk_dbus_new ();
diff --git a/src/pk-transaction.h b/src/pk-transaction.h
index 044910d..a0aa8f2 100644
--- a/src/pk-transaction.h
+++ b/src/pk-transaction.h
@@ -24,7 +24,7 @@
#include <glib-object.h>
#include <dbus/dbus-glib.h>
-#include <packagekit-glib/packagekit.h>
+#include <packagekit-glib2/packagekit.h>
G_BEGIN_DECLS
commit 998f22eef7607e2cf06a39579e71194f83fd1fc9
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 12:49:54 2009 +0100
trivial: fix make check
diff --git a/client/Makefile.am b/client/Makefile.am
index 3fbb68d..fb8b30c 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -186,8 +186,6 @@ pk_self_test_SOURCES = \
egg-string.h \
egg-test.c \
egg-test.h \
- pk-task-text.c \
- pk-task-text.h \
pk-self-test.c \
$(NULL)
diff --git a/client/pk-self-test.c b/client/pk-self-test.c
index 9c5032a..eba7cc5 100644
--- a/client/pk-self-test.c
+++ b/client/pk-self-test.c
@@ -27,8 +27,6 @@
#include "egg-test.h"
#include "egg-debug.h"
-#include "pk-task-text.h"
-
/* prototypes */
void pk_genpack_test (EggTest *test);
@@ -43,7 +41,6 @@ main (int argc, char **argv)
/* tests go here */
//pk_genpack_test (test);
- pk_task_text_test (test);
return (egg_test_finish (test));
}
commit 929178f10cfdb73290129f4a923eccb0e1e9d422
Merge: c0aa5bb... 8bdf42a...
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 12:38:46 2009 +0100
Merge branch 'master' into lib-private
commit c0aa5bbeb1785bf4e74c1eee449e7016256be710
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 12:37:34 2009 +0100
glib2: Make the PkItem structures refcountable
diff --git a/lib/packagekit-glib2/pk-item.c b/lib/packagekit-glib2/pk-item.c
index 06ee7d0..c3acde2 100644
--- a/lib/packagekit-glib2/pk-item.c
+++ b/lib/packagekit-glib2/pk-item.c
@@ -33,42 +33,301 @@
#include "egg-debug.h"
+
+/**
+ * pk_item_package_ref:
+ * @item: the #PkItemPackage
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemPackage *
+pk_item_package_ref (PkItemPackage *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_details_ref:
+ * @item: the #PkItemDetails
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemDetails *
+pk_item_details_ref (PkItemDetails *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_update_detail_ref:
+ * @item: the #PkItemUpdateDetail
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemUpdateDetail *
+pk_item_update_detail_ref (PkItemUpdateDetail *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_category_ref:
+ * @item: the #PkItemCategory
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemCategory *
+pk_item_category_ref (PkItemCategory *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_distro_upgrade_ref:
+ * @item: the #PkItemDistroUpgrade
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemDistroUpgrade *
+pk_item_distro_upgrade_ref (PkItemDistroUpgrade *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_require_restart_ref:
+ * @item: the #PkItemRequireRestart
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemRequireRestart *
+pk_item_require_restart_ref (PkItemRequireRestart *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_transaction_ref:
+ * @item: the #PkItemTransaction
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemTransaction *
+pk_item_transaction_ref (PkItemTransaction *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_files_ref:
+ * @item: the #PkItemFiles
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemFiles *
+pk_item_files_ref (PkItemFiles *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
+ g_strfreev (item->files);
+ return NULL;
+}
+
+/**
+ * pk_item_repo_signature_required_ref:
+ * @item: the #PkItemRepoSignatureRequired
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemRepoSignatureRequired *
+pk_item_repo_signature_required_ref (PkItemRepoSignatureRequired *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_eula_required_ref:
+ * @item: the #PkItemEulaRequired
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemEulaRequired *
+pk_item_eula_required_ref (PkItemEulaRequired *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_media_change_required_ref:
+ * @item: the #PkItemMediaChangeRequired
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemMediaChangeRequired *
+pk_item_media_change_required_ref (PkItemMediaChangeRequired *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_repo_detail_ref:
+ * @item: the #PkItemRepoDetail
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemRepoDetail *
+pk_item_repo_detail_ref (PkItemRepoDetail *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_error_code_ref:
+ * @item: the #PkItemErrorCode
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemErrorCode *
+pk_item_error_code_ref (PkItemErrorCode *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
+/**
+ * pk_item_message_ref:
+ * @item: the #PkItemMessage
+ *
+ * Increases the reference count by one.
+ *
+ * Return value: the @item
+ **/
+PkItemMessage *
+pk_item_message_ref (PkItemMessage *item)
+{
+ g_return_val_if_fail (item != NULL, NULL);
+ item->refcount++;
+ return item;
+}
+
/**
* pk_item_package_unref:
+ * @item: the #PkItemPackage
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemPackage *
pk_item_package_unref (PkItemPackage *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->package_id);
g_free (item->summary);
g_free (item);
+ return NULL;
}
/**
* pk_item_details_unref:
+ * @item: the #PkItemDetails
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemDetails *
pk_item_details_unref (PkItemDetails *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->package_id);
g_free (item->license);
g_free (item->description);
g_free (item->url);
g_free (item);
+ return NULL;
}
/**
* pk_item_update_detail_unref:
+ * @item: the #PkItemUpdateDetail
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemUpdateDetail *
pk_item_update_detail_unref (PkItemUpdateDetail *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->package_id);
g_free (item->updates);
g_free (item->obsoletes);
@@ -82,85 +341,145 @@ pk_item_update_detail_unref (PkItemUpdateDetail *item)
if (item->updated != NULL)
g_date_free (item->updated);
g_free (item);
+ return NULL;
}
/**
* pk_item_category_unref:
+ * @item: the #PkItemCategory
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemCategory *
pk_item_category_unref (PkItemCategory *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->parent_id);
g_free (item->cat_id);
g_free (item->name);
g_free (item->summary);
g_free (item->icon);
g_free (item);
+ return NULL;
}
/**
* pk_item_distro_upgrade_unref:
+ * @item: the #PkItemDistroUpgrade
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemDistroUpgrade *
pk_item_distro_upgrade_unref (PkItemDistroUpgrade *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->name);
g_free (item->summary);
g_free (item);
+ return NULL;
}
/**
* pk_item_require_restart_unref:
+ * @item: the #PkItemRequireRestart
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemRequireRestart *
pk_item_require_restart_unref (PkItemRequireRestart *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->package_id);
g_free (item);
+ return NULL;
}
/**
* pk_item_transaction_unref:
+ * @item: the #PkItemTransaction
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemTransaction *
pk_item_transaction_unref (PkItemTransaction *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->tid);
g_free (item->timespec);
g_free (item->data);
g_free (item->cmdline);
g_free (item);
+ return NULL;
}
/**
* pk_item_files_unref:
+ * @item: the #PkItemFiles
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemFiles *
pk_item_files_unref (PkItemFiles *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->package_id);
g_strfreev (item->files);
g_free (item);
+ return NULL;
}
/**
* pk_item_repo_signature_required_unref:
+ * @item: the #PkItemRepoSignatureRequired
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemRepoSignatureRequired *
pk_item_repo_signature_required_unref (PkItemRepoSignatureRequired *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->package_id);
g_free (item->repository_name);
g_free (item->key_url);
@@ -169,71 +488,122 @@ pk_item_repo_signature_required_unref (PkItemRepoSignatureRequired *item)
g_free (item->key_fingerprint);
g_free (item->key_timestamp);
g_free (item);
+ return NULL;
}
/**
* pk_item_eula_required_unref:
+ * @item: the #PkItemEulaRequired
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemEulaRequired *
pk_item_eula_required_unref (PkItemEulaRequired *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->eula_id);
g_free (item->package_id);
g_free (item->vendor_name);
g_free (item->license_agreement);
g_free (item);
+ return NULL;
}
/**
* pk_item_media_change_required_unref:
+ * @item: the #PkItemMediaChangeRequired
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemMediaChangeRequired *
pk_item_media_change_required_unref (PkItemMediaChangeRequired *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->media_id);
g_free (item->media_text);
g_free (item);
+ return NULL;
}
/**
* pk_item_repo_detail_unref:
+ * @item: the #PkItemRepoDetail
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemRepoDetail *
pk_item_repo_detail_unref (PkItemRepoDetail *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->repo_id);
g_free (item->description);
g_free (item);
+ return NULL;
}
/**
* pk_item_error_code_unref:
+ * @item: the #PkItemErrorCode
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemErrorCode *
pk_item_error_code_unref (PkItemErrorCode *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->details);
g_free (item);
+ return NULL;
}
/**
* pk_item_message_unref:
+ * @item: the #PkItemMessage
+ *
+ * Decreases the reference count by one.
+ *
+ * Return value: the @item, or %NULL if the object is no longer valid
**/
-void
+PkItemMessage *
pk_item_message_unref (PkItemMessage *item)
{
- if (item == NULL)
- return;
+ g_return_val_if_fail (item != NULL, NULL);
+
+ /* post decrement */
+ if (item->refcount-- != 0)
+ return item;
+
g_free (item->details);
g_free (item);
+ return NULL;
}
/***************************************************************************
@@ -246,29 +616,10 @@ void
pk_item_test (gpointer user_data)
{
EggTest *test = (EggTest *) user_data;
-#if 0
- gboolean ret;
- PkResults *results;
- PkExitEnum exit_enum;
- GPtrArray *packages;
- const PkItemPackage *item;
if (!egg_test_start (test, "PkResults"))
return;
- /************************************************************/
- egg_test_title (test, "get results");
- results = pk_results_new ();
- egg_test_assert (test, results != NULL);
-
- /************************************************************/
- egg_test_title (test, "get exit code of unset results");
- exit_enum = pk_results_get_exit_code (results);
- egg_test_assert (test, (exit_enum == PK_EXIT_ENUM_UNKNOWN));
-
- g_object_unref (results);
-#endif
-
egg_test_end (test);
}
#endif
diff --git a/lib/packagekit-glib2/pk-item.h b/lib/packagekit-glib2/pk-item.h
index 48030aa..e7d9df2 100644
--- a/lib/packagekit-glib2/pk-item.h
+++ b/lib/packagekit-glib2/pk-item.h
@@ -43,6 +43,7 @@ G_BEGIN_DECLS
**/
typedef struct
{
+ guint refcount;
PkRestartEnum restart;
gchar *package_id;
} PkItemRequireRestart;
@@ -54,6 +55,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
gchar *tid;
gchar *timespec;
gboolean succeeded;
@@ -70,6 +72,7 @@ typedef struct
* Object to represent details about the update.
**/
typedef struct {
+ guint refcount;
gchar *package_id;
gchar *license;
PkGroupEnum group_enum;
@@ -84,6 +87,7 @@ typedef struct {
* Object to represent details about the update.
**/
typedef struct {
+ guint refcount;
gchar *package_id;
gchar *updates;
gchar *obsoletes;
@@ -104,6 +108,7 @@ typedef struct {
* Object to represent details about a package.
**/
typedef struct {
+ guint refcount;
PkInfoEnum info_enum;
gchar *package_id;
gchar *summary;
@@ -116,6 +121,7 @@ typedef struct {
**/
typedef struct
{
+ guint refcount;
PkUpdateStateEnum state;
gchar *name;
gchar *summary;
@@ -128,6 +134,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
gchar *parent_id;
gchar *cat_id;
gchar *name;
@@ -142,6 +149,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
gchar *package_id;
gchar **files;
} PkItemFiles;
@@ -153,6 +161,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
gchar *package_id;
gchar *repository_name;
gchar *key_url;
@@ -170,6 +179,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
gchar *eula_id;
gchar *package_id;
gchar *vendor_name;
@@ -183,6 +193,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
PkMediaTypeEnum media_type;
gchar *media_id;
gchar *media_text;
@@ -195,6 +206,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
gchar *repo_id;
gchar *description;
gboolean enabled;
@@ -207,6 +219,7 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
PkErrorCodeEnum code;
gchar *details;
} PkItemErrorCode;
@@ -218,26 +231,40 @@ typedef struct
**/
typedef struct
{
+ guint refcount;
PkMessageEnum message;
gchar *details;
} PkItemMessage;
-//GPtrArray *pk_results_get_message_array (PkResults *results);
-void pk_item_test (gpointer user_data);
-void pk_item_package_unref (PkItemPackage *item);
-void pk_item_details_unref (PkItemDetails *item);
-void pk_item_update_detail_unref (PkItemUpdateDetail *item);
-void pk_item_category_unref (PkItemCategory *item);
-void pk_item_distro_upgrade_unref (PkItemDistroUpgrade *item);
-void pk_item_require_restart_unref (PkItemRequireRestart *item);
-void pk_item_transaction_unref (PkItemTransaction *item);
-void pk_item_files_unref (PkItemFiles *item);
-void pk_item_repo_signature_required_unref (PkItemRepoSignatureRequired *item);
-void pk_item_eula_required_unref (PkItemEulaRequired *item);
-void pk_item_media_change_required_unref (PkItemMediaChangeRequired *item);
-void pk_item_repo_detail_unref (PkItemRepoDetail *item);
-void pk_item_error_code_unref (PkItemErrorCode *item);
-void pk_item_message_unref (PkItemMessage *item);
+void pk_item_test (gpointer user_data);
+PkItemPackage *pk_item_package_ref (PkItemPackage *item);
+PkItemPackage *pk_item_package_unref (PkItemPackage *item);
+PkItemDetails *pk_item_details_ref (PkItemDetails *item);
+PkItemDetails *pk_item_details_unref (PkItemDetails *item);
+PkItemUpdateDetail *pk_item_update_detail_ref (PkItemUpdateDetail *item);
+PkItemUpdateDetail *pk_item_update_detail_unref (PkItemUpdateDetail *item);
+PkItemCategory *pk_item_category_ref (PkItemCategory *item);
+PkItemCategory *pk_item_category_unref (PkItemCategory *item);
+PkItemDistroUpgrade *pk_item_distro_upgrade_ref (PkItemDistroUpgrade *item);
+PkItemDistroUpgrade *pk_item_distro_upgrade_unref (PkItemDistroUpgrade *item);
+PkItemRequireRestart *pk_item_require_restart_ref (PkItemRequireRestart *item);
+PkItemRequireRestart *pk_item_require_restart_unref (PkItemRequireRestart *item);
+PkItemTransaction *pk_item_transaction_ref (PkItemTransaction *item);
+PkItemTransaction *pk_item_transaction_unref (PkItemTransaction *item);
+PkItemFiles *pk_item_files_ref (PkItemFiles *item);
+PkItemFiles *pk_item_files_unref (PkItemFiles *item);
+PkItemRepoSignatureRequired *pk_item_repo_signature_required_ref (PkItemRepoSignatureRequired *item);
+PkItemRepoSignatureRequired *pk_item_repo_signature_required_unref (PkItemRepoSignatureRequired *item);
+PkItemEulaRequired *pk_item_eula_required_ref (PkItemEulaRequired *item);
+PkItemEulaRequired *pk_item_eula_required_unref (PkItemEulaRequired *item);
+PkItemMediaChangeRequired *pk_item_media_change_required_ref (PkItemMediaChangeRequired *item);
+PkItemMediaChangeRequired *pk_item_media_change_required_unref (PkItemMediaChangeRequired *item);
+PkItemRepoDetail *pk_item_repo_detail_ref (PkItemRepoDetail *item);
+PkItemRepoDetail *pk_item_repo_detail_unref (PkItemRepoDetail *item);
+PkItemErrorCode *pk_item_error_code_ref (PkItemErrorCode *item);
+PkItemErrorCode *pk_item_error_code_unref (PkItemErrorCode *item);
+PkItemMessage *pk_item_message_ref (PkItemMessage *item);
+PkItemMessage *pk_item_message_unref (PkItemMessage *item);
G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 7fefc15..7a41e3f 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -962,7 +962,7 @@ pk_results_test (gpointer user_data)
PkResults *results;
PkExitEnum exit_enum;
GPtrArray *packages;
- const PkItemPackage *item;
+ PkItemPackage *item;
if (!egg_test_start (test, "PkResults"))
return;
@@ -1009,9 +1009,16 @@ pk_results_test (gpointer user_data)
egg_test_assert (test, (item->info_enum == PK_INFO_ENUM_AVAILABLE &&
g_strcmp0 ("gnome-power-manager;0.1.2;i386;fedora", item->package_id) == 0 &&
g_strcmp0 ("Power manager for GNOME", item->summary) == 0));
-
+ pk_item_package_ref (item);
g_ptr_array_unref (packages);
+ /************************************************************/
+ egg_test_title (test, "check ref");
+ egg_test_assert (test, (item->info_enum == PK_INFO_ENUM_AVAILABLE &&
+ g_strcmp0 ("gnome-power-manager;0.1.2;i386;fedora", item->package_id) == 0 &&
+ g_strcmp0 ("Power manager for GNOME", item->summary) == 0));
+ pk_item_package_unref (item);
+
g_object_unref (results);
egg_test_end (test);
}
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 2656aa9..b4a723c 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -58,6 +58,7 @@ main (int argc, char **argv)
pk_package_ids_test (test);
pk_progress_test (test);
pk_results_test (test);
+ pk_item_test (test);
pk_package_test (test);
pk_control_test (test);
pk_client_test (test);
commit b1c1921071e6b31e3eac8c0eca9d82d0a0f87059
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 12:18:30 2009 +0100
trivial: split out the PkItem functionality from PkResults
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 3c6adda..a0def35 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -86,7 +86,7 @@ pk_strpad (const gchar *data, guint length)
* pk_console_package_cb:
**/
static void
-pk_console_package_cb (const PkResultItemPackage *obj, gpointer data)
+pk_console_package_cb (const PkItemPackage *obj, gpointer data)
{
gchar *package = NULL;
gchar *package_pad = NULL;
@@ -129,7 +129,7 @@ out:
* pk_console_transaction_cb:
**/
static void
-pk_console_transaction_cb (const PkResultItemTransaction *obj, gpointer user_data)
+pk_console_transaction_cb (const PkItemTransaction *obj, gpointer user_data)
{
struct passwd *pw;
const gchar *role_text;
@@ -195,7 +195,7 @@ pk_console_transaction_cb (const PkResultItemTransaction *obj, gpointer user_dat
* pk_console_distro_upgrade_cb:
**/
static void
-pk_console_distro_upgrade_cb (const PkResultItemDistroUpgrade *obj, gpointer user_data)
+pk_console_distro_upgrade_cb (const PkItemDistroUpgrade *obj, gpointer user_data)
{
/* TRANSLATORS: this is the distro, e.g. Fedora 10 */
g_print ("%s: %s\n", _("Distribution"), obj->name);
@@ -209,7 +209,7 @@ pk_console_distro_upgrade_cb (const PkResultItemDistroUpgrade *obj, gpointer use
* pk_console_category_cb:
**/
static void
-pk_console_category_cb (const PkResultItemCategory *obj, gpointer user_data)
+pk_console_category_cb (const PkItemCategory *obj, gpointer user_data)
{
/* TRANSLATORS: this is the group category name */
g_print ("%s: %s\n", _("Category"), obj->name);
@@ -233,7 +233,7 @@ pk_console_category_cb (const PkResultItemCategory *obj, gpointer user_data)
* pk_console_update_detail_cb:
**/
static void
-pk_console_update_detail_cb (const PkResultItemUpdateDetail *detail, gpointer data)
+pk_console_update_detail_cb (const PkItemUpdateDetail *detail, gpointer data)
{
gchar *issued;
gchar *updated;
@@ -302,7 +302,7 @@ pk_console_update_detail_cb (const PkResultItemUpdateDetail *detail, gpointer da
* pk_console_repo_detail_cb:
**/
static void
-pk_console_repo_detail_cb (const PkResultItemRepoDetail *obj, gpointer data)
+pk_console_repo_detail_cb (const PkItemRepoDetail *obj, gpointer data)
{
gchar *enabled_pad;
gchar *repo_pad;
@@ -325,7 +325,7 @@ pk_console_repo_detail_cb (const PkResultItemRepoDetail *obj, gpointer data)
* pk_console_require_restart_cb:
**/
static void
-pk_console_require_restart_cb (const PkResultItemRequireRestart *obj, gpointer data)
+pk_console_require_restart_cb (const PkItemRequireRestart *obj, gpointer data)
{
gchar *package = NULL;
@@ -355,7 +355,7 @@ pk_console_require_restart_cb (const PkResultItemRequireRestart *obj, gpointer d
* pk_console_details_cb:
**/
static void
-pk_console_details_cb (const PkResultItemDetails *obj, gpointer data)
+pk_console_details_cb (const PkItemDetails *obj, gpointer data)
{
gchar *package = NULL;
@@ -378,7 +378,7 @@ pk_console_details_cb (const PkResultItemDetails *obj, gpointer data)
* pk_console_message_cb:
**/
static void
-pk_console_message_cb (const PkResultItemMessage *obj, gpointer data)
+pk_console_message_cb (const PkItemMessage *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);
@@ -388,7 +388,7 @@ pk_console_message_cb (const PkResultItemMessage *obj, gpointer data)
* pk_console_files_cb:
**/
static void
-pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
+pk_console_files_cb (PkItemFiles *obj, gpointer data)
{
guint i;
@@ -441,7 +441,7 @@ pk_console_progress_cb (PkProgress *progress, PkProgressType type, gpointer data
static void
pk_console_finished_cb (GObject *object, GAsyncResult *res, gpointer data)
{
- const PkResultItemErrorCode *error_item;
+ const PkItemErrorCode *error_item;
PkResults *results;
GError *error = NULL;
GPtrArray *array;
diff --git a/contrib/command-not-found/pk-command-not-found-test.c b/contrib/command-not-found/pk-command-not-found-test.c
index 16ec291..9997d1e 100644
--- a/contrib/command-not-found/pk-command-not-found-test.c
+++ b/contrib/command-not-found/pk-command-not-found-test.c
@@ -389,7 +389,7 @@ pk_cnf_search_file (PkClient *client_, PkBitfield filter, const gchar *filename,
PkResults *results;
GPtrArray *array = NULL;
guint i;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
/* get the list of possibles */
results = pk_client_search_file_sync (client_, filter, filename, cancellable,
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index c47b4a7..f02ae9f 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -77,6 +77,8 @@ libpackagekit_glib2_la_SOURCES = \
pk-service-pack.h \
pk-results.c \
pk-results.h \
+ pk-item.c \
+ pk-item.h \
pk-task.c \
pk-task.h \
pk-version.h \
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index 93007db..e3572fd 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -28,6 +28,7 @@
#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-control.h>
#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-item.h>
#include <packagekit-glib2/pk-package-id.h>
#include <packagekit-glib2/pk-package-ids.h>
#include <packagekit-glib2/pk-package-sack.h>
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 521ae77..020f5ba 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -361,7 +361,7 @@ pk_client_state_finish (PkClientState *state, GError *error)
static void
pk_client_copy_finished_remove_old_files (PkClientState *state)
{
- const PkResultItemFiles *item;
+ const PkItemFiles *item;
GPtrArray *array = NULL;
guint i;
@@ -481,7 +481,7 @@ pk_client_copy_downloaded (PkClientState *state)
guint i;
guint j;
guint len;
- const PkResultItemFiles *item;
+ const PkItemFiles *item;
GPtrArray *array = NULL;
/* get data */
@@ -516,7 +516,7 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
{
GError *error = NULL;
PkExitEnum exit_enum;
- const PkResultItemErrorCode *error_item;
+ const PkItemErrorCode *error_item;
egg_debug ("exit_text=%s", exit_text);
@@ -3332,7 +3332,7 @@ pk_client_test_resolve_cb (GObject *object, GAsyncResult *res, EggTest *test)
PkResults *results = NULL;
PkExitEnum exit_enum;
GPtrArray *packages;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
guint i;
/* get the results */
@@ -3377,7 +3377,7 @@ pk_client_test_get_details_cb (GObject *object, GAsyncResult *res, EggTest *test
PkResults *results = NULL;
PkExitEnum exit_enum;
GPtrArray *details;
- const PkResultItemDetails *item;
+ const PkItemDetails *item;
guint i;
/* get the results */
@@ -3461,7 +3461,7 @@ pk_client_test_search_name_cb (GObject *object, GAsyncResult *res, EggTest *test
GError *error = NULL;
PkResults *results = NULL;
PkExitEnum exit_enum;
- const PkResultItemErrorCode *error_item;
+ const PkItemErrorCode *error_item;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
@@ -3522,7 +3522,7 @@ pk_client_test_download_cb (GObject *object, GAsyncResult *res, EggTest *test)
GError *error = NULL;
PkResults *results = NULL;
PkExitEnum exit_enum;
- const PkResultItemFiles *item;
+ const PkItemFiles *item;
GPtrArray *array = NULL;
guint len;
diff --git a/lib/packagekit-glib2/pk-console-shared.c b/lib/packagekit-glib2/pk-console-shared.c
index b2359f2..62b2432 100644
--- a/lib/packagekit-glib2/pk-console-shared.c
+++ b/lib/packagekit-glib2/pk-console-shared.c
@@ -114,7 +114,7 @@ pk_console_resolve_package (PkClient *client, PkBitfield filter, const gchar *pa
GPtrArray *array = NULL;
guint i;
gchar *printable;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
/* have we passed a complete package_id? */
valid = pk_package_id_check (package);
diff --git a/lib/packagekit-glib2/pk-item.c b/lib/packagekit-glib2/pk-item.c
new file mode 100644
index 0000000..06ee7d0
--- /dev/null
+++ b/lib/packagekit-glib2/pk-item.c
@@ -0,0 +1,275 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-item
+ * @short_description: TODO
+ */
+
+#include "config.h"
+
+#include <glib.h>
+
+#include <packagekit-glib2/pk-item.h>
+#include <packagekit-glib2/pk-enum.h>
+
+#include "egg-debug.h"
+
+/**
+ * pk_item_package_unref:
+ **/
+void
+pk_item_package_unref (PkItemPackage *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->package_id);
+ g_free (item->summary);
+ g_free (item);
+}
+
+/**
+ * pk_item_details_unref:
+ **/
+void
+pk_item_details_unref (PkItemDetails *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->package_id);
+ g_free (item->license);
+ g_free (item->description);
+ g_free (item->url);
+ g_free (item);
+}
+
+/**
+ * pk_item_update_detail_unref:
+ **/
+void
+pk_item_update_detail_unref (PkItemUpdateDetail *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->package_id);
+ g_free (item->updates);
+ g_free (item->obsoletes);
+ g_free (item->vendor_url);
+ g_free (item->bugzilla_url);
+ g_free (item->cve_url);
+ g_free (item->update_text);
+ g_free (item->changelog);
+ if (item->issued != NULL)
+ g_date_free (item->issued);
+ if (item->updated != NULL)
+ g_date_free (item->updated);
+ g_free (item);
+}
+
+/**
+ * pk_item_category_unref:
+ **/
+void
+pk_item_category_unref (PkItemCategory *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->parent_id);
+ g_free (item->cat_id);
+ g_free (item->name);
+ g_free (item->summary);
+ g_free (item->icon);
+ g_free (item);
+}
+
+/**
+ * pk_item_distro_upgrade_unref:
+ **/
+void
+pk_item_distro_upgrade_unref (PkItemDistroUpgrade *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->name);
+ g_free (item->summary);
+ g_free (item);
+}
+
+/**
+ * pk_item_require_restart_unref:
+ **/
+void
+pk_item_require_restart_unref (PkItemRequireRestart *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->package_id);
+ g_free (item);
+}
+
+/**
+ * pk_item_transaction_unref:
+ **/
+void
+pk_item_transaction_unref (PkItemTransaction *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->tid);
+ g_free (item->timespec);
+ g_free (item->data);
+ g_free (item->cmdline);
+ g_free (item);
+}
+
+/**
+ * pk_item_files_unref:
+ **/
+void
+pk_item_files_unref (PkItemFiles *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->package_id);
+ g_strfreev (item->files);
+ g_free (item);
+}
+
+/**
+ * pk_item_repo_signature_required_unref:
+ **/
+void
+pk_item_repo_signature_required_unref (PkItemRepoSignatureRequired *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->package_id);
+ g_free (item->repository_name);
+ g_free (item->key_url);
+ g_free (item->key_userid);
+ g_free (item->key_id);
+ g_free (item->key_fingerprint);
+ g_free (item->key_timestamp);
+ g_free (item);
+}
+
+/**
+ * pk_item_eula_required_unref:
+ **/
+void
+pk_item_eula_required_unref (PkItemEulaRequired *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->eula_id);
+ g_free (item->package_id);
+ g_free (item->vendor_name);
+ g_free (item->license_agreement);
+ g_free (item);
+}
+
+/**
+ * pk_item_media_change_required_unref:
+ **/
+void
+pk_item_media_change_required_unref (PkItemMediaChangeRequired *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->media_id);
+ g_free (item->media_text);
+ g_free (item);
+}
+
+/**
+ * pk_item_repo_detail_unref:
+ **/
+void
+pk_item_repo_detail_unref (PkItemRepoDetail *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->repo_id);
+ g_free (item->description);
+ g_free (item);
+}
+
+/**
+ * pk_item_error_code_unref:
+ **/
+void
+pk_item_error_code_unref (PkItemErrorCode *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->details);
+ g_free (item);
+}
+
+/**
+ * pk_item_message_unref:
+ **/
+void
+pk_item_message_unref (PkItemMessage *item)
+{
+ if (item == NULL)
+ return;
+ g_free (item->details);
+ g_free (item);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_item_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+#if 0
+ gboolean ret;
+ PkResults *results;
+ PkExitEnum exit_enum;
+ GPtrArray *packages;
+ const PkItemPackage *item;
+
+ if (!egg_test_start (test, "PkResults"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get results");
+ results = pk_results_new ();
+ egg_test_assert (test, results != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get exit code of unset results");
+ exit_enum = pk_results_get_exit_code (results);
+ egg_test_assert (test, (exit_enum == PK_EXIT_ENUM_UNKNOWN));
+
+ g_object_unref (results);
+#endif
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-item.h b/lib/packagekit-glib2/pk-item.h
new file mode 100644
index 0000000..48030aa
--- /dev/null
+++ b/lib/packagekit-glib2/pk-item.h
@@ -0,0 +1,245 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+/**
+ * SECTION:pk-item
+ * @short_description: Abstract items
+ */
+
+#ifndef __PK_ITEM_H
+#define __PK_ITEM_H
+
+#include <glib.h>
+#include <packagekit-glib2/pk-enum.h>
+
+G_BEGIN_DECLS
+
+/**
+ * PkItemRequireRestart:
+ *
+ * Object to represent details about the require_restart.
+ **/
+typedef struct
+{
+ PkRestartEnum restart;
+ gchar *package_id;
+} PkItemRequireRestart;
+
+/**
+ * PkItemTransaction:
+ *
+ * Object to represent details about the transaction.
+ **/
+typedef struct
+{
+ gchar *tid;
+ gchar *timespec;
+ gboolean succeeded;
+ PkRoleEnum role;
+ guint duration;
+ gchar *data;
+ guint uid;
+ gchar *cmdline;
+} PkItemTransaction;
+
+/**
+ * PkItemDetails:
+ *
+ * Object to represent details about the update.
+ **/
+typedef struct {
+ gchar *package_id;
+ gchar *license;
+ PkGroupEnum group_enum;
+ gchar *description;
+ gchar *url;
+ guint64 size;
+} PkItemDetails;
+
+/**
+ * PkItemUpdateDetail:
+ *
+ * Object to represent details about the update.
+ **/
+typedef struct {
+ gchar *package_id;
+ gchar *updates;
+ gchar *obsoletes;
+ gchar *vendor_url;
+ gchar *bugzilla_url;
+ gchar *cve_url;
+ PkRestartEnum restart_enum;
+ gchar *update_text;
+ gchar *changelog;
+ PkUpdateStateEnum state_enum;
+ GDate *issued;
+ GDate *updated;
+} PkItemUpdateDetail;
+
+/**
+ * PkItemPackage:
+ *
+ * Object to represent details about a package.
+ **/
+typedef struct {
+ PkInfoEnum info_enum;
+ gchar *package_id;
+ gchar *summary;
+} PkItemPackage;
+
+/**
+ * PkItemDistroUpgrade:
+ *
+ * Object to represent details about the distribution update.
+ **/
+typedef struct
+{
+ PkUpdateStateEnum state;
+ gchar *name;
+ gchar *summary;
+} PkItemDistroUpgrade;
+
+/**
+ * PkItemCategory:
+ *
+ * Object to represent details about the category.
+ **/
+typedef struct
+{
+ gchar *parent_id;
+ gchar *cat_id;
+ gchar *name;
+ gchar *summary;
+ gchar *icon;
+} PkItemCategory;
+
+/**
+ * PkItemFiles:
+ *
+ * Object to represent details about the files.
+ **/
+typedef struct
+{
+ gchar *package_id;
+ gchar **files;
+} PkItemFiles;
+
+/**
+ * PkItemRepoSignatureRequired:
+ *
+ * Object to represent details about the repository signature request.
+ **/
+typedef struct
+{
+ gchar *package_id;
+ gchar *repository_name;
+ gchar *key_url;
+ gchar *key_userid;
+ gchar *key_id;
+ gchar *key_fingerprint;
+ gchar *key_timestamp;
+ PkSigTypeEnum type;
+} PkItemRepoSignatureRequired;
+
+/**
+ * PkItemEulaRequired:
+ *
+ * Object to represent details about the EULA request.
+ **/
+typedef struct
+{
+ gchar *eula_id;
+ gchar *package_id;
+ gchar *vendor_name;
+ gchar *license_agreement;
+} PkItemEulaRequired;
+
+/**
+ * PkItemMediaChangeRequired:
+ *
+ * Object to represent details about the media change request.
+ **/
+typedef struct
+{
+ PkMediaTypeEnum media_type;
+ gchar *media_id;
+ gchar *media_text;
+} PkItemMediaChangeRequired;
+
+/**
+ * PkItemRepoDetail:
+ *
+ * Object to represent details about the remote repository.
+ **/
+typedef struct
+{
+ gchar *repo_id;
+ gchar *description;
+ gboolean enabled;
+} PkItemRepoDetail;
+
+/**
+ * PkItemErrorCode:
+ *
+ * Object to represent details about the error code.
+ **/
+typedef struct
+{
+ PkErrorCodeEnum code;
+ gchar *details;
+} PkItemErrorCode;
+
+/**
+ * PkItemMessage:
+ *
+ * Object to represent details about the message.
+ **/
+typedef struct
+{
+ PkMessageEnum message;
+ gchar *details;
+} PkItemMessage;
+
+//GPtrArray *pk_results_get_message_array (PkResults *results);
+void pk_item_test (gpointer user_data);
+void pk_item_package_unref (PkItemPackage *item);
+void pk_item_details_unref (PkItemDetails *item);
+void pk_item_update_detail_unref (PkItemUpdateDetail *item);
+void pk_item_category_unref (PkItemCategory *item);
+void pk_item_distro_upgrade_unref (PkItemDistroUpgrade *item);
+void pk_item_require_restart_unref (PkItemRequireRestart *item);
+void pk_item_transaction_unref (PkItemTransaction *item);
+void pk_item_files_unref (PkItemFiles *item);
+void pk_item_repo_signature_required_unref (PkItemRepoSignatureRequired *item);
+void pk_item_eula_required_unref (PkItemEulaRequired *item);
+void pk_item_media_change_required_unref (PkItemMediaChangeRequired *item);
+void pk_item_repo_detail_unref (PkItemRepoDetail *item);
+void pk_item_error_code_unref (PkItemErrorCode *item);
+void pk_item_message_unref (PkItemMessage *item);
+
+G_END_DECLS
+
+#endif /* __PK_ITEM_H */
+
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index e5a9f99..e054c0b 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -439,7 +439,7 @@ pk_package_sack_merge_resolve_cb (GObject *source_object, GAsyncResult *res, PkP
GError *error = NULL;
PkResults *results;
GPtrArray *packages = NULL;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
guint i;
PkPackage *package;
@@ -576,7 +576,7 @@ pk_package_sack_merge_details_cb (GObject *source_object, GAsyncResult *res, PkP
GError *error = NULL;
PkResults *results;
GPtrArray *details = NULL;
- const PkResultItemDetails *item;
+ const PkItemDetails *item;
guint i;
PkPackage *package;
@@ -689,7 +689,7 @@ pk_package_sack_merge_update_detail_cb (GObject *source_object, GAsyncResult *re
GError *error = NULL;
PkResults *results;
GPtrArray *update_details = NULL;
- const PkResultItemUpdateDetail *item;
+ const PkItemUpdateDetail *item;
guint i;
PkPackage *package;
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index de1a946..7fefc15 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -29,6 +29,7 @@
#include <glib-object.h>
#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-item.h>
#include <packagekit-glib2/pk-enum.h>
#include "egg-debug.h"
@@ -109,209 +110,6 @@ pk_results_set_property (GObject *object, guint prop_id, const GValue *value, GP
}
/**
- * pk_result_item_package_free:
- **/
-static void
-pk_result_item_package_free (PkResultItemPackage *item)
-{
- if (item == NULL)
- return;
- g_free (item->package_id);
- g_free (item->summary);
- g_free (item);
-}
-
-/**
- * pk_result_item_details_free:
- **/
-static void
-pk_result_item_details_free (PkResultItemDetails *item)
-{
- if (item == NULL)
- return;
- g_free (item->package_id);
- g_free (item->license);
- g_free (item->description);
- g_free (item->url);
- g_free (item);
-}
-
-/**
- * pk_result_item_update_detail_free:
- **/
-static void
-pk_result_item_update_detail_free (PkResultItemUpdateDetail *item)
-{
- if (item == NULL)
- return;
- g_free (item->package_id);
- g_free (item->updates);
- g_free (item->obsoletes);
- g_free (item->vendor_url);
- g_free (item->bugzilla_url);
- g_free (item->cve_url);
- g_free (item->update_text);
- g_free (item->changelog);
- if (item->issued != NULL)
- g_date_free (item->issued);
- if (item->updated != NULL)
- g_date_free (item->updated);
- g_free (item);
-}
-
-/**
- * pk_result_item_category_free:
- **/
-static void
-pk_result_item_category_free (PkResultItemCategory *item)
-{
- if (item == NULL)
- return;
- g_free (item->parent_id);
- g_free (item->cat_id);
- g_free (item->name);
- g_free (item->summary);
- g_free (item->icon);
- g_free (item);
-}
-
-/**
- * pk_result_item_distro_upgrade_free:
- **/
-static void
-pk_result_item_distro_upgrade_free (PkResultItemDistroUpgrade *item)
-{
- if (item == NULL)
- return;
- g_free (item->name);
- g_free (item->summary);
- g_free (item);
-}
-
-/**
- * pk_result_item_require_restart_free:
- **/
-static void
-pk_result_item_require_restart_free (PkResultItemRequireRestart *item)
-{
- if (item == NULL)
- return;
- g_free (item->package_id);
- g_free (item);
-}
-
-/**
- * pk_result_item_transaction_free:
- **/
-static void
-pk_result_item_transaction_free (PkResultItemTransaction *item)
-{
- if (item == NULL)
- return;
- g_free (item->tid);
- g_free (item->timespec);
- g_free (item->data);
- g_free (item->cmdline);
- g_free (item);
-}
-
-/**
- * pk_result_item_files_free:
- **/
-static void
-pk_result_item_files_free (PkResultItemFiles *item)
-{
- if (item == NULL)
- return;
- g_free (item->package_id);
- g_strfreev (item->files);
- g_free (item);
-}
-
-/**
- * pk_result_item_repo_signature_required_free:
- **/
-static void
-pk_result_item_repo_signature_required_free (PkResultItemRepoSignatureRequired *item)
-{
- if (item == NULL)
- return;
- g_free (item->package_id);
- g_free (item->repository_name);
- g_free (item->key_url);
- g_free (item->key_userid);
- g_free (item->key_id);
- g_free (item->key_fingerprint);
- g_free (item->key_timestamp);
- g_free (item);
-}
-
-/**
- * pk_result_item_eula_required_free:
- **/
-static void
-pk_result_item_eula_required_free (PkResultItemEulaRequired *item)
-{
- if (item == NULL)
- return;
- g_free (item->eula_id);
- g_free (item->package_id);
- g_free (item->vendor_name);
- g_free (item->license_agreement);
- g_free (item);
-}
-
-/**
- * pk_result_item_media_change_required_free:
- **/
-static void
-pk_result_item_media_change_required_free (PkResultItemMediaChangeRequired *item)
-{
- if (item == NULL)
- return;
- g_free (item->media_id);
- g_free (item->media_text);
- g_free (item);
-}
-
-/**
- * pk_result_item_repo_detail_free:
- **/
-static void
-pk_result_item_repo_detail_free (PkResultItemRepoDetail *item)
-{
- if (item == NULL)
- return;
- g_free (item->repo_id);
- g_free (item->description);
- g_free (item);
-}
-
-/**
- * pk_result_item_error_code_free:
- **/
-static void
-pk_result_item_error_code_free (PkResultItemErrorCode *item)
-{
- if (item == NULL)
- return;
- g_free (item->details);
- g_free (item);
-}
-
-/**
- * pk_result_item_message_free:
- **/
-static void
-pk_result_item_message_free (PkResultItemMessage *item)
-{
- if (item == NULL)
- return;
- g_free (item->details);
- g_free (item);
-}
-
-/**
* pk_results_set_exit_code:
* @results: a valid #PkResults instance
* @exit_enum: the exit code
@@ -342,14 +140,14 @@ pk_results_set_exit_code (PkResults *results, PkExitEnum exit_enum)
gboolean
pk_results_add_package (PkResults *results, PkInfoEnum info_enum, const gchar *package_id, const gchar *summary)
{
- PkResultItemPackage *item;
+ PkItemPackage *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (info_enum != PK_INFO_ENUM_UNKNOWN, FALSE);
g_return_val_if_fail (package_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemPackage, 1);
+ item = g_new0 (PkItemPackage, 1);
item->info_enum = info_enum;
item->package_id = g_strdup (package_id);
item->summary = g_strdup (summary);
@@ -370,13 +168,13 @@ gboolean
pk_results_add_details (PkResults *results, const gchar *package_id, const gchar *license,
PkGroupEnum group_enum, const gchar *description, const gchar *url, guint64 size)
{
- PkResultItemDetails *item;
+ PkItemDetails *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (package_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemDetails, 1);
+ item = g_new0 (PkItemDetails, 1);
item->package_id = g_strdup (package_id);
item->license = g_strdup (license);
item->group_enum = group_enum;
@@ -402,13 +200,13 @@ pk_results_add_update_detail (PkResults *results, const gchar *package_id, const
const gchar *cve_url, PkRestartEnum restart_enum, const gchar *update_text,
const gchar *changelog, PkUpdateStateEnum state_enum, GDate *issued, GDate *updated)
{
- PkResultItemUpdateDetail *item;
+ PkItemUpdateDetail *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (package_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemUpdateDetail, 1);
+ item = g_new0 (PkItemUpdateDetail, 1);
item->package_id = g_strdup (package_id);
item->updates = g_strdup (updates);
item->obsoletes = g_strdup (obsoletes);
@@ -440,13 +238,13 @@ gboolean
pk_results_add_category (PkResults *results, const gchar *parent_id, const gchar *cat_id, const gchar *name,
const gchar *summary, const gchar *icon)
{
- PkResultItemCategory *item;
+ PkItemCategory *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (name != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemCategory, 1);
+ item = g_new0 (PkItemCategory, 1);
item->parent_id = g_strdup (parent_id);
item->cat_id = g_strdup (cat_id);
item->name = g_strdup (name);
@@ -468,14 +266,14 @@ pk_results_add_category (PkResults *results, const gchar *parent_id, const gchar
gboolean
pk_results_add_distro_upgrade (PkResults *results, PkUpdateStateEnum state_enum, const gchar *name, const gchar *summary)
{
- PkResultItemDistroUpgrade *item;
+ PkItemDistroUpgrade *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (state_enum != PK_UPDATE_STATE_ENUM_UNKNOWN, FALSE);
g_return_val_if_fail (name != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemDistroUpgrade, 1);
+ item = g_new0 (PkItemDistroUpgrade, 1);
item->state = state_enum;
item->name = g_strdup (name);
item->summary = g_strdup (summary);
@@ -495,14 +293,14 @@ pk_results_add_distro_upgrade (PkResults *results, PkUpdateStateEnum state_enum,
gboolean
pk_results_add_require_restart (PkResults *results, PkRestartEnum restart_enum, const gchar *package_id)
{
- PkResultItemRequireRestart *item;
+ PkItemRequireRestart *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (restart_enum != PK_RESTART_ENUM_UNKNOWN, FALSE);
g_return_val_if_fail (package_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemRequireRestart, 1);
+ item = g_new0 (PkItemRequireRestart, 1);
item->restart = restart_enum;
item->package_id = g_strdup (package_id);
g_ptr_array_add (results->priv->require_restart_array, item);
@@ -524,14 +322,14 @@ pk_results_add_transaction (PkResults *results, const gchar *tid, const gchar *t
guint duration, const gchar *data,
guint uid, const gchar *cmdline)
{
- PkResultItemTransaction *item;
+ PkItemTransaction *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (role_enum != PK_ROLE_ENUM_UNKNOWN, FALSE);
g_return_val_if_fail (tid != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemTransaction, 1);
+ item = g_new0 (PkItemTransaction, 1);
item->tid = g_strdup (tid);
item->timespec = g_strdup (timespec);
item->succeeded = succeeded;
@@ -556,14 +354,14 @@ pk_results_add_transaction (PkResults *results, const gchar *tid, const gchar *t
gboolean
pk_results_add_files (PkResults *results, const gchar *package_id, gchar **files)
{
- PkResultItemFiles *item;
+ PkItemFiles *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (package_id != NULL, FALSE);
g_return_val_if_fail (files != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemFiles, 1);
+ item = g_new0 (PkItemFiles, 1);
item->package_id = g_strdup (package_id);
item->files = g_strdupv (files);
g_ptr_array_add (results->priv->files_array, item);
@@ -585,13 +383,13 @@ pk_results_add_repo_signature_required (PkResults *results, const gchar *package
const gchar *key_fingerprint, const gchar *key_timestamp,
PkSigTypeEnum type_enum)
{
- PkResultItemRepoSignatureRequired *item;
+ PkItemRepoSignatureRequired *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (package_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemRepoSignatureRequired, 1);
+ item = g_new0 (PkItemRepoSignatureRequired, 1);
item->package_id = g_strdup (package_id);
item->repository_name = g_strdup (repository_name);
item->key_url = g_strdup (key_url);
@@ -617,13 +415,13 @@ gboolean
pk_results_add_eula_required (PkResults *results, const gchar *eula_id, const gchar *package_id,
const gchar *vendor_name, const gchar *license_agreement)
{
- PkResultItemEulaRequired *item;
+ PkItemEulaRequired *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (eula_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemEulaRequired, 1);
+ item = g_new0 (PkItemEulaRequired, 1);
item->eula_id = g_strdup (eula_id);
item->package_id = g_strdup (package_id);
item->vendor_name = g_strdup (vendor_name);
@@ -645,13 +443,13 @@ gboolean
pk_results_add_media_change_required (PkResults *results, PkMediaTypeEnum media_type_enum,
const gchar *media_id, const gchar *media_text)
{
- PkResultItemMediaChangeRequired *item;
+ PkItemMediaChangeRequired *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (media_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemMediaChangeRequired, 1);
+ item = g_new0 (PkItemMediaChangeRequired, 1);
item->media_type = media_type_enum;
item->media_id = g_strdup (media_id);
item->media_text = g_strdup (media_text);
@@ -672,13 +470,13 @@ gboolean
pk_results_add_repo_detail (PkResults *results, const gchar *repo_id,
const gchar *description, gboolean enabled)
{
- PkResultItemRepoDetail *item;
+ PkItemRepoDetail *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
g_return_val_if_fail (repo_id != NULL, FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemRepoDetail, 1);
+ item = g_new0 (PkItemRepoDetail, 1);
item->repo_id = g_strdup (repo_id);
item->description = g_strdup (description);
item->enabled = enabled;
@@ -698,12 +496,12 @@ pk_results_add_repo_detail (PkResults *results, const gchar *repo_id,
gboolean
pk_results_add_error_code (PkResults *results, PkErrorCodeEnum code_enum, const gchar *details)
{
- PkResultItemErrorCode *item;
+ PkItemErrorCode *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemErrorCode, 1);
+ item = g_new0 (PkItemErrorCode, 1);
item->code = code_enum;
item->details = g_strdup (details);
g_ptr_array_add (results->priv->error_code_array, item);
@@ -722,12 +520,12 @@ pk_results_add_error_code (PkResults *results, PkErrorCodeEnum code_enum, const
gboolean
pk_results_add_message (PkResults *results, PkMessageEnum message_enum, const gchar *details)
{
- PkResultItemMessage *item;
+ PkItemMessage *item;
g_return_val_if_fail (PK_IS_RESULTS (results), FALSE);
/* copy and add to array */
- item = g_new0 (PkResultItemMessage, 1);
+ item = g_new0 (PkItemMessage, 1);
item->message = message_enum;
item->details = g_strdup (details);
g_ptr_array_add (results->priv->message_array, item);
@@ -756,7 +554,7 @@ pk_results_get_exit_code (PkResults *results)
*
* Gets the packages from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemDetails's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemDetails's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_package_array (PkResults *results)
@@ -780,7 +578,7 @@ pk_results_get_package_sack (PkResults *results)
PkPackageSack *sack;
GPtrArray *array;
guint i;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
gboolean ret;
g_return_val_if_fail (PK_IS_RESULTS (results), NULL);
@@ -819,7 +617,7 @@ pk_results_get_package_sack (PkResults *results)
*
* Gets the package details from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemPackage's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemPackage's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_details_array (PkResults *results)
@@ -834,7 +632,7 @@ pk_results_get_details_array (PkResults *results)
*
* Gets the update details from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemUpdateDetail's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemUpdateDetail's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_update_detail_array (PkResults *results)
@@ -849,7 +647,7 @@ pk_results_get_update_detail_array (PkResults *results)
*
* Gets the categories from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemCategory's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemCategory's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_category_array (PkResults *results)
@@ -864,7 +662,7 @@ pk_results_get_category_array (PkResults *results)
*
* Gets the distribution upgrades from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemDistroUpgrade's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemDistroUpgrade's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_distro_upgrade_array (PkResults *results)
@@ -879,7 +677,7 @@ pk_results_get_distro_upgrade_array (PkResults *results)
*
* Gets the require restarts from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemRequireRestart's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemRequireRestart's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_require_restart_array (PkResults *results)
@@ -908,7 +706,7 @@ pk_results_get_require_restart_worst (PkResults *results)
GPtrArray *array;
PkRestartEnum worst = 0;
guint i;
- const PkResultItemRequireRestart *item;
+ const PkItemRequireRestart *item;
g_return_val_if_fail (PK_IS_RESULTS (results), 0);
@@ -928,7 +726,7 @@ pk_results_get_require_restart_worst (PkResults *results)
*
* Gets the transactions from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemTransaction's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemTransaction's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_transaction_array (PkResults *results)
@@ -943,7 +741,7 @@ pk_results_get_transaction_array (PkResults *results)
*
* Gets the files from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemFiles's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemFiles's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_files_array (PkResults *results)
@@ -958,7 +756,7 @@ pk_results_get_files_array (PkResults *results)
*
* Gets the repository signatures required from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemRepoSignatureRequired's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemRepoSignatureRequired's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_repo_signature_required_array (PkResults *results)
@@ -973,7 +771,7 @@ pk_results_get_repo_signature_required_array (PkResults *results)
*
* Gets the eulas required from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemEulaRequired's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemEulaRequired's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_eula_required_array (PkResults *results)
@@ -988,7 +786,7 @@ pk_results_get_eula_required_array (PkResults *results)
*
* Gets the media changes required from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemMediaChangeRequired's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemMediaChangeRequired's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_media_change_required_array (PkResults *results)
@@ -1003,7 +801,7 @@ pk_results_get_media_change_required_array (PkResults *results)
*
* Gets the repository details from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemRepoDetail's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemRepoDetail's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_repo_detail_array (PkResults *results)
@@ -1018,7 +816,7 @@ pk_results_get_repo_detail_array (PkResults *results)
*
* Gets the error codes from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemErrorCode's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemErrorCode's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_error_code_array (PkResults *results)
@@ -1033,9 +831,9 @@ pk_results_get_error_code_array (PkResults *results)
*
* Gets the last error code from the transaction.
*
- * Return value: A #PkResultItemErrorCode, or %NULL
+ * Return value: A #PkItemErrorCode, or %NULL
**/
-const PkResultItemErrorCode *
+const PkItemErrorCode *
pk_results_get_error_code (PkResults *results)
{
GPtrArray *array;
@@ -1054,7 +852,7 @@ pk_results_get_error_code (PkResults *results)
*
* Gets the messages from the transaction.
*
- * Return value: A #GPtrArray array of #PkResultItemMessage's, free with g_ptr_array_unref().
+ * Return value: A #GPtrArray array of #PkItemMessage's, free with g_ptr_array_unref().
**/
GPtrArray *
pk_results_get_message_array (PkResults *results)
@@ -1094,20 +892,20 @@ pk_results_init (PkResults *results)
{
results->priv = PK_RESULTS_GET_PRIVATE (results);
results->priv->exit_enum = PK_EXIT_ENUM_UNKNOWN;
- results->priv->package_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_package_free);
- results->priv->details_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_details_free);
- results->priv->update_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_update_detail_free);
- results->priv->category_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_category_free);
- results->priv->distro_upgrade_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_distro_upgrade_free);
- results->priv->require_restart_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_require_restart_free);
- results->priv->transaction_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_transaction_free);
- results->priv->files_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_files_free);
- results->priv->repo_signature_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_repo_signature_required_free);
- results->priv->eula_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_eula_required_free);
- results->priv->media_change_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_media_change_required_free);
- results->priv->repo_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_repo_detail_free);
- results->priv->error_code_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_error_code_free);
- results->priv->message_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_result_item_message_free);
+ results->priv->package_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_package_unref);
+ results->priv->details_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_details_unref);
+ results->priv->update_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_update_detail_unref);
+ results->priv->category_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_category_unref);
+ results->priv->distro_upgrade_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_distro_upgrade_unref);
+ results->priv->require_restart_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_require_restart_unref);
+ results->priv->transaction_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_transaction_unref);
+ results->priv->files_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_files_unref);
+ results->priv->repo_signature_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_repo_signature_required_unref);
+ results->priv->eula_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_eula_required_unref);
+ results->priv->media_change_required_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_media_change_required_unref);
+ results->priv->repo_detail_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_repo_detail_unref);
+ results->priv->error_code_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_error_code_unref);
+ results->priv->message_array = g_ptr_array_new_with_free_func ((GDestroyNotify) pk_item_message_unref);
}
/**
@@ -1164,7 +962,7 @@ pk_results_test (gpointer user_data)
PkResults *results;
PkExitEnum exit_enum;
GPtrArray *packages;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
if (!egg_test_start (test, "PkResults"))
return;
diff --git a/lib/packagekit-glib2/pk-results.h b/lib/packagekit-glib2/pk-results.h
index 62ef683..f469d5e 100644
--- a/lib/packagekit-glib2/pk-results.h
+++ b/lib/packagekit-glib2/pk-results.h
@@ -34,6 +34,7 @@
#include <glib-object.h>
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-package-sack.h>
+#include <packagekit-glib2/pk-item.h>
G_BEGIN_DECLS
@@ -67,192 +68,6 @@ struct _PkResultsClass
void (*_pk_reserved5) (void);
};
-/**
- * PkResultItemRequireRestart:
- *
- * Object to represent details about the require_restart.
- **/
-typedef struct
-{
- PkRestartEnum restart;
- gchar *package_id;
-} PkResultItemRequireRestart;
-
-/**
- * PkResultItemTransaction:
- *
- * Object to represent details about the transaction.
- **/
-typedef struct
-{
- gchar *tid;
- gchar *timespec;
- gboolean succeeded;
- PkRoleEnum role;
- guint duration;
- gchar *data;
- guint uid;
- gchar *cmdline;
-} PkResultItemTransaction;
-
-/**
- * PkResultItemDetails:
- *
- * Object to represent details about the update.
- **/
-typedef struct {
- gchar *package_id;
- gchar *license;
- PkGroupEnum group_enum;
- gchar *description;
- gchar *url;
- guint64 size;
-} PkResultItemDetails;
-
-/**
- * PkResultItemUpdateDetail:
- *
- * Object to represent details about the update.
- **/
-typedef struct {
- gchar *package_id;
- gchar *updates;
- gchar *obsoletes;
- gchar *vendor_url;
- gchar *bugzilla_url;
- gchar *cve_url;
- PkRestartEnum restart_enum;
- gchar *update_text;
- gchar *changelog;
- PkUpdateStateEnum state_enum;
- GDate *issued;
- GDate *updated;
-} PkResultItemUpdateDetail;
-
-/**
- * PkResultItemPackage:
- *
- * Object to represent details about a package.
- **/
-typedef struct {
- PkInfoEnum info_enum;
- gchar *package_id;
- gchar *summary;
-} PkResultItemPackage;
-
-/**
- * PkResultItemDistroUpgrade:
- *
- * Object to represent details about the distribution update.
- **/
-typedef struct
-{
- PkUpdateStateEnum state;
- gchar *name;
- gchar *summary;
-} PkResultItemDistroUpgrade;
-
-/**
- * PkResultItemCategory:
- *
- * Object to represent details about the category.
- **/
-typedef struct
-{
- gchar *parent_id;
- gchar *cat_id;
- gchar *name;
- gchar *summary;
- gchar *icon;
-} PkResultItemCategory;
-
-/**
- * PkResultItemFiles:
- *
- * Object to represent details about the files.
- **/
-typedef struct
-{
- gchar *package_id;
- gchar **files;
-} PkResultItemFiles;
-
-/**
- * PkResultItemRepoSignatureRequired:
- *
- * Object to represent details about the repository signature request.
- **/
-typedef struct
-{
- gchar *package_id;
- gchar *repository_name;
- gchar *key_url;
- gchar *key_userid;
- gchar *key_id;
- gchar *key_fingerprint;
- gchar *key_timestamp;
- PkSigTypeEnum type;
-} PkResultItemRepoSignatureRequired;
-
-/**
- * PkResultItemEulaRequired:
- *
- * Object to represent details about the EULA request.
- **/
-typedef struct
-{
- gchar *eula_id;
- gchar *package_id;
- gchar *vendor_name;
- gchar *license_agreement;
-} PkResultItemEulaRequired;
-
-/**
- * PkResultItemMediaChangeRequired:
- *
- * Object to represent details about the media change request.
- **/
-typedef struct
-{
- PkMediaTypeEnum media_type;
- gchar *media_id;
- gchar *media_text;
-} PkResultItemMediaChangeRequired;
-
-/**
- * PkResultItemRepoDetail:
- *
- * Object to represent details about the remote repository.
- **/
-typedef struct
-{
- gchar *repo_id;
- gchar *description;
- gboolean enabled;
-} PkResultItemRepoDetail;
-
-/**
- * PkResultItemErrorCode:
- *
- * Object to represent details about the error code.
- **/
-typedef struct
-{
- PkErrorCodeEnum code;
- gchar *details;
-} PkResultItemErrorCode;
-
-/**
- * PkResultItemMessage:
- *
- * Object to represent details about the message.
- **/
-typedef struct
-{
- PkMessageEnum message;
- gchar *details;
-} PkResultItemMessage;
-
GQuark pk_results_error_quark (void);
GType pk_results_get_type (void);
PkResults *pk_results_new (void);
@@ -344,7 +159,7 @@ gboolean pk_results_add_message (PkResults *results,
/* get single data */
PkExitEnum pk_results_get_exit_code (PkResults *results);
PkPackageSack *pk_results_get_package_sack (PkResults *results);
-const PkResultItemErrorCode *pk_results_get_error_code (PkResults *results);
+const PkItemErrorCode *pk_results_get_error_code (PkResults *results);
PkRestartEnum pk_results_get_require_restart_worst (PkResults *results);
/* get array objects */
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
index 76ec568..a793259 100644
--- a/lib/packagekit-glib2/pk-service-pack.c
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -657,7 +657,7 @@ pk_service_pack_get_files_from_array (const GPtrArray *array)
{
gchar **files = NULL;
guint i;
- const PkResultItemFiles *item;
+ const PkItemFiles *item;
/* internal error */
if (array == NULL) {
@@ -763,7 +763,7 @@ pk_service_pack_get_depends_ready_cb (GObject *source_object, GAsyncResult *res,
GPtrArray *array = NULL;
guint i;
guint j = 0;
- const PkResultItemPackage *package;
+ const PkItemPackage *package;
gchar **package_ids = NULL;
gchar **package_ids_to_download = NULL;
@@ -871,7 +871,7 @@ pk_service_pack_get_updates_ready_cb (GObject *source_object, GAsyncResult *res,
PkExitEnum exit_enum;
GPtrArray *array = NULL;
guint i;
- const PkResultItemPackage *package;
+ const PkItemPackage *package;
/* get the results */
results = pk_client_generic_finish (client, res, &error);
diff --git a/lib/packagekit-glib2/pk-task-text.c b/lib/packagekit-glib2/pk-task-text.c
index e2985ba..b571488 100644
--- a/lib/packagekit-glib2/pk-task-text.c
+++ b/lib/packagekit-glib2/pk-task-text.c
@@ -80,7 +80,7 @@ dkp_task_text_key_question (PkTask *task, guint request, PkResults *results)
gboolean ret;
GPtrArray *array;
gchar *package = NULL;
- PkResultItemRepoSignatureRequired *item;
+ PkItemRepoSignatureRequired *item;
PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
/* set some user data, for no reason */
@@ -131,7 +131,7 @@ dkp_task_text_eula_question (PkTask *task, guint request, PkResults *results)
gboolean ret;
gchar *package = NULL;
GPtrArray *array;
- PkResultItemEulaRequired *item;
+ PkItemEulaRequired *item;
PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
/* set some user data, for no reason */
@@ -178,7 +178,7 @@ dkp_task_text_media_change_question (PkTask *task, guint request, PkResults *res
guint i;
gboolean ret;
GPtrArray *array;
- PkResultItemMediaChangeRequired *item;
+ PkItemMediaChangeRequired *item;
PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
/* set some user data, for no reason */
@@ -376,7 +376,7 @@ pk_task_text_test_install_packages_cb (GObject *object, GAsyncResult *res, EggTe
PkResults *results;
PkExitEnum exit_enum;
GPtrArray *packages;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
guint i;
/* get the results */
diff --git a/lib/packagekit-glib2/pk-task-wrapper.c b/lib/packagekit-glib2/pk-task-wrapper.c
index 438ecc7..c2203f8 100644
--- a/lib/packagekit-glib2/pk-task-wrapper.c
+++ b/lib/packagekit-glib2/pk-task-wrapper.c
@@ -70,7 +70,7 @@ dkp_task_wrapper_key_question (PkTask *task, guint request, PkResults *results)
{
guint i;
GPtrArray *array;
- PkResultItemRepoSignatureRequired *item;
+ PkItemRepoSignatureRequired *item;
PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
/* set some user data, for no reason */
@@ -104,7 +104,7 @@ dkp_task_wrapper_eula_question (PkTask *task, guint request, PkResults *results)
{
guint i;
GPtrArray *array;
- PkResultItemEulaRequired *item;
+ PkItemEulaRequired *item;
PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
/* set some user data, for no reason */
@@ -135,7 +135,7 @@ dkp_task_wrapper_media_change_question (PkTask *task, guint request, PkResults *
{
guint i;
GPtrArray *array;
- PkResultItemMediaChangeRequired *item;
+ PkItemMediaChangeRequired *item;
PkTaskWrapperPrivate *priv = PK_TASK_WRAPPER(task)->priv;
/* set some user data, for no reason */
@@ -271,7 +271,7 @@ pk_task_wrapper_test_install_packages_cb (GObject *object, GAsyncResult *res, Eg
PkResults *results;
PkExitEnum exit_enum;
GPtrArray *packages;
- const PkResultItemPackage *item;
+ const PkItemPackage *item;
guint i;
/* get the results */
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 9430048..36b47d2 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -355,7 +355,7 @@ pk_task_install_signatures (PkTaskState *state)
{
GError *error = NULL;
GPtrArray *array;
- const PkResultItemRepoSignatureRequired *item;
+ const PkItemRepoSignatureRequired *item;
/* get results */
array = pk_results_get_repo_signature_required_array (state->results);
@@ -442,7 +442,7 @@ pk_task_accept_eulas (PkTaskState *state)
{
GError *error = NULL;
GPtrArray *array;
- const PkResultItemEulaRequired *item;
+ const PkItemEulaRequired *item;
/* get results */
array = pk_results_get_eula_required_array (state->results);
commit 497572286108943f0ceb20d1f9389666feb0f569
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 11:55:15 2009 +0100
trivial: add one more self test in PkResults
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 35a29df..de1a946 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -1164,6 +1164,7 @@ pk_results_test (gpointer user_data)
PkResults *results;
PkExitEnum exit_enum;
GPtrArray *packages;
+ const PkResultItemPackage *item;
if (!egg_test_start (test, "PkResults"))
return;
@@ -1203,6 +1204,14 @@ pk_results_test (gpointer user_data)
egg_test_title (test, "get package list of set results");
packages = pk_results_get_package_array (results);
egg_test_assert (test, (packages->len == 1));
+
+ /************************************************************/
+ egg_test_title (test, "check data");
+ item = g_ptr_array_index (packages, 0);
+ egg_test_assert (test, (item->info_enum == PK_INFO_ENUM_AVAILABLE &&
+ g_strcmp0 ("gnome-power-manager;0.1.2;i386;fedora", item->package_id) == 0 &&
+ g_strcmp0 ("Power manager for GNOME", item->summary) == 0));
+
g_ptr_array_unref (packages);
g_object_unref (results);
commit 4d778751f74858534ee61874da3390425a94aded
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 11:54:47 2009 +0100
trivial: fix make check in glib2
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index c8fa7dc..c47b4a7 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -132,6 +132,10 @@ pk_self_test_SOURCES = \
pk-task-wrapper.h \
pk-task-text.c \
pk-task-text.h \
+ pk-console-shared.c \
+ pk-console-shared.h \
+ pk-client-sync.c \
+ pk-client-sync.h \
pk-self-test.c \
$(NULL)
commit e1bdf800ff35dc75718ddcbbc9102eda89aee963
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 11:54:26 2009 +0100
trivial: add PK_BUILD_GLIB2 to config.h
diff --git a/configure.ac b/configure.ac
index 79e6d83..342078c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -551,6 +551,9 @@ dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(glib2, AS_HELP_STRING([--enable-glib2],[Build glib2 library (experimental)]),
build_glib2=$enableval,build_glib2=no)
AM_CONDITIONAL(PK_BUILD_GLIB2, test $build_glib2 = "yes")
+if test x$build_glib2 = xyes; then
+ AC_DEFINE(PK_BUILD_GLIB2,1,[Build glib2 code])
+fi
# backends
AC_ARG_ENABLE(alpm, AS_HELP_STRING([--enable-alpm],[use the ALPM backend]),enable_alpm=$enableval,enable_alpm=no)
commit 8bdf42af17184ff0817c0d11ecaa6c733591bdec
Author: warrink <warrink at fedoraproject.org>
Date: Tue Sep 8 08:44:34 2009 +0000
Sending translation for Dutch
diff --git a/po/nl.po b/po/nl.po
index 7d327a6..74fc733 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.nl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-07 08:27+0000\n"
-"PO-Revision-Date: 2009-09-07 14:54+0200\n"
+"POT-Creation-Date: 2009-09-08 08:28+0000\n"
+"PO-Revision-Date: 2009-09-08 10:44+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"
@@ -17,106 +17,106 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:146
msgid "Transaction"
msgstr "Transactie"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:148
msgid "System time"
msgstr "Systeemtijd"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "Succeeded"
msgstr "Geslaagd"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "True"
msgstr "Waar"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "False"
msgstr "Niet waar"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:152
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "Rol"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "Duration"
msgstr "Duur"
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "(seconds)"
msgstr "(seconden)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:161
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "Commando regel"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:163
msgid "User ID"
msgstr "Gebruiker ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:170
msgid "Username"
msgstr "Gebruikernaam"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:174
msgid "Real name"
msgstr "Werkelijke naam"
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:182
msgid "Affected packages:"
msgstr "Betreffende pakketten"
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:184
msgid "Affected packages: None"
msgstr "Betreffende pakketten: Geen"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336 ../client/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "De volgende pakketten moeten worden verwijderd:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339 ../client/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "De volgende pakketten moeten worden geïnstalleerd"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342 ../client/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "De volgende pakketten moeten worden vernieuwd:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345 ../client/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "De volgende pakketten moeten opnieuw geïnstalleerd worden:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348 ../client/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "De volgende pakketten moeten gedegradeerd worden:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:204
msgid "Distribution"
msgstr "Distributie"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:206
msgid "Type"
msgstr "Type"
@@ -124,44 +124,44 @@ msgstr "Type"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
msgid "Summary"
msgstr "Samenvatting"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:218
msgid "Category"
msgstr "Categorie"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:220
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:223
msgid "Parent"
msgstr "Ouder"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:226
msgid "Name"
msgstr "Naam"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:232
msgid "Icon"
msgstr "Icoon"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:246
msgid "Details about the update:"
msgstr "Details van de vernieuwing:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:252
#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
@@ -170,121 +170,121 @@ msgstr[0] "Pakket"
msgstr[1] "Pakketten"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:255
msgid "Updates"
msgstr "Vernieuwingen"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:259
msgid "Obsoletes"
msgstr "Verouderde pakketten"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:263
#: ../client/pk-task-text.c:154
msgid "Vendor"
msgstr "Verkoper"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:267
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:271
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:275
msgid "Restart"
msgstr "Herstarten"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:279
msgid "Update text"
msgstr "Vernieuw tekst"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:283
msgid "Changes"
msgstr "Veranderingen"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:287
msgid "State"
msgstr "Status"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:292
msgid "Issued"
msgstr "Uitgegeven"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:297
msgid "Updated"
msgstr "Vernieuwd"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:315
msgid "Enabled"
msgstr "Aangezit"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:318
msgid "Disabled"
msgstr "Uitgezet"
-#: ../client/pk-console.c:555 ../client/pk-console.c:557
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "Percentage"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "Onbekend"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:340
msgid "System restart required by:"
msgstr "Herstart systeem vereist door:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:343
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:605 ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:346
msgid "System restart (security) required by:"
msgstr "Herstart systeem (beveiliging) vereist door:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:349
msgid "Session restart (security) required:"
msgstr "Herstart sessie (beveiliging) vereist door:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:352
msgid "Application restart required by:"
msgstr "Herstart vereist door toepassing:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:541
msgid "Please restart the computer to complete the update."
msgstr "Herstart a.u.b de computer om de verneuwing af te maken."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:544
msgid "Please logout and login to complete the update."
msgstr "Log a.u.b uit en weer in om de vernieuwing af te maken."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "Herstart a.ub. de toepassing omdat deze in gebruik was."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:547
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -293,83 +293,83 @@ msgstr ""
"beveiligings vernieuwingen geïnstaleerd zijn."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:550
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
msgstr "Log a.u.b. uit en weer in om de verniewing af te maken."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, 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:818
+#: ../client/pk-console.c:817
#, 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: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
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "Interne fout: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../client/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "Doorgaan met veranderingen?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:881 ../client/pk-console.c:953
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
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:900 ../client/pk-console.c:1634
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "Dit programma kon niet de pakketten %s installeren."
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, 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:1028
+#: ../client/pk-console.c:1027
#, 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:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "Dit programma kon het pakket %s niet verwijderen."
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "Doorgaan met additionele pakketten?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1109
+#: ../client/pk-console.c:1108
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:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr ""
@@ -377,217 +377,217 @@ msgstr ""
"kon worden."
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, 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:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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:1271
+#: ../client/pk-console.c:1270
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:1304 ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, 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:1334 ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, 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:1364 ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, 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:1394
+#: ../client/pk-console.c:1393
#, 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:1402
+#: ../client/pk-console.c:1401
#, 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:1424
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "Bestand bestaat reeds: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
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:1435 ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1446
+#: ../client/pk-console.c:1445
#, 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:1480 ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, 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:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "Toe te voegen pakketten"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "Te verwijderen pakketten"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, 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:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "Te installeren"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
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:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "niet gevonden."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, 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:1627
+#: ../client/pk-console.c:1626
#: ../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:1663
+#: ../client/pk-console.c:1662
#, 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:1671
+#: ../client/pk-console.c:1670
#, 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:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "Fout:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:369
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:1732 ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:387
msgid "Message:"
msgstr "Bericht:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:406
msgid "Package files"
msgstr "Pakketbestanden"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:401
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:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "Repository signatuur vereist"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800 ../client/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "Accepteert u deze signatuur?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804 ../client/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "De signatuur werd niet geaccepteerd"
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
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:1846
+#: ../client/pk-console.c:1845
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:1850
+#: ../client/pk-console.c:1849
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:1879 ../client/pk-console-test.c:972
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:819
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:1932 ../client/pk-console-test.c:1006
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:853
msgid "PackageKit Console Interface"
msgstr "PackageKit console-interface"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:855
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:2027 ../client/pk-console-test.c:1099
-#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
-#: ../client/pk-monitor-test.c:282
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:969
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:225
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -595,150 +595,150 @@ msgid "Show extra debugging information"
msgstr "Extra debuginformatie tonen"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:972
#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
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:2033 ../client/pk-console-test.c:1105
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:975
msgid "Set the filter, e.g. installed"
msgstr "Filter instellen, bijvoorbeeld geïnstalleerd"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:978
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:2063
+#: ../client/pk-console.c:2062
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:2153 ../client/pk-console-test.c:1183
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1055
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:2172 ../client/pk-console-test.c:1202
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1074
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:2179 ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
-#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1081 ../client/pk-console-test.c:1093
+#: ../client/pk-console-test.c:1105 ../client/pk-console-test.c:1117
msgid "A search term is required"
msgstr "Een zoekterm is vereist"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1127
msgid "Invalid search type"
msgstr "Ongeldig zoektype"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
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:2228 ../client/pk-console-test.c:1282
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1154
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:2237 ../client/pk-console-test.c:1293
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1165
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:2245 ../client/pk-console-test.c:1302
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1174
msgid "A destination directory and the package names to download are required"
msgstr "Een doelmap en dan de namen van te downloaden pakketten zijn vereist"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1181
msgid "Directory not found"
msgstr "Map niet gevonden"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1190
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:2270 ../client/pk-console-test.c:1329
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1201
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:2287 ../client/pk-console-test.c:1350
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1222
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:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1244
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:2314 ../client/pk-console-test.c:1383
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1255
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:2328 ../client/pk-console-test.c:1401
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1272
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:2335 ../client/pk-console-test.c:1408
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1279
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:2342 ../client/pk-console-test.c:1415
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:934
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:2352 ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
-#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
-#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1289
+#: ../client/pk-console-test.c:1304 ../client/pk-console-test.c:1313
+#: ../client/pk-console-test.c:1333 ../client/pk-console-test.c:1342
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:288
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:2382 ../client/pk-console-test.c:1458
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1322
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:2409
+#: ../client/pk-console.c:2408
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:2419 ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
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:2483 ../client/pk-console-test.c:1538
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1402
#, 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:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "Onjuiste privileges voor deze operatie"
@@ -746,34 +746,39 @@ msgstr "Onjuiste privileges voor deze operatie"
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1414
msgid "Command failed"
msgstr "Opdracht mislukt"
+#: ../client/pk-console-shared.c:53 ../client/pk-tools-common.c:51
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Voer een nummer in van 1 tot %i: "
+
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+#: ../client/pk-console-shared.c:153 ../client/pk-tools-common.c:200
msgid "More than one package matches:"
msgstr "Er zijn meerdere pakketten die overeenkomen:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+#: ../client/pk-console-shared.c:162 ../client/pk-tools-common.c:207
msgid "Please choose the correct package: "
msgstr "Kies alstublieft het juiste pakket: "
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734
+#: ../client/pk-console-test.c:571
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "Dit programma kon het beschikbare pakket %s niet vinden."
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762
+#: ../client/pk-console-test.c:599
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "Dit programma kon het geïinstallerde pakket %s niet vinden."
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
+#: ../client/pk-console-test.c:627 ../client/pk-console-test.c:655
#, c-format
msgid "This tool could not find the package: %s"
msgstr "Dit programma kon het pakket %s niet vinden."
@@ -782,46 +787,51 @@ msgstr "Dit programma kon het pakket %s niet vinden."
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
-#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
-#: ../client/pk-console-test.c:950
+#: ../client/pk-console-test.c:683 ../client/pk-console-test.c:711
+#: ../client/pk-console-test.c:739 ../client/pk-console-test.c:767
+#: ../client/pk-console-test.c:795
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "Dit programma kon niet alle pakketten vinden: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1003
+msgid "Failed to contact PackageKit"
+msgstr "Contact met PackageKit krijgen mislukte."
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1261
+#: ../client/pk-console-test.c:1133
msgid "A package name to install is required"
msgstr "Een pakketnaam om te installeren is vereist"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1270
+#: ../client/pk-console-test.c:1142
msgid "A filename to install is required"
msgstr "Een bestandsnaam om te installeren is vereist"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "Aan het downloaden"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "Pakketten aan het downloaden"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "Afhankelijkheden aan het downloaden"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:190
+#: ../client/pk-generate-pack.c:188 ../client/pk-generate-pack-test.c:228
msgid "Set the file name of dependencies to be excluded"
msgstr ""
"Zet de bestandsnamen van afhankelijkheden die moeten worden uitgesloten"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:193
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:231
msgid ""
"The output file or directory (the current directory is used if ommitted)"
msgstr ""
@@ -829,38 +839,41 @@ msgstr ""
"opgegeven)"
#. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:196
+#: ../client/pk-generate-pack.c:194 ../client/pk-generate-pack-test.c:234
msgid "The package to be put into the service pack"
msgstr "Het pakket dat in het servicepack zal worden opgenomen"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:199
+#: ../client/pk-generate-pack.c:197 ../client/pk-generate-pack-test.c:237
msgid "Put all updates available in the service pack"
msgstr "Doe alle beschikbare updates in het servicepack"
#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:227
+#: ../client/pk-generate-pack.c:225 ../client/pk-generate-pack-test.c:272
msgid "Neither --package or --updates option selected."
msgstr "Noch --package noch --updates als optie geselecteerd."
#. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:235
+#: ../client/pk-generate-pack.c:233 ../client/pk-generate-pack-test.c:280
msgid "Both options selected."
msgstr "Beide opties geselecteerd."
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:251
+#: ../client/pk-generate-pack.c:249 ../client/pk-generate-pack-test.c:296
msgid "A output directory or file name is required"
msgstr "Een doelmap of bestandsnaam is vereist"
#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
#. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:269 ../client/pk-generate-pack.c:275
+#. 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-test.c:324 ../client/pk-generate-pack-test.c:330
msgid "The package manager cannot perform this type of operation."
msgstr "De package manager kan dit type operatie niet uitvoeren."
#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:282
+#: ../client/pk-generate-pack.c:280 ../client/pk-generate-pack-test.c:337
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
@@ -869,55 +882,55 @@ msgstr ""
"ondersteuning is gebouwd."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:293
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:348
msgid "If specifying a file, the service pack name must end with"
msgstr ""
"Bij het specificeren van een bestand moet de servicepacknaam eindigen met"
#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:309
+#: ../client/pk-generate-pack.c:307 ../client/pk-generate-pack-test.c:364
msgid "A pack with the same name already exists, do you want to overwrite it?"
msgstr "Een pack met dezelfde naam bestaat reeds, wilt u deze overschrijven?"
#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:312
+#: ../client/pk-generate-pack.c:310 ../client/pk-generate-pack-test.c:367
msgid "The pack was not overwritten."
msgstr "Het pack werd niet overschreven."
#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:325
+#: ../client/pk-generate-pack.c:323 ../client/pk-generate-pack-test.c:380
msgid "Failed to create directory:"
msgstr "Aanmaken map mislukt:"
#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:335
+#: ../client/pk-generate-pack.c:333 ../client/pk-generate-pack-test.c:392
msgid "Failed to open package list."
msgstr "Pakketlijst openen is niet gelukt."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:346
+#: ../client/pk-generate-pack.c:344 ../client/pk-generate-pack-test.c:401
msgid "Finding package name."
msgstr "Pakketnaam wordt opgezocht."
#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:350
+#: ../client/pk-generate-pack.c:348 ../client/pk-generate-pack-test.c:405
#, c-format
msgid "Failed to find package '%s': %s"
msgstr "Pakket '%s' niet gevonden: %s"
#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:367
+#: ../client/pk-generate-pack.c:365 ../client/pk-generate-pack-test.c:413
msgid "Creating service pack..."
msgstr "Servicepack wordt aangemaakt...."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:428
#, c-format
msgid "Service pack created '%s'"
msgstr "Servicepack aangemaakt '%s'"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:379
+#: ../client/pk-generate-pack.c:377 ../client/pk-generate-pack-test.c:433
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' aanmaken niet gelukt: %s"
@@ -1026,13 +1039,8 @@ msgstr "De juiste media was niet ingebracht."
msgid "The transaction did not proceed."
msgstr "De transactie ging niet verder."
-#: ../client/pk-text.c:50
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "Voer een nummer in van 1 tot %i: "
-
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, c-format
msgid "The package could not be found"
msgstr "Het pakket kon niet worden gevonden"
commit d9b672222ecdd50fbe10b4461bb7995670cc2090
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Sep 8 09:36:16 2009 +0100
glib2: move all the common code into libpackagekit-glib2 and build a private library for bits we don't want to export
diff --git a/client/Makefile.am b/client/Makefile.am
index 94a3ef0..3fbb68d 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -63,26 +63,11 @@ if PK_BUILD_GLIB2
PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
$(NULL)
noinst_PROGRAMS = pkcon-test pkmon-test pkgenpack-test
-noinst_LIBRARIES = libpkconsole.a
-libpkconsole_a_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- egg-string.c \
- egg-string.h \
- pk-task-text.c \
- pk-task-text.h \
- pk-console-shared.c \
- pk-console-shared.h \
- pk-client-sync.c \
- pk-client-sync.h \
- pk-progress-bar.c \
- pk-progress-bar.h \
- $(NULL)
-
libpkconsole_a_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
@@ -92,7 +77,6 @@ pkcon_test_SOURCES = \
$(NULL)
pkcon_test_LDADD = \
- libpkconsole.a \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(PK_GLIB2_LIBS) \
@@ -107,7 +91,6 @@ pkmon_test_SOURCES = \
$(NULL)
pkmon_test_LDADD = \
- libpkconsole.a \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(PK_GLIB2_LIBS) \
@@ -122,7 +105,6 @@ pkgenpack_test_SOURCES = \
$(NULL)
pkgenpack_test_LDADD = \
- libpkconsole.a \
$(ARCHIVE_LIBS) \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
diff --git a/client/pk-client-sync.c b/client/pk-client-sync.c
deleted file mode 100644
index 1f91e4d..0000000
--- a/client/pk-client-sync.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- 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 <stdio.h>
-#include <gio/gio.h>
-#include <glib.h>
-#include <packagekit-glib2/packagekit.h>
-
-#include "egg-debug.h"
-
-#include "pk-client-sync.h"
-
-/* tiny helper to help us do the async operation */
-typedef struct {
- GError **error;
- GMainLoop *loop;
- PkResults *results;
-} PkClientHelper;
-
-/**
- * pk_client_generic_finish_sync:
- **/
-static void
-pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelper *helper)
-{
- PkResults *results;
- /* get the result */
- results = pk_client_generic_finish (client, res, helper->error);
- if (results != NULL) {
- g_object_unref (results);
- helper->results = g_object_ref (G_OBJECT (results));
- }
- g_main_loop_quit (helper->loop);
-}
-
-/**
- * pk_client_resolve_sync:
- * @client: a valid #PkClient instance
- * @error: A #GError or %NULL
- *
- * Resolves a package to a Package ID.
- * Warning: this function is synchronous, and may block. Do not use it in GUI
- * applications.
- *
- * Return value: a %PkResults object, or NULL for error
- **/
-PkResults *
-pk_client_resolve_sync (PkClient *client, PkFilterEnum filter, gchar **packages, GCancellable *cancellable,
- PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
-{
- PkClientHelper *helper;
- PkResults *results;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- helper = g_new0 (PkClientHelper, 1);
- helper->loop = g_main_loop_new (NULL, FALSE);
- helper->error = error;
-
- /* run async method */
- pk_client_resolve_async (client, filter, packages, cancellable, progress_callback, progress_user_data,
- (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
- g_main_loop_run (helper->loop);
-
- results = helper->results;
-
- /* free temp object */
- g_main_loop_unref (helper->loop);
- g_free (helper);
-
- return results;
-}
-
-/**
- * pk_client_search_file_sync:
- * @client: a valid #PkClient instance
- * @error: A #GError or %NULL
- *
- * Resolves a filename to multiple Package IDs.
- * Warning: this function is synchronous, and may block. Do not use it in GUI
- * applications.
- *
- * Return value: a %PkResults object, or NULL for error
- **/
-PkResults *
-pk_client_search_file_sync (PkClient *client, PkFilterEnum filter, const gchar *filename, GCancellable *cancellable,
- PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
-{
- PkClientHelper *helper;
- PkResults *results;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- helper = g_new0 (PkClientHelper, 1);
- helper->loop = g_main_loop_new (NULL, FALSE);
- helper->error = error;
-
- /* run async method */
- pk_client_search_file_async (client, filter, filename, cancellable, progress_callback, progress_user_data,
- (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
- g_main_loop_run (helper->loop);
-
- results = helper->results;
-
- /* free temp object */
- g_main_loop_unref (helper->loop);
- g_free (helper);
-
- return results;
-}
-
diff --git a/client/pk-client-sync.h b/client/pk-client-sync.h
deleted file mode 100644
index f064439..0000000
--- a/client/pk-client-sync.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __PK_CLIENT_SYNC_H
-#define __PK_CLIENT_SYNC_H
-
-#include <glib.h>
-#include <packagekit-glib2/packagekit.h>
-
-PkResults *pk_client_resolve_sync (PkClient *client,
- PkFilterEnum filter,
- gchar **packages,
- GCancellable *cancellable,
- PkProgressCallback progress_callback,
- gpointer progress_user_data,
- GError **error);
-PkResults *pk_client_search_file_sync (PkClient *client,
- PkFilterEnum filter,
- const gchar *filename,
- GCancellable *cancellable,
- PkProgressCallback progress_callback,
- gpointer progress_user_data,
- GError **error);
-
-#endif /* __PK_CLIENT_SYNC_H */
-
-
-
diff --git a/client/pk-console-shared.c b/client/pk-console-shared.c
deleted file mode 100644
index b2359f2..0000000
--- a/client/pk-console-shared.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* -*- 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 <stdio.h>
-#include <gio/gio.h>
-#include <glib/gi18n.h>
-#include <packagekit-glib2/packagekit.h>
-
-#include "egg-debug.h"
-
-#include "pk-client-sync.h"
-#include "pk-console-shared.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';
- gboolean ret = FALSE;
-
- /* 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) fgetc (stdin);
-
- /* positive */
- if (answer == 'y' || answer == 'Y') {
- ret = TRUE;
- break;
- }
- /* negative */
- if (answer == 'n' || answer == 'N')
- break;
-
- /* default choice */
- if (answer == '\n' && defaultyes) {
- ret = TRUE;
- break;
- }
- if (answer == '\n' && !defaultyes)
- break;
- } while (TRUE);
-
- /* remove the trailing \n */
- answer = (gchar) fgetc (stdin);
- if (answer != '\n')
- ungetc (answer, stdin);
-
- return ret;
-}
-
-/**
- * pk_console_resolve_package:
- **/
-gchar *
-pk_console_resolve_package (PkClient *client, PkBitfield filter, const gchar *package, GError **error)
-{
- gchar *package_id = NULL;
- gboolean valid;
- gchar **tmp;
- PkResults *results;
- GPtrArray *array = NULL;
- guint i;
- gchar *printable;
- const PkResultItemPackage *item;
-
- /* have we passed a complete package_id? */
- valid = pk_package_id_check (package);
- if (valid)
- return g_strdup (package);
-
- /* split */
- tmp = g_strsplit (package, ",", -1);
-
- /* get the list of possibles */
- results = pk_client_resolve_sync (client, filter, tmp, NULL, NULL, NULL, error);
- if (results == NULL)
- goto out;
-
- /* get the packages returned */
- array = pk_results_get_package_array (results);
- if (array == NULL) {
- *error = g_error_new (1, 0, "did not get package struct for %s", package);
- goto out;
- }
-
- /* nothing found */
- if (array->len == 0) {
- *error = g_error_new (1, 0, "could not find %s", package);
- goto out;
- }
-
- /* just one thing found */
- if (array->len == 1) {
- item = g_ptr_array_index (array, 0);
- package_id = g_strdup (item->package_id);
- goto out;
- }
-
- /* TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages */
- g_print ("%s\n", _("More than one package matches:"));
- for (i=0; i<array->len; i++) {
- item = g_ptr_array_index (array, i);
- printable = pk_package_id_to_printable (item->package_id);
- g_print ("%i. %s\n", i+1, printable);
- g_free (printable);
- }
-
- /* TRANSLATORS: This finds out which package in the list to use */
- i = pk_console_get_number (_("Please choose the correct package: "), array->len);
- item = g_ptr_array_index (array, i-1);
- package_id = g_strdup (item->package_id);
-out:
- if (results != NULL)
- g_object_unref (results);
- if (array != NULL)
- g_ptr_array_unref (array);
- g_strfreev (tmp);
- return package_id;
-}
-
-/**
- * pk_console_resolve_packages:
- **/
-gchar **
-pk_console_resolve_packages (PkClient *client, PkBitfield filter, gchar **packages, GError **error)
-{
- gchar **package_ids;
- guint i;
- guint len;
-
- /* get length */
- len = g_strv_length (packages);
- egg_debug ("resolving %i packages", len);
-
- /* create output array*/
- package_ids = g_new0 (gchar *, len+1);
-
- /* resolve each package */
- for (i=0; i<len; i++) {
- package_ids[i] = pk_console_resolve_package (client, filter, packages[i], error);
- if (package_ids[i] == NULL) {
- /* destroy state */
- g_strfreev (package_ids);
- package_ids = NULL;
- break;
- }
- }
- return package_ids;
-}
-
diff --git a/client/pk-console-shared.h b/client/pk-console-shared.h
deleted file mode 100644
index 1da5336..0000000
--- a/client/pk-console-shared.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- 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_CONSOLE_SHARED_H
-#define __PK_CONSOLE_SHARED_H
-
-#include <glib.h>
-#include <packagekit-glib2/packagekit.h>
-
-guint pk_console_get_number (const gchar *question,
- guint maxnum);
-gboolean pk_console_get_prompt (const gchar *question,
- gboolean defaultyes);
-gchar *pk_console_resolve_package (PkClient *client,
- PkBitfield filter,
- const gchar *package,
- GError **error);
-gchar **pk_console_resolve_packages (PkClient *client,
- PkBitfield filter,
- gchar **packages,
- GError **error);
-
-#endif /* __PK_CONSOLE_SHARED_H */
-
-
-
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 39fb965..3c6adda 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -28,16 +28,13 @@
#include <stdio.h>
#include <glib/gi18n.h>
#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include <sys/types.h>
#include <pwd.h>
#include <locale.h>
#include "egg-debug.h"
-#include "pk-console-shared.h"
-#include "pk-task-text.h"
-#include "pk-progress-bar.h"
-
#define PK_EXIT_CODE_SYNTAX_INVALID 3
#define PK_EXIT_CODE_FILE_NOT_FOUND 4
diff --git a/client/pk-generate-pack-test.c b/client/pk-generate-pack-test.c
index 2d61d0f..9a6e33b 100644
--- a/client/pk-generate-pack-test.c
+++ b/client/pk-generate-pack-test.c
@@ -30,12 +30,9 @@
#include <glib/gi18n.h>
#include <glib/gstdio.h>
#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include "egg-debug.h"
-#include "egg-string.h"
-
-#include "pk-console-shared.h"
-#include "pk-progress-bar.h"
static PkProgressBar *progressbar = NULL;
static GCancellable *cancellable = NULL;
@@ -283,7 +280,7 @@ main (int argc, char *argv[])
}
/* no argument given to --package */
- if (package != NULL && egg_strzero (package)) {
+ if (package != NULL && package[0] == '\0') {
/* TRANSLATORS: This is when the user fails to supply the package name */
g_print ("%s\n", _("A package name is required"));
retval = 1;
@@ -291,7 +288,7 @@ main (int argc, char *argv[])
}
/* no argument given to --output */
- if (directory != NULL && egg_strzero (directory)) {
+ if (directory != NULL && directory[0] == '\0') {
/* TRANSLATORS: This is when the user fails to supply the output */
g_print ("%s\n", _("A output directory or file name is required"));
retval = 1;
diff --git a/client/pk-progress-bar.c b/client/pk-progress-bar.c
deleted file mode 120000
index cee68ed..0000000
--- a/client/pk-progress-bar.c
+++ /dev/null
@@ -1 +0,0 @@
-../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
deleted file mode 120000
index 2c18deb..0000000
--- a/client/pk-progress-bar.h
+++ /dev/null
@@ -1 +0,0 @@
-../contrib/debuginfo-install/pk-progress-bar.h
\ No newline at end of file
diff --git a/client/pk-task-text.c b/client/pk-task-text.c
deleted file mode 100644
index e2985ba..0000000
--- a/client/pk-task-text.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 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-console-shared.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, PkResults *results)
-{
- gboolean ret;
- PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
-
- /* set some user data, for no reason */
- priv->user_data = NULL;
-
- /* clear new line */
- g_print ("\n");
-
- /* ask the user */
- ret = pk_console_get_prompt (_("Do you want to allow installing of unsigned software?"), FALSE);
- if (ret) {
- 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, 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;
-
- /* clear new line */
- g_print ("\n");
-
- /* 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, 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;
-
- /* clear new line */
- g_print ("\n");
-
- /* 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, 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;
-
- /* clear new line */
- g_print ("\n");
-
- /* 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_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, 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;
-
- /* clear new line */
- g_print ("\n");
-
- /* 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
-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;
- task_class->simulate_question = dkp_task_text_simulate_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;
- PkResults *results;
- 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);
- goto out;
- }
-
- 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 != 3)
- 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));
-out:
- if (results != NULL)
- g_object_unref (results);
- 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
deleted file mode 100644
index 3ec72c2..0000000
--- a/client/pk-task-text.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- 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 */
-
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index 3711387..272807e 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -42,6 +42,7 @@ if PK_BUILD_GLIB2
PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
+ $(top_builddir)/lib/packagekit-glib2/libpackagekitprivate.a \
$(NULL)
noinst_PROGRAMS = pk-command-not-found-test
@@ -51,7 +52,6 @@ pk_command_not_found_test_SOURCES = \
$(NULL)
pk_command_not_found_test_LDADD = \
- ../../client/libpkconsole.a \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(PK_GLIB2_LIBS) \
diff --git a/contrib/command-not-found/pk-command-not-found-test.c b/contrib/command-not-found/pk-command-not-found-test.c
index 21d4900..16ec291 100644
--- a/contrib/command-not-found/pk-command-not-found-test.c
+++ b/contrib/command-not-found/pk-command-not-found-test.c
@@ -29,13 +29,11 @@
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
#include <packagekit-glib2/packagekit.h>
+#include <packagekit-glib2/packagekit-private.h>
#include "egg-debug.h"
#include "egg-string.h"
-#include "../../client/pk-client-sync.h"
-#include "../../client/pk-console-shared.h"
-
#define PK_MAX_PATH_LEN 1023
typedef enum {
diff --git a/contrib/debuginfo-install/pk-progress-bar.c b/contrib/debuginfo-install/pk-progress-bar.c
deleted file mode 100644
index af3bf1c..328b7f0
--- a/contrib/debuginfo-install/pk-progress-bar.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/* -*- 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 <glib.h>
-#include <string.h>
-
-#include "pk-progress-bar.h"
-
-#include "egg-debug.h"
-
-#define PK_PROGRESS_BAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PROGRESS_BAR, PkProgressBarPrivate))
-
-typedef struct {
- guint position;
- gboolean move_forward;
-} PkProgressBarPulseState;
-
-struct PkProgressBarPrivate
-{
- guint size;
- gint percentage;
- guint padding;
- guint timer_id;
- PkProgressBarPulseState pulse_state;
-};
-
-#define PK_PROGRESS_BAR_PERCENTAGE_INVALID 101
-#define PK_PROGRESS_BAR_PULSE_TIMEOUT 40 /* ms */
-
-G_DEFINE_TYPE (PkProgressBar, pk_progress_bar, G_TYPE_OBJECT)
-
-/**
- * pk_progress_bar_set_padding:
- **/
-gboolean
-pk_progress_bar_set_padding (PkProgressBar *self, guint padding)
-{
- g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
- g_return_val_if_fail (padding < 100, FALSE);
- self->priv->padding = padding;
- return TRUE;
-}
-
-/**
- * pk_progress_bar_set_size:
- **/
-gboolean
-pk_progress_bar_set_size (PkProgressBar *self, guint size)
-{
- g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
- g_return_val_if_fail (size < 100, FALSE);
- self->priv->size = size;
- return TRUE;
-}
-
-/**
- * pk_progress_bar_draw:
- **/
-static gboolean
-pk_progress_bar_draw (PkProgressBar *self, gint percentage)
-{
- guint section;
- guint i;
-
- /* no value yet */
- if (percentage == G_MININT)
- return FALSE;
-
- /* restore cursor */
- g_print ("%c8", 0x1B);
-
- section = (guint) ((gfloat) self->priv->size / (gfloat) 100.0 * (gfloat) percentage);
- g_print ("[");
- for (i=0; i<section; i++)
- g_print ("=");
- for (i=0; i<self->priv->size - section; i++)
- g_print (" ");
- g_print ("] ");
- if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
- g_print ("(%i%%) ", self->priv->percentage);
- else
- g_print (" ");
- return TRUE;
-}
-
-/**
- * pk_progress_bar_pulse_bar:
- **/
-static gboolean
-pk_progress_bar_pulse_bar (PkProgressBar *self)
-{
- gint i;
-
- /* restore cursor */
- g_print ("%c8", 0x1B);
-
- if (self->priv->pulse_state.move_forward) {
- if (self->priv->pulse_state.position == self->priv->size - 1)
- self->priv->pulse_state.move_forward = FALSE;
- else
- self->priv->pulse_state.position++;
- } else if (!self->priv->pulse_state.move_forward) {
- if (self->priv->pulse_state.position == 1)
- self->priv->pulse_state.move_forward = TRUE;
- else
- self->priv->pulse_state.position--;
- }
-
- g_print ("[");
- for (i=0; i<(gint)self->priv->pulse_state.position-1; i++)
- g_print (" ");
- g_print ("==");
- for (i=0; i<(gint) (self->priv->size - self->priv->pulse_state.position - 1); i++)
- g_print (" ");
- g_print ("] ");
- if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
- g_print ("(%i%%) ", self->priv->percentage);
- else
- g_print (" ");
-
- return TRUE;
-}
-
-/**
- * pk_progress_bar_draw_pulse_bar:
- **/
-static void
-pk_progress_bar_draw_pulse_bar (PkProgressBar *self)
-{
- /* have we already got zero percent? */
- if (self->priv->timer_id != 0)
- return;
- if (TRUE) {
- self->priv->pulse_state.position = 1;
- self->priv->pulse_state.move_forward = TRUE;
- self->priv->timer_id = g_timeout_add (PK_PROGRESS_BAR_PULSE_TIMEOUT, (GSourceFunc) pk_progress_bar_pulse_bar, self);
- }
-}
-
-/**
- * pk_progress_bar_set_percentage:
- **/
-gboolean
-pk_progress_bar_set_percentage (PkProgressBar *self, gint percentage)
-{
- g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
- g_return_val_if_fail (percentage <= PK_PROGRESS_BAR_PERCENTAGE_INVALID, FALSE);
-
- /* check for old percentage */
- if (percentage == self->priv->percentage) {
- egg_debug ("skipping as the same");
- goto out;
- }
-
- /* save */
- self->priv->percentage = percentage;
-
- /* either pulse or display */
- if (percentage < 0 || percentage > 100) {
- pk_progress_bar_draw (self, 0);
- pk_progress_bar_draw_pulse_bar (self);
- } else {
- if (self->priv->timer_id != 0) {
- g_source_remove (self->priv->timer_id);
- self->priv->timer_id = 0;
- }
- pk_progress_bar_draw (self, percentage);
- }
-out:
- return TRUE;
-}
-
-/**
- * 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_progress_bar_start:
- **/
-gboolean
-pk_progress_bar_start (PkProgressBar *self, const gchar *text)
-{
- gchar *text_pad;
-
- g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
-
- /* finish old value */
- if (self->priv->percentage != G_MININT) {
- pk_progress_bar_draw (self, 100);
- g_print ("\n");
- }
-
- /* make these all the same length */
- text_pad = pk_strpad (text, self->priv->padding);
- g_print ("%s", text_pad);
-
- /* save cursor in new position */
- g_print ("%c7", 0x1B);
-
- /* reset */
- if (self->priv->percentage == G_MININT)
- self->priv->percentage = 0;
- pk_progress_bar_draw (self, 0);
-
- g_free (text_pad);
- return TRUE;
-}
-
-/**
- * pk_progress_bar_end:
- **/
-gboolean
-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");
-
- return TRUE;
-}
-
-/**
- * pk_progress_bar_finalize:
- **/
-static void
-pk_progress_bar_finalize (GObject *object)
-{
- PkProgressBar *self;
- g_return_if_fail (PK_IS_PROGRESS_BAR (object));
- self = PK_PROGRESS_BAR (object);
-
- if (self->priv->timer_id != 0)
- g_source_remove (self->priv->timer_id);
-
- G_OBJECT_CLASS (pk_progress_bar_parent_class)->finalize (object);
-}
-
-/**
- * pk_progress_bar_class_init:
- **/
-static void
-pk_progress_bar_class_init (PkProgressBarClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = pk_progress_bar_finalize;
- g_type_class_add_private (klass, sizeof (PkProgressBarPrivate));
-}
-
-/**
- * pk_progress_bar_init:
- **/
-static void
-pk_progress_bar_init (PkProgressBar *self)
-{
- self->priv = PK_PROGRESS_BAR_GET_PRIVATE (self);
-
- self->priv->size = 10;
- self->priv->percentage = G_MININT;
- self->priv->padding = 0;
- self->priv->timer_id = 0;
-}
-
-/**
- * pk_progress_bar_new:
- * Return value: A new progress_bar class instance.
- **/
-PkProgressBar *
-pk_progress_bar_new (void)
-{
- PkProgressBar *self;
- self = g_object_new (PK_TYPE_PROGRESS_BAR, NULL);
- return PK_PROGRESS_BAR (self);
-}
-
-/***************************************************************************
- *** MAKE CHECK TESTS ***
- ***************************************************************************/
-#ifdef EGG_TEST
-#include "egg-test.h"
-
-void
-egg_test_progress_bar (EggTest *test)
-{
- PkProgressBar *self;
-
- if (!egg_test_start (test, "PkProgressBar"))
- return;
-
- /************************************************************/
- egg_test_title (test, "get an instance");
- self = pk_progress_bar_new ();
- if (self != NULL)
- egg_test_success (test, NULL);
- else
- egg_test_failed (test, NULL);
-
- g_object_unref (self);
-
- egg_test_end (test);
-}
-#endif
-
diff --git a/contrib/debuginfo-install/pk-progress-bar.c b/contrib/debuginfo-install/pk-progress-bar.c
new file mode 120000
index af3bf1c..328b7f0
--- /dev/null
+++ b/contrib/debuginfo-install/pk-progress-bar.c
@@ -0,0 +1 @@
+../../lib/packagekit-glib2/pk-progress-bar.c
\ No newline at end of file
diff --git a/contrib/debuginfo-install/pk-progress-bar.h b/contrib/debuginfo-install/pk-progress-bar.h
deleted file mode 100644
index 6ea14b0..154855a
--- a/contrib/debuginfo-install/pk-progress-bar.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __PK_PROGRESS_BAR_H
-#define __PK_PROGRESS_BAR_H
-
-#include <glib-object.h>
-#include <packagekit-glib/packagekit.h>
-
-G_BEGIN_DECLS
-
-#define PK_TYPE_PROGRESS_BAR (pk_progress_bar_get_type ())
-#define PK_PROGRESS_BAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PROGRESS_BAR, PkProgressBar))
-#define PK_PROGRESS_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PROGRESS_BAR, PkProgressBarClass))
-#define PK_IS_PROGRESS_BAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PROGRESS_BAR))
-#define PK_IS_PROGRESS_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PROGRESS_BAR))
-#define PK_PROGRESS_BAR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PROGRESS_BAR, PkProgressBarClass))
-
-typedef struct PkProgressBarPrivate PkProgressBarPrivate;
-
-typedef struct
-{
- GObject parent;
- PkProgressBarPrivate *priv;
-} PkProgressBar;
-
-typedef struct
-{
- GObjectClass parent_class;
-} PkProgressBarClass;
-
-GType pk_progress_bar_get_type (void);
-PkProgressBar *pk_progress_bar_new (void);
-gboolean pk_progress_bar_set_size (PkProgressBar *progress_bar,
- guint size);
-gboolean pk_progress_bar_set_padding (PkProgressBar *progress_bar,
- guint padding);
-gboolean pk_progress_bar_set_percentage (PkProgressBar *progress_bar,
- gint percentage);
-gboolean pk_progress_bar_start (PkProgressBar *progress_bar,
- const gchar *text);
-gboolean pk_progress_bar_end (PkProgressBar *progress_bar);
-
-G_END_DECLS
-
-#endif /* __PK_PROGRESS_BAR_H */
diff --git a/contrib/debuginfo-install/pk-progress-bar.h b/contrib/debuginfo-install/pk-progress-bar.h
new file mode 120000
index 6ea14b0..154855a
--- /dev/null
+++ b/contrib/debuginfo-install/pk-progress-bar.h
@@ -0,0 +1 @@
+../../lib/packagekit-glib2/pk-progress-bar.h
\ No newline at end of file
diff --git a/lib/packagekit-glib2/.gitignore b/lib/packagekit-glib2/.gitignore
index a013a7d..329ec3c 100644
--- a/lib/packagekit-glib2/.gitignore
+++ b/lib/packagekit-glib2/.gitignore
@@ -1,5 +1,6 @@
.deps
.libs
+*.a
*.o
*.la
*.lo
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index b6d4536..c8fa7dc 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -100,6 +100,26 @@ libpackagekit_glib2_la_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
+noinst_LIBRARIES = libpackagekitprivate.a
+libpackagekitprivate_a_SOURCES = \
+ egg-debug.c \
+ egg-debug.h \
+ egg-string.c \
+ egg-string.h \
+ pk-task-text.c \
+ pk-task-text.h \
+ pk-client-sync.c \
+ pk-client-sync.h \
+ pk-console-shared.c \
+ pk-console-shared.h \
+ pk-progress-bar.c \
+ pk-progress-bar.h \
+ $(NULL)
+
+libpackagekitprivate_a_CFLAGS = \
+ $(WARNINGFLAGS_C) \
+ $(NULL)
+
if EGG_BUILD_TESTS
check_PROGRAMS = \
pk-self-test
@@ -110,6 +130,8 @@ pk_self_test_SOURCES = \
egg-test.c \
pk-task-wrapper.c \
pk-task-wrapper.h \
+ pk-task-text.c \
+ pk-task-text.h \
pk-self-test.c \
$(NULL)
diff --git a/lib/packagekit-glib2/packagekit-private.h b/lib/packagekit-glib2/packagekit-private.h
new file mode 100644
index 0000000..55cea2a
--- /dev/null
+++ b/lib/packagekit-glib2/packagekit-private.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 __PACKAGEKIT_PRIVATE_H__
+#define __PACKAGEKIT_PRIVATE_H__
+
+#define __PACKAGEKIT_PRIVATE_H_INSIDE__
+
+#include <packagekit-glib2/pk-client-sync.h>
+#include <packagekit-glib2/pk-task-text.h>
+#include <packagekit-glib2/pk-console-shared.h>
+#include <packagekit-glib2/pk-progress-bar.h>
+
+#undef __PACKAGEKIT_PRIVATE_H_INSIDE__
+
+#endif /* __PACKAGEKIT_PRIVATE_H__ */
+
diff --git a/lib/packagekit-glib2/pk-client-sync.c b/lib/packagekit-glib2/pk-client-sync.c
new file mode 100644
index 0000000..1f91e4d
--- /dev/null
+++ b/lib/packagekit-glib2/pk-client-sync.c
@@ -0,0 +1,133 @@
+/* -*- 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 <stdio.h>
+#include <gio/gio.h>
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+#include "pk-client-sync.h"
+
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ PkResults *results;
+} PkClientHelper;
+
+/**
+ * pk_client_generic_finish_sync:
+ **/
+static void
+pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelper *helper)
+{
+ PkResults *results;
+ /* get the result */
+ results = pk_client_generic_finish (client, res, helper->error);
+ if (results != NULL) {
+ g_object_unref (results);
+ helper->results = g_object_ref (G_OBJECT (results));
+ }
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_client_resolve_sync:
+ * @client: a valid #PkClient instance
+ * @error: A #GError or %NULL
+ *
+ * Resolves a package to a Package ID.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_resolve_sync (PkClient *client, PkFilterEnum filter, gchar **packages, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_resolve_async (client, filter, packages, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_search_file_sync:
+ * @client: a valid #PkClient instance
+ * @error: A #GError or %NULL
+ *
+ * Resolves a filename to multiple Package IDs.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_search_file_sync (PkClient *client, PkFilterEnum filter, const gchar *filename, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_search_file_async (client, filter, filename, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
diff --git a/lib/packagekit-glib2/pk-client-sync.h b/lib/packagekit-glib2/pk-client-sync.h
new file mode 100644
index 0000000..f064439
--- /dev/null
+++ b/lib/packagekit-glib2/pk-client-sync.h
@@ -0,0 +1,46 @@
+/* -*- 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.
+ */
+
+#ifndef __PK_CLIENT_SYNC_H
+#define __PK_CLIENT_SYNC_H
+
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+PkResults *pk_client_resolve_sync (PkClient *client,
+ PkFilterEnum filter,
+ gchar **packages,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+PkResults *pk_client_search_file_sync (PkClient *client,
+ PkFilterEnum filter,
+ const gchar *filename,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+#endif /* __PK_CLIENT_SYNC_H */
+
+
+
diff --git a/lib/packagekit-glib2/pk-console-shared.c b/lib/packagekit-glib2/pk-console-shared.c
new file mode 100644
index 0000000..b2359f2
--- /dev/null
+++ b/lib/packagekit-glib2/pk-console-shared.c
@@ -0,0 +1,203 @@
+/* -*- 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 <stdio.h>
+#include <gio/gio.h>
+#include <glib/gi18n.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+#include "pk-client-sync.h"
+#include "pk-console-shared.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';
+ gboolean ret = FALSE;
+
+ /* 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) fgetc (stdin);
+
+ /* positive */
+ if (answer == 'y' || answer == 'Y') {
+ ret = TRUE;
+ break;
+ }
+ /* negative */
+ if (answer == 'n' || answer == 'N')
+ break;
+
+ /* default choice */
+ if (answer == '\n' && defaultyes) {
+ ret = TRUE;
+ break;
+ }
+ if (answer == '\n' && !defaultyes)
+ break;
+ } while (TRUE);
+
+ /* remove the trailing \n */
+ answer = (gchar) fgetc (stdin);
+ if (answer != '\n')
+ ungetc (answer, stdin);
+
+ return ret;
+}
+
+/**
+ * pk_console_resolve_package:
+ **/
+gchar *
+pk_console_resolve_package (PkClient *client, PkBitfield filter, const gchar *package, GError **error)
+{
+ gchar *package_id = NULL;
+ gboolean valid;
+ gchar **tmp;
+ PkResults *results;
+ GPtrArray *array = NULL;
+ guint i;
+ gchar *printable;
+ const PkResultItemPackage *item;
+
+ /* have we passed a complete package_id? */
+ valid = pk_package_id_check (package);
+ if (valid)
+ return g_strdup (package);
+
+ /* split */
+ tmp = g_strsplit (package, ",", -1);
+
+ /* get the list of possibles */
+ results = pk_client_resolve_sync (client, filter, tmp, NULL, NULL, NULL, error);
+ if (results == NULL)
+ goto out;
+
+ /* get the packages returned */
+ array = pk_results_get_package_array (results);
+ if (array == NULL) {
+ *error = g_error_new (1, 0, "did not get package struct for %s", package);
+ goto out;
+ }
+
+ /* nothing found */
+ if (array->len == 0) {
+ *error = g_error_new (1, 0, "could not find %s", package);
+ goto out;
+ }
+
+ /* just one thing found */
+ if (array->len == 1) {
+ item = g_ptr_array_index (array, 0);
+ package_id = g_strdup (item->package_id);
+ goto out;
+ }
+
+ /* TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages */
+ g_print ("%s\n", _("More than one package matches:"));
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ printable = pk_package_id_to_printable (item->package_id);
+ g_print ("%i. %s\n", i+1, printable);
+ g_free (printable);
+ }
+
+ /* TRANSLATORS: This finds out which package in the list to use */
+ i = pk_console_get_number (_("Please choose the correct package: "), array->len);
+ item = g_ptr_array_index (array, i-1);
+ package_id = g_strdup (item->package_id);
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ if (array != NULL)
+ g_ptr_array_unref (array);
+ g_strfreev (tmp);
+ return package_id;
+}
+
+/**
+ * pk_console_resolve_packages:
+ **/
+gchar **
+pk_console_resolve_packages (PkClient *client, PkBitfield filter, gchar **packages, GError **error)
+{
+ gchar **package_ids;
+ guint i;
+ guint len;
+
+ /* get length */
+ len = g_strv_length (packages);
+ egg_debug ("resolving %i packages", len);
+
+ /* create output array*/
+ package_ids = g_new0 (gchar *, len+1);
+
+ /* resolve each package */
+ for (i=0; i<len; i++) {
+ package_ids[i] = pk_console_resolve_package (client, filter, packages[i], error);
+ if (package_ids[i] == NULL) {
+ /* destroy state */
+ g_strfreev (package_ids);
+ package_ids = NULL;
+ break;
+ }
+ }
+ return package_ids;
+}
+
diff --git a/lib/packagekit-glib2/pk-console-shared.h b/lib/packagekit-glib2/pk-console-shared.h
new file mode 100644
index 0000000..1da5336
--- /dev/null
+++ b/lib/packagekit-glib2/pk-console-shared.h
@@ -0,0 +1,44 @@
+/* -*- 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_CONSOLE_SHARED_H
+#define __PK_CONSOLE_SHARED_H
+
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+guint pk_console_get_number (const gchar *question,
+ guint maxnum);
+gboolean pk_console_get_prompt (const gchar *question,
+ gboolean defaultyes);
+gchar *pk_console_resolve_package (PkClient *client,
+ PkBitfield filter,
+ const gchar *package,
+ GError **error);
+gchar **pk_console_resolve_packages (PkClient *client,
+ PkBitfield filter,
+ gchar **packages,
+ GError **error);
+
+#endif /* __PK_CONSOLE_SHARED_H */
+
+
+
diff --git a/lib/packagekit-glib2/pk-progress-bar.c b/lib/packagekit-glib2/pk-progress-bar.c
new file mode 100644
index 0000000..af3bf1c
--- /dev/null
+++ b/lib/packagekit-glib2/pk-progress-bar.c
@@ -0,0 +1,357 @@
+/* -*- 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 <glib.h>
+#include <string.h>
+
+#include "pk-progress-bar.h"
+
+#include "egg-debug.h"
+
+#define PK_PROGRESS_BAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_PROGRESS_BAR, PkProgressBarPrivate))
+
+typedef struct {
+ guint position;
+ gboolean move_forward;
+} PkProgressBarPulseState;
+
+struct PkProgressBarPrivate
+{
+ guint size;
+ gint percentage;
+ guint padding;
+ guint timer_id;
+ PkProgressBarPulseState pulse_state;
+};
+
+#define PK_PROGRESS_BAR_PERCENTAGE_INVALID 101
+#define PK_PROGRESS_BAR_PULSE_TIMEOUT 40 /* ms */
+
+G_DEFINE_TYPE (PkProgressBar, pk_progress_bar, G_TYPE_OBJECT)
+
+/**
+ * pk_progress_bar_set_padding:
+ **/
+gboolean
+pk_progress_bar_set_padding (PkProgressBar *self, guint padding)
+{
+ g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
+ g_return_val_if_fail (padding < 100, FALSE);
+ self->priv->padding = padding;
+ return TRUE;
+}
+
+/**
+ * pk_progress_bar_set_size:
+ **/
+gboolean
+pk_progress_bar_set_size (PkProgressBar *self, guint size)
+{
+ g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
+ g_return_val_if_fail (size < 100, FALSE);
+ self->priv->size = size;
+ return TRUE;
+}
+
+/**
+ * pk_progress_bar_draw:
+ **/
+static gboolean
+pk_progress_bar_draw (PkProgressBar *self, gint percentage)
+{
+ guint section;
+ guint i;
+
+ /* no value yet */
+ if (percentage == G_MININT)
+ return FALSE;
+
+ /* restore cursor */
+ g_print ("%c8", 0x1B);
+
+ section = (guint) ((gfloat) self->priv->size / (gfloat) 100.0 * (gfloat) percentage);
+ g_print ("[");
+ for (i=0; i<section; i++)
+ g_print ("=");
+ for (i=0; i<self->priv->size - section; i++)
+ g_print (" ");
+ g_print ("] ");
+ if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
+ g_print ("(%i%%) ", self->priv->percentage);
+ else
+ g_print (" ");
+ return TRUE;
+}
+
+/**
+ * pk_progress_bar_pulse_bar:
+ **/
+static gboolean
+pk_progress_bar_pulse_bar (PkProgressBar *self)
+{
+ gint i;
+
+ /* restore cursor */
+ g_print ("%c8", 0x1B);
+
+ if (self->priv->pulse_state.move_forward) {
+ if (self->priv->pulse_state.position == self->priv->size - 1)
+ self->priv->pulse_state.move_forward = FALSE;
+ else
+ self->priv->pulse_state.position++;
+ } else if (!self->priv->pulse_state.move_forward) {
+ if (self->priv->pulse_state.position == 1)
+ self->priv->pulse_state.move_forward = TRUE;
+ else
+ self->priv->pulse_state.position--;
+ }
+
+ g_print ("[");
+ for (i=0; i<(gint)self->priv->pulse_state.position-1; i++)
+ g_print (" ");
+ g_print ("==");
+ for (i=0; i<(gint) (self->priv->size - self->priv->pulse_state.position - 1); i++)
+ g_print (" ");
+ g_print ("] ");
+ if (self->priv->percentage >= 0 && self->priv->percentage != PK_PROGRESS_BAR_PERCENTAGE_INVALID)
+ g_print ("(%i%%) ", self->priv->percentage);
+ else
+ g_print (" ");
+
+ return TRUE;
+}
+
+/**
+ * pk_progress_bar_draw_pulse_bar:
+ **/
+static void
+pk_progress_bar_draw_pulse_bar (PkProgressBar *self)
+{
+ /* have we already got zero percent? */
+ if (self->priv->timer_id != 0)
+ return;
+ if (TRUE) {
+ self->priv->pulse_state.position = 1;
+ self->priv->pulse_state.move_forward = TRUE;
+ self->priv->timer_id = g_timeout_add (PK_PROGRESS_BAR_PULSE_TIMEOUT, (GSourceFunc) pk_progress_bar_pulse_bar, self);
+ }
+}
+
+/**
+ * pk_progress_bar_set_percentage:
+ **/
+gboolean
+pk_progress_bar_set_percentage (PkProgressBar *self, gint percentage)
+{
+ g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
+ g_return_val_if_fail (percentage <= PK_PROGRESS_BAR_PERCENTAGE_INVALID, FALSE);
+
+ /* check for old percentage */
+ if (percentage == self->priv->percentage) {
+ egg_debug ("skipping as the same");
+ goto out;
+ }
+
+ /* save */
+ self->priv->percentage = percentage;
+
+ /* either pulse or display */
+ if (percentage < 0 || percentage > 100) {
+ pk_progress_bar_draw (self, 0);
+ pk_progress_bar_draw_pulse_bar (self);
+ } else {
+ if (self->priv->timer_id != 0) {
+ g_source_remove (self->priv->timer_id);
+ self->priv->timer_id = 0;
+ }
+ pk_progress_bar_draw (self, percentage);
+ }
+out:
+ return TRUE;
+}
+
+/**
+ * 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_progress_bar_start:
+ **/
+gboolean
+pk_progress_bar_start (PkProgressBar *self, const gchar *text)
+{
+ gchar *text_pad;
+
+ g_return_val_if_fail (PK_IS_PROGRESS_BAR (self), FALSE);
+
+ /* finish old value */
+ if (self->priv->percentage != G_MININT) {
+ pk_progress_bar_draw (self, 100);
+ g_print ("\n");
+ }
+
+ /* make these all the same length */
+ text_pad = pk_strpad (text, self->priv->padding);
+ g_print ("%s", text_pad);
+
+ /* save cursor in new position */
+ g_print ("%c7", 0x1B);
+
+ /* reset */
+ if (self->priv->percentage == G_MININT)
+ self->priv->percentage = 0;
+ pk_progress_bar_draw (self, 0);
+
+ g_free (text_pad);
+ return TRUE;
+}
+
+/**
+ * pk_progress_bar_end:
+ **/
+gboolean
+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");
+
+ return TRUE;
+}
+
+/**
+ * pk_progress_bar_finalize:
+ **/
+static void
+pk_progress_bar_finalize (GObject *object)
+{
+ PkProgressBar *self;
+ g_return_if_fail (PK_IS_PROGRESS_BAR (object));
+ self = PK_PROGRESS_BAR (object);
+
+ if (self->priv->timer_id != 0)
+ g_source_remove (self->priv->timer_id);
+
+ G_OBJECT_CLASS (pk_progress_bar_parent_class)->finalize (object);
+}
+
+/**
+ * pk_progress_bar_class_init:
+ **/
+static void
+pk_progress_bar_class_init (PkProgressBarClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = pk_progress_bar_finalize;
+ g_type_class_add_private (klass, sizeof (PkProgressBarPrivate));
+}
+
+/**
+ * pk_progress_bar_init:
+ **/
+static void
+pk_progress_bar_init (PkProgressBar *self)
+{
+ self->priv = PK_PROGRESS_BAR_GET_PRIVATE (self);
+
+ self->priv->size = 10;
+ self->priv->percentage = G_MININT;
+ self->priv->padding = 0;
+ self->priv->timer_id = 0;
+}
+
+/**
+ * pk_progress_bar_new:
+ * Return value: A new progress_bar class instance.
+ **/
+PkProgressBar *
+pk_progress_bar_new (void)
+{
+ PkProgressBar *self;
+ self = g_object_new (PK_TYPE_PROGRESS_BAR, NULL);
+ return PK_PROGRESS_BAR (self);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+egg_test_progress_bar (EggTest *test)
+{
+ PkProgressBar *self;
+
+ if (!egg_test_start (test, "PkProgressBar"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get an instance");
+ self = pk_progress_bar_new ();
+ if (self != NULL)
+ egg_test_success (test, NULL);
+ else
+ egg_test_failed (test, NULL);
+
+ g_object_unref (self);
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-progress-bar.h b/lib/packagekit-glib2/pk-progress-bar.h
new file mode 100644
index 0000000..6ea14b0
--- /dev/null
+++ b/lib/packagekit-glib2/pk-progress-bar.h
@@ -0,0 +1,64 @@
+/* -*- 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.
+ */
+
+#ifndef __PK_PROGRESS_BAR_H
+#define __PK_PROGRESS_BAR_H
+
+#include <glib-object.h>
+#include <packagekit-glib/packagekit.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_PROGRESS_BAR (pk_progress_bar_get_type ())
+#define PK_PROGRESS_BAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_PROGRESS_BAR, PkProgressBar))
+#define PK_PROGRESS_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_PROGRESS_BAR, PkProgressBarClass))
+#define PK_IS_PROGRESS_BAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_PROGRESS_BAR))
+#define PK_IS_PROGRESS_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_PROGRESS_BAR))
+#define PK_PROGRESS_BAR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_PROGRESS_BAR, PkProgressBarClass))
+
+typedef struct PkProgressBarPrivate PkProgressBarPrivate;
+
+typedef struct
+{
+ GObject parent;
+ PkProgressBarPrivate *priv;
+} PkProgressBar;
+
+typedef struct
+{
+ GObjectClass parent_class;
+} PkProgressBarClass;
+
+GType pk_progress_bar_get_type (void);
+PkProgressBar *pk_progress_bar_new (void);
+gboolean pk_progress_bar_set_size (PkProgressBar *progress_bar,
+ guint size);
+gboolean pk_progress_bar_set_padding (PkProgressBar *progress_bar,
+ guint padding);
+gboolean pk_progress_bar_set_percentage (PkProgressBar *progress_bar,
+ gint percentage);
+gboolean pk_progress_bar_start (PkProgressBar *progress_bar,
+ const gchar *text);
+gboolean pk_progress_bar_end (PkProgressBar *progress_bar);
+
+G_END_DECLS
+
+#endif /* __PK_PROGRESS_BAR_H */
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 4d0b231..2656aa9 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -36,6 +36,7 @@
#include "pk-package-sack.h"
#include "pk-results.h"
#include "pk-task.h"
+#include "pk-task-text.h"
#include "pk-task-wrapper.h"
#include "pk-version.h"
@@ -63,6 +64,7 @@ main (int argc, char **argv)
pk_package_sack_test (test);
pk_task_test (test);
pk_task_wrapper_test (test);
+ pk_task_text_test (test);
return (egg_test_finish (test));
}
diff --git a/lib/packagekit-glib2/pk-task-text.c b/lib/packagekit-glib2/pk-task-text.c
new file mode 100644
index 0000000..e2985ba
--- /dev/null
+++ b/lib/packagekit-glib2/pk-task-text.c
@@ -0,0 +1,463 @@
+/* -*- 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-console-shared.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, PkResults *results)
+{
+ gboolean ret;
+ PkTaskTextPrivate *priv = PK_TASK_TEXT(task)->priv;
+
+ /* set some user data, for no reason */
+ priv->user_data = NULL;
+
+ /* clear new line */
+ g_print ("\n");
+
+ /* ask the user */
+ ret = pk_console_get_prompt (_("Do you want to allow installing of unsigned software?"), FALSE);
+ if (ret) {
+ 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, 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;
+
+ /* clear new line */
+ g_print ("\n");
+
+ /* 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, 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;
+
+ /* clear new line */
+ g_print ("\n");
+
+ /* 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, 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;
+
+ /* clear new line */
+ g_print ("\n");
+
+ /* 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_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, 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;
+
+ /* clear new line */
+ g_print ("\n");
+
+ /* 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
+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;
+ task_class->simulate_question = dkp_task_text_simulate_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;
+ PkResults *results;
+ 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);
+ goto out;
+ }
+
+ 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 != 3)
+ 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));
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ 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/lib/packagekit-glib2/pk-task-text.h b/lib/packagekit-glib2/pk-task-text.h
new file mode 100644
index 0000000..3ec72c2
--- /dev/null
+++ b/lib/packagekit-glib2/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 */
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 9cd6a74..62a3c58 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,21 +2,22 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
client/pk-console.c
-client/pk-console-shared.c
client/pk-console-test.c
client/pk-generate-pack.c
client/pk-generate-pack-test.c
client/pk-monitor.c
client/pk-monitor-test.c
-client/pk-task-text.c
client/pk-tools-common.c
contrib/browser-plugin/pk-plugin-install.c
contrib/command-not-found/pk-command-not-found.c
+contrib/command-not-found/pk-command-not-found-test.c
contrib/debuginfo-install/pk-debuginfo-install.c
contrib/device-rebind/pk-device-rebind.c
data/packagekit-catalog.xml.in
data/packagekit-package-list.xml.in
data/packagekit-servicepack.xml.in
+lib/packagekit-glib2/pk-console-shared.c
+lib/packagekit-glib2/pk-task-text.c
policy/org.freedesktop.packagekit.policy.in
src/pk-main.c
src/pk-polkit-action-lookup.c
commit cf4ffdc679162848bbe50a36a958e9daca8ea9f1
Author: hunter688 <hunter688 at fedoraproject.org>
Date: Tue Sep 8 08:30:18 2009 +0000
Sending translation for Czech
diff --git a/po/cs.po b/po/cs.po
index 438256f..4b11769 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: packagekit.master.cs\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-09-04 08:25+0000\n"
-"PO-Revision-Date: 2009-09-04 15:38+0100\n"
+"PO-Revision-Date: 2009-09-07 16:56+0100\n"
"Last-Translator: Dušan Hokův <dusan at mirc.cz>\n"
"Language-Team: Czech <fedora-cs-list at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -34,17 +34,17 @@ msgstr "Systémový Äas"
#: ../client/pk-console.c:242
#: ../client/pk-console-test.c:150
msgid "Succeeded"
-msgstr ""
+msgstr "ÃspÄÅ¡né"
#: ../client/pk-console.c:242
#: ../client/pk-console-test.c:150
msgid "True"
-msgstr ""
+msgstr "Pravda"
#: ../client/pk-console.c:242
#: ../client/pk-console-test.c:150
msgid "False"
-msgstr ""
+msgstr "Nepravda"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
@@ -52,13 +52,13 @@ msgstr ""
#: ../client/pk-console-test.c:152
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
-msgstr ""
+msgstr "Role"
#. TRANSLATORS: this is The duration of the transaction
#: ../client/pk-console.c:249
#: ../client/pk-console-test.c:157
msgid "Duration"
-msgstr ""
+msgstr "Doba trvánÃ"
#: ../client/pk-console.c:249
#: ../client/pk-console-test.c:157
@@ -99,7 +99,7 @@ msgstr "OvlivnÄné balÃky:"
#: ../client/pk-console.c:276
#: ../client/pk-console-test.c:184
msgid "Affected packages: None"
-msgstr ""
+msgstr "OvlivnÄné balÃÄky: Žádné"
#. TRANSLATORS: When processing, we might have to remove other dependencies
#: ../client/pk-console.c:337
@@ -170,7 +170,7 @@ msgstr "ID"
#: ../client/pk-console.c:384
#: ../client/pk-console-test.c:223
msgid "Parent"
-msgstr ""
+msgstr "NadÅazený"
#. TRANSLATORS: this is the name of the parent group
#: ../client/pk-console.c:387
@@ -249,7 +249,7 @@ msgstr "Text aktualizace"
#: ../client/pk-console.c:441
#: ../client/pk-console-test.c:283
msgid "Changes"
-msgstr ""
+msgstr "ZmÄny"
#. TRANSLATORS: details about the update, the ongoing state of the update
#: ../client/pk-console.c:445
@@ -273,18 +273,18 @@ msgstr "Aktualizován"
#: ../client/pk-console.c:475
#: ../client/pk-console-test.c:315
msgid "Enabled"
-msgstr ""
+msgstr "Povoleno"
#. TRANSLATORS: if the repo is disabled
#: ../client/pk-console.c:478
#: ../client/pk-console-test.c:318
msgid "Disabled"
-msgstr ""
+msgstr "Zakázáno"
#: ../client/pk-console.c:555
#: ../client/pk-console.c:557
msgid "Percentage"
-msgstr ""
+msgstr "ProcentuálnÃ"
#: ../client/pk-console.c:557
msgid "Unknown"
@@ -299,23 +299,20 @@ msgstr "Restart systému požaduje:"
#. TRANSLATORS: a package requires the session to be restarted
#: ../client/pk-console.c:602
#: ../client/pk-console-test.c:343
-#, fuzzy
msgid "Session restart required:"
-msgstr "Je požadován restart systému"
+msgstr "Je požadován restart sezenÃ:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
#: ../client/pk-console.c:605
#: ../client/pk-console-test.c:346
-#, fuzzy
msgid "System restart (security) required by:"
-msgstr "Je požadován restart systému"
+msgstr "Restart (bezpeÄnostnÃ) systému požaduje:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
#: ../client/pk-console.c:608
#: ../client/pk-console-test.c:349
-#, fuzzy
msgid "Session restart (security) required:"
-msgstr "Je požadován restart systému"
+msgstr "Je požadován restart (bezpeÄnostnÃ) sezenÃ:"
#. TRANSLATORS: a package requires the application to be restarted
#: ../client/pk-console.c:611
@@ -389,7 +386,7 @@ msgstr "Internà chyba: %s"
#: ../client/pk-console.c:1266
#: ../client/pk-task-text.c:284
msgid "Proceed with changes?"
-msgstr ""
+msgstr "PokraÄovat se zmÄnami?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
#: ../client/pk-console.c:881
@@ -561,12 +558,12 @@ msgstr "BalÃk '%s' nemůže být nainstalován: %s"
#. TRANSLATORS: follows a list of packages to install
#: ../client/pk-console.c:1594
msgid "To install"
-msgstr ""
+msgstr "K instalaci"
#. TRANSLATORS: searching takes some time....
#: ../client/pk-console.c:1606
msgid "Searching for package: "
-msgstr ""
+msgstr "Hledánà balÃÄku:"
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
#: ../client/pk-console.c:1610
@@ -723,7 +720,7 @@ msgstr "Tento nástroj se nemůže pÅipojit k systému DBUS"
#: ../client/pk-console.c:2153
#: ../client/pk-console-test.c:1279
msgid "The filter specified was invalid"
-msgstr ""
+msgstr "UrÄený filtr byl neplatný"
#. TRANSLATORS: a search type can be name, details, file, etc
#: ../client/pk-console.c:2172
@@ -807,9 +804,8 @@ msgstr "NásledujÃcà balÃky musà být odstranÄny"
#: ../client/pk-console.c:2305
#: ../client/pk-console-test.c:1448
#: ../client/pk-console-test.c:1459
-#, fuzzy
msgid "A repository name is required"
-msgstr "Vyžaduje podpis repozitáÅe"
+msgstr "Je tÅeba urÄit název repozitáÅe"
#. TRANSLATORS: The user didn't provide any data
#: ../client/pk-console.c:2314
@@ -828,9 +824,8 @@ msgstr "Je nutné zadat akci, napÅ. 'update-system'"
#. TRANSLATORS: The user specified an invalid action
#: ../client/pk-console.c:2335
#: ../client/pk-console-test.c:1495
-#, fuzzy
msgid "A correct role is required"
-msgstr "Je požadováno odhlášenà a pÅihlášenÃ"
+msgstr "Je požadována správná role"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
#: ../client/pk-console.c:2342
@@ -851,9 +846,8 @@ msgstr ""
#: ../client/pk-console-test.c:1556
#: ../client/pk-console-test.c:1565
#: ../client/pk-generate-pack.c:243
-#, fuzzy
msgid "A package name is required"
-msgstr "Je požadováno odhlášenà a pÅihlášenÃ"
+msgstr "Je požadován název balÃÄku"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
#: ../client/pk-console.c:2382
@@ -883,9 +877,8 @@ msgstr "Volba '%s' nenà podporována "
#. TRANSLATORS: User does not have permission to do this
#: ../client/pk-console.c:2496
-#, fuzzy
msgid "Incorrect privileges for this operation"
-msgstr "Nemáte nezbytné oprávnÄnà pro tuto operaci"
+msgstr "Nesprávná oprávnÄnà pro tuto operaci"
#. TRANSLATORS: Generic failure of what they asked to do
#. /* TRANSLATORS: User does not have permission to do this */
@@ -944,9 +937,8 @@ msgstr "ObÄ volby vybrány."
#. TRANSLATORS: This is when the user fails to supply the output
#: ../client/pk-generate-pack.c:251
-#, fuzzy
msgid "A output directory or file name is required"
-msgstr "Je požadováno odhlášenà a pÅihlášenÃ"
+msgstr "Je požadován výstupnà adresáŠnebo název souboru"
#. 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
@@ -1020,17 +1012,16 @@ msgstr "PackageKit Monitor"
#: ../client/pk-monitor.c:183
msgid "Cannot show the list of transactions"
-msgstr ""
+msgstr "Nelze zobrazit seznam transakcÃ"
#. ask the user
#: ../client/pk-task-text.c:61
msgid "Do you want to allow installing of unsigned software?"
-msgstr ""
+msgstr "Chcete povolit instalovánà nepodepsaného softwaru?"
#: ../client/pk-task-text.c:65
-#, fuzzy
msgid "The unsigned software will not be installed."
-msgstr "BalÃk '%s' nemůže být nainstalován: %s"
+msgstr "Nepodepsaný software nebude nainstalován."
#: ../client/pk-task-text.c:94
#, fuzzy
@@ -1044,27 +1035,25 @@ msgstr "ZmÄnit parametry zdrojů softwaru"
#: ../client/pk-task-text.c:97
msgid "Key URL"
-msgstr ""
+msgstr "URL klÃÄe"
#: ../client/pk-task-text.c:98
msgid "Key user"
-msgstr ""
+msgstr "Uživatel klÃÄe"
#: ../client/pk-task-text.c:99
-#, fuzzy
msgid "Key ID"
-msgstr "Uživatelské ID"
+msgstr "ID klÃÄe"
#: ../client/pk-task-text.c:100
msgid "Key fingerprint"
-msgstr ""
+msgstr "Fingerprint klÃÄe"
#: ../client/pk-task-text.c:101
msgid "Key Timestamp"
-msgstr ""
+msgstr "Äasová znaÄka klÃÄe"
#: ../client/pk-task-text.c:142
-#, fuzzy
msgid "End user licence agreement required"
msgstr "Vyžaduje souhlas s licencà koncového uživatele"
@@ -1086,9 +1075,8 @@ msgid "The agreement was not accepted."
msgstr "Ujednánà nebylo pÅijato."
#: ../client/pk-task-text.c:182
-#, fuzzy
msgid "Media change required"
-msgstr "Nemohu zjistit, které balÃky jsou vyžadovány"
+msgstr "Je vyžadována zmÄna média"
#: ../client/pk-task-text.c:183
msgid "Media type"
@@ -1104,18 +1092,16 @@ msgstr "Text"
#. ask the user
#: ../client/pk-task-text.c:189
-#, fuzzy
msgid "Please insert the correct media"
-msgstr "ProsÃm vyberte správný balÃk: "
+msgstr "ProsÃm vlžte správné médium"
#: ../client/pk-task-text.c:193
-#, fuzzy
msgid "The correct media was not inserted."
-msgstr "Podpis nebyl pÅijat."
+msgstr "Nebylo vloženo správné médium."
#: ../client/pk-task-text.c:288
msgid "The transaction did not proceed."
-msgstr ""
+msgstr "Transakce nemohla pokraÄovat."
#: ../client/pk-text.c:50
#, c-format
@@ -1195,18 +1181,17 @@ msgstr "Instaluji..."
#. TRANSLATORS: downloading repo data so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:349
msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "Stahuji detaily o zdrojÃch software."
#. TRANSLATORS: downloading file lists so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:353
msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "Stahuji seznamy souborů (dokonÄenà může chvÃli trvat)."
#. TRANSLATORS: waiting for native lock
#: ../contrib/command-not-found/pk-command-not-found.c:357
-#, fuzzy
msgid "Waiting for package manager lock."
-msgstr "Hledám jméno balÃku."
+msgstr "Äekám na zámek správce balÃÄků."
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
@@ -1233,9 +1218,8 @@ msgstr "PackageKit Monitor"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
#: ../contrib/command-not-found/pk-command-not-found.c:658
-#, fuzzy
msgid "Command not found."
-msgstr "AdresáŠnenalezen"
+msgstr "PÅÃkaz nenalezen."
#. TRANSLATORS: tell the user what we think the command is
#: ../contrib/command-not-found/pk-command-not-found.c:665
@@ -1262,7 +1246,7 @@ msgstr "ProsÃm vyberte pÅÃkaz ke spuÅ¡tÄnÃ"
#. TRANSLATORS: tell the user what package provides the command
#: ../contrib/command-not-found/pk-command-not-found.c:721
msgid "The package providing this file is:"
-msgstr ""
+msgstr "BalÃk poskytujÃcà tento soubor je:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
#: ../contrib/command-not-found/pk-command-not-found.c:726
@@ -1273,19 +1257,18 @@ msgstr ""
#. TRANSLATORS: Show the user a list of packages that provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:747
msgid "Packages providing this file are:"
-msgstr ""
+msgstr "BalÃky poskytujÃcà tento soubor jsou:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
#: ../contrib/command-not-found/pk-command-not-found.c:756
msgid "Suitable packages are:"
-msgstr ""
+msgstr "Možné balÃky jsou:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
#: ../contrib/command-not-found/pk-command-not-found.c:764
-#, fuzzy
msgid "Please choose a package to install"
-msgstr "Nemohu najÃt balÃk, který se má instalovat"
+msgstr "ProsÃm vyberte balÃÄek k instalaci"
#. TRANSLATORS: we are starting to install the packages
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
@@ -1327,9 +1310,9 @@ msgstr "Vyberte balÃk nebo soubor, která se bude instalovat"
#. TRANSLATORS: we are getting the list of repositories
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
-#, fuzzy, c-format
+#, c-format
msgid "Getting sources list"
-msgstr "ZjiÅ¡Å¥uji informace o balÃcÃch..."
+msgstr "ZÃskávám seznam zdrojů"
#. TRANSLATORS: all completed 100%
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:640
@@ -1347,7 +1330,7 @@ msgstr "OK."
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:643
#, c-format
msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "Nalezeno %i povolených a %i zakázaných zdrojů."
#. TRANSLATORS: we're finding repositories that match out pattern
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:650
@@ -1432,9 +1415,9 @@ msgstr "Nalezeno %i extra balÃÄků."
#. TRANSLATORS: tell the user we found some more packages
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851
-#, fuzzy, c-format
+#, c-format
msgid "No extra packages required."
-msgstr "Nemohu zjistit, které balÃky jsou vyžadovány"
+msgstr "Nejsou potÅeba žádné extra balÃÄky."
#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:860
@@ -1517,7 +1500,7 @@ msgstr "AdresáŠnenalezen"
#. TRANSLATORS: user did not specify a valid device sysfs path
#: ../contrib/device-rebind/pk-device-rebind.c:268
msgid "Incorrect device path specified"
-msgstr ""
+msgstr "UrÄena nesprávná cesta zaÅÃzenÃ"
#. command line argument, simulate what would be done, but don't actually do it
#: ../contrib/device-rebind/pk-device-rebind.c:296
@@ -1549,7 +1532,7 @@ msgstr "Tento skript může být použit pouze uživatelem root"
#. TRANSLATORS: we're going to verify the path first
#: ../contrib/device-rebind/pk-device-rebind.c:341
msgid "Verifying device path"
-msgstr ""
+msgstr "OvÄÅuji cestu zaÅÃzenÃ"
#. TRANSLATORS: user did not specify a device sysfs path that exists
#: ../contrib/device-rebind/pk-device-rebind.c:346
@@ -1689,7 +1672,7 @@ msgstr "Nainstalovat mÃstnà nedůvÄryhodný soubor"
#.
#: ../policy/org.freedesktop.packagekit.policy.in.h:50
msgid "Refresh system sources"
-msgstr ""
+msgstr "Obnovit systémové zdroje"
#. SECURITY:
#. - Normal users require admin authentication to rebind a driver
@@ -1852,9 +1835,8 @@ msgstr "Å kodlivý software může poÅ¡kodit váš poÄÃtaÄ nebo způsobit jin
#. TRANSLATORS: too many packages to list each one
#: ../src/pk-polkit-action-lookup.c:274
-#, fuzzy
msgid "Many packages"
-msgstr "Aktualizovat balÃk"
+msgstr "Mnoho balÃÄků"
#. TRANSLATORS: if the transaction is forced to install only trusted packages
#: ../src/pk-polkit-action-lookup.c:334
commit ac344052bb0cbdfe7898815a2b88a5223784afdd
Author: shanky <shanky at fedoraproject.org>
Date: Tue Sep 8 07:25:23 2009 +0000
Sending translation for Kannada
diff --git a/po/kn.po b/po/kn.po
index 7acc3e6..fd40bc1 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -1,14 +1,14 @@
-# translation of packagekit.master.PackageKit.po to Kannada
+# translation of packagekit.master.kn.po to Kannada
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Shankar Prasad <svenkate at redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: packagekit.master.PackageKit\n"
+"Project-Id-Version: packagekit.master.kn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-07 19:02+0000\n"
-"PO-Revision-Date: 2009-09-08 00:46+0530\n"
+"POT-Creation-Date: 2009-09-08 04:30+0000\n"
+"PO-Revision-Date: 2009-09-08 12:53+0530\n"
"Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
"Language-Team: Kannada <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -290,8 +290,8 @@ msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
msgstr ""
-"ಪà³à²°à²®à³à²à²µà²¾à²¦ ಸà³à²°à²à³à²·à²¤à²¾ à²
ಪà³âಡà³à²à³âà²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²°à³à²µà³à²¦à²°à²¿à²à²¦ à²
ಪà³âಡà³à²à³ à²
ನà³à²¨à³ ಪà³à²°à³à²£à²à³à²³à²¿à²¸à²²à³ ದಯವಿà²à³à²à³ "
-"à²à²£à²à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à²¿."
+"ಪà³à²°à²®à³à²à²µà²¾à²¦ ಸà³à²°à²à³à²·à²¤à²¾ à²
ಪà³âಡà³à²à³âà²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²°à³à²µà³à²¦à²°à²¿à²à²¦ à²
ಪà³âಡà³à²à³ à²
ನà³à²¨à³ ಪà³à²°à³à²£à²à³à²³à²¿à²¸à²²à³ "
+"ದಯವಿà²à³à²à³ à²à²£à²à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à²¿."
#. TRANSLATORS: a package needs to restart the session (due to security)
#: ../client/pk-console.c:677 ../client/pk-console-test.c:550
@@ -617,25 +617,25 @@ msgid "This tool could not connect to system DBUS."
msgstr "ವà³à²¯à²µà²¸à³à²¥à³à²¯ DBUS ನà³à²à²¦à²¿à²à³ ಸà²à²ªà²°à³à²à²¸à²¾à²§à²¿à²¸à²²à³à² à²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1053
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1055
msgid "The filter specified was invalid"
msgstr "ಸà³à²à²¿à²¸à²²à²¾à²¦ ಫಿಲà³à²à²°à³ à²
ಮಾನà³à²¯à²µà²¾à²à²¿à²¦à³"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1072
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1074
msgid "A search type is required, e.g. name"
msgstr "à²à²à²¦à³ ಹà³à²¡à³à²à³ ಬà²à³à²¯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³, à²à²¦à²¾. ಹà³à²¸à²°à³"
#. TRANSLATORS: the user needs to provide a search term
#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
-#: ../client/pk-console-test.c:1079 ../client/pk-console-test.c:1091
-#: ../client/pk-console-test.c:1103 ../client/pk-console-test.c:1115
+#: ../client/pk-console-test.c:1081 ../client/pk-console-test.c:1093
+#: ../client/pk-console-test.c:1105 ../client/pk-console-test.c:1117
msgid "A search term is required"
msgstr "à²à²à²¦à³ ಹà³à²¡à³à²à³ ಪದದ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1125
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1127
msgid "Invalid search type"
msgstr "à²
ಮಾನà³à²¯à²µà²¾à²¦ ಹà³à²¡à³à²à³ ಬà²à³"
@@ -645,58 +645,58 @@ 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:2227 ../client/pk-console-test.c:1152
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1154
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:2236 ../client/pk-console-test.c:1163
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1165
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:2244 ../client/pk-console-test.c:1172
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1174
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:2251 ../client/pk-console-test.c:1179
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1181
msgid "Directory not found"
msgstr "à²à³à²¶à²µà³ à²à²à²¡à³à²¬à²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1188
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1190
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:2269 ../client/pk-console-test.c:1199
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1201
msgid "A transaction identifier (tid) is required"
msgstr "ವà³à²¯à²µà²¹à²¾à²° ಪತà³à²¤à³à²à²¾à²°à²¨ (tid) à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1220
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1222
msgid "A package name to resolve is required"
msgstr "ಪರಿಹರಿಸಬà³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user did not specify a repository (software source) name
#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
-#: ../client/pk-console-test.c:1231 ../client/pk-console-test.c:1242
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1244
msgid "A repository name is required"
msgstr "à²à²à²¦à³ ರà³à²ªà³à²¸à²¿à²à²°à²¿ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1253
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1255
msgid "A repo name, parameter and value are required"
msgstr "à²à²à²¦à³ ರà³à²ªà³ ಹà³à²¸à²°à³, ನಿಯತಾà²à² ಹಾà²à³ ಮà³à²²à³à²¯à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1270
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1272
msgid "An action, e.g. 'update-system' is required"
msgstr "à²à²à²¦à³ à²à³à²°à²¿à²¯à³à²¯, à²à²¦à²¾. 'update-system' à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1277
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1279
msgid "A correct role is required"
msgstr "ಸà³à²à³à²¤à²µà²¾à²¦ ಪಾತà³à²°à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
@@ -709,15 +709,15 @@ msgstr "ಠà²à²¾à²°à³à²¯à²µà²¨à³à²¨à³ à²à³à²¨à³à²¯ ಬಾರಿà²à³ à²
#. TRANSLATORS: This is when the user fails to supply the package name
#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
-#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1287
-#: ../client/pk-console-test.c:1302 ../client/pk-console-test.c:1311
-#: ../client/pk-console-test.c:1331 ../client/pk-console-test.c:1340
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1289
+#: ../client/pk-console-test.c:1304 ../client/pk-console-test.c:1313
+#: ../client/pk-console-test.c:1333 ../client/pk-console-test.c:1342
#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:288
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:2381 ../client/pk-console-test.c:1320
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1322
msgid "A package provide string is required"
msgstr "ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ à²à²¦à²à²¿à²¸à³à²µ ವಾà²à³à²¯à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
@@ -732,7 +732,7 @@ msgid "A list file to open is required"
msgstr "ತà³à²°à³à²¯à²¬à³à²à²¿à²°à³à²µ à²à²¡à²¤à²¦ à²à²à²¦à³ ಪà²à³à²à²¿à²¯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1400
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1402
#, c-format
msgid "Option '%s' is not supported"
msgstr "à²à²¯à³à²à³ '%s' ಯೠಬà³à²à²¬à²²à²¿à²¤à²µà²¾à²à²¿à²²à³à²²"
@@ -746,22 +746,22 @@ msgstr "ಠà²à²¾à²°à³à²¯à²à³à²à²¾à²à²¿à²¨ ಸರಿಯಲà³à²²à²¦ ಸವ
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1412
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1414
msgid "Command failed"
msgstr "à²à²à³à²à³à²¯à³ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
-#: ../client/pk-console-shared.c:52 ../client/pk-tools-common.c:51
+#: ../client/pk-console-shared.c:53 ../client/pk-tools-common.c:51
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "1 ರಿà²à²¦ %i à²à²³à²à²¿à²¨ à²à²à²¦à³ à²
à²à²à³à²¯à²¨à³à²¨à³ ನಮà³à²¦à²¿à²¸à²¿: "
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-shared.c:213 ../client/pk-tools-common.c:200
+#: ../client/pk-console-shared.c:153 ../client/pk-tools-common.c:200
msgid "More than one package matches:"
msgstr "à²à²à²¦à²à³à²à²¿à²à²¤ ಹà³à²à³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à³ ತಾಳà³à²¯à²¾à²à³à²¤à³à²¤à²µà³:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-shared.c:222 ../client/pk-tools-common.c:207
+#: ../client/pk-console-shared.c:162 ../client/pk-tools-common.c:207
msgid "Please choose the correct package: "
msgstr "ದಯವಿà²à³à²à³ ಸರಿಯಾದ ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ à²à²¯à³à²à³ ಮಾಡಿ: "
@@ -794,13 +794,18 @@ msgstr "ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ ಪತ
msgid "This tool could not find all the packages: %s"
msgstr "ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ à²à²²à³à²²à²¾ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console-test.c:1003
+msgid "Failed to contact PackageKit"
+msgstr "PackageKit à²
ನà³à²¨à³ ಸà²à²ªà²°à³à²à²¿à²¸à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
+
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1131
+#: ../client/pk-console-test.c:1133
msgid "A package name to install is required"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²à²à²¦à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1140
+#: ../client/pk-console-test.c:1142
msgid "A filename to install is required"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²à²à²¦à³ à²à²¡à²¤à²¦ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
@@ -868,7 +873,9 @@ msgstr "ಪà³à²¯à²¾à²à³à²à³ ವà³à²¯à²µà²¸à³à²¥à²¾à²ªà² ಠಬà²à³à²¯
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
-msgstr "PackageKit à²
ನà³à²¨à³ libarchive ಬà³à²à²¬à²²à²¦à³à²à²¦à²¿à²à³ ನಿರà³à²®à²¿à²¸à²¦à³ à²à²°à³à²µ à²à²¾à²°à²£ ಸರà³à²µà²¿à²¸à³ ಪà³à²¯à²¾à²à³âà²à²³à²¨à³à²¨à³ ನಿರà³à²®à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¿à²°à³à²µà³à²¦à²¿à²²à³à²²."
+msgstr ""
+"PackageKit à²
ನà³à²¨à³ libarchive ಬà³à²à²¬à²²à²¦à³à²à²¦à²¿à²à³ ನಿರà³à²®à²¿à²¸à²¦à³ à²à²°à³à²µ à²à²¾à²°à²£ ಸರà³à²µà²¿à²¸à³ ಪà³à²¯à²¾à²à³âà²à²³à²¨à³à²¨à³ "
+"ನಿರà³à²®à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¿à²°à³à²µà³à²¦à²¿à²²à³à²²."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:348
@@ -1190,7 +1197,9 @@ msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ ಹà³à²¡à³à²à²²à³ ವಿ
#. command line argument, simulate what would be done, but don't actually do it
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
msgid "Don't actually install any packages, only simulate what would be installed"
-msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ನಿà²à²µà²¾à²à²¿à²¯à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡, à²à²¨à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¦à³ à²à²¨à³à²¨à³à²µà³à²¦à²¨à³à²¨à³ ತà³à²°à²¿à²¸à³"
+msgstr ""
+"ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ನಿà²à²µà²¾à²à²¿à²¯à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡, à²à²¨à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¦à³ à²à²¨à³à²¨à³à²µà³à²¦à²¨à³à²¨à³ "
+"ತà³à²°à²¿à²¸à³"
#. command line argument, do we skip packages that depend on the ones specified
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
@@ -1710,7 +1719,9 @@ 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."
@@ -1718,7 +1729,9 @@ msgstr "ಸà³à²°à²à³à²·à²¿à²¤à²µà²¾à²à²¿à²¦à³ à²à²à²¦à³ ನಿಮà²à³
#: ../src/pk-polkit-action-lookup.c:193
msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr "ಠಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à³à²µà³à²¦à³ ಸà³à²°à²à³à²·à²¿à²¤ à²à²à²¦à³ ನಿಮà²à³ à²à²à²¿à²¤à²µà²¿à²°à²¦ ಹà³à²°à²¤à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡à²¿."
+msgstr ""
+"ಠಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à³à²µà³à²¦à³ ಸà³à²°à²à³à²·à²¿à²¤ à²à²à²¦à³ ನಿಮà²à³ à²à²à²¿à²¤à²µà²¿à²°à²¦ ಹà³à²°à²¤à³ "
+"à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡à²¿."
#. TRANSLATORS: warn the user that all bets are off
#: ../src/pk-polkit-action-lookup.c:199
commit 760d82df2869762e7274913fb816d84c778d428a
Author: mvdz <mvdz at fedoraproject.org>
Date: Tue Sep 8 04:30:32 2009 +0000
Sending translation for Ukrainian
diff --git a/po/uk.po b/po/uk.po
index f5749f5..7b6a45b 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,153 +7,165 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-25 14:38+0000\n"
-"PO-Revision-Date: 2009-08-26 18:00+0300\n"
+"POT-Creation-Date: 2009-09-05 08:29+0000\n"
+"PO-Revision-Date: 2009-09-05 16:46+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor at ukr.net>\n"
"Language-Team: Ukrainian <translation at linux.org.ua>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Lokalize 0.3\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
msgid "Transaction"
msgstr "ÐпеÑаÑÑÑ"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
msgid "System time"
msgstr "СиÑÑемний ÑаÑ"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
msgid "Succeeded"
msgstr "УÑпÑÑне"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:465
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
msgid "True"
msgstr "Так"
-#: ../client/pk-console.c:239 ../client/pk-console.c:465
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
msgid "False"
msgstr "ÐÑ"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "РолÑ"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
msgid "Duration"
msgstr "ТÑивалÑÑÑÑ"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
msgid "(seconds)"
msgstr "(ÑекÑнд)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "Ðомандний ÑÑдок"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
msgid "User ID"
msgstr "ÐРкоÑиÑÑÑваÑа"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
msgid "Username"
msgstr "ÐоÑиÑÑÑваÑ"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
msgid "Real name"
msgstr "СпÑÐ°Ð²Ð¶Ð½Ñ ÑмâÑ"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
msgid "Affected packages:"
msgstr "ÐадÑÑÐ½Ñ Ð¿Ð°ÐºÑнки:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
msgid "Affected packages: None"
msgstr "ÐадÑÑÐ½Ñ Ð¿Ð°ÐºÑнки: ÐемаÑ"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "ÐÐ°Ð²ÐµÐ´ÐµÐ½Ñ Ð½Ð¸Ð¶Ñе пакÑнки бÑде вилÑÑено:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "СлÑд вÑÑановиÑи ÑÐ°ÐºÑ Ð¿Ð°ÐºÑнки:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "СлÑд оновиÑи ÑÐ°ÐºÑ Ð¿Ð°ÐºÑнки:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "СлÑд пеÑевÑÑановиÑи ÑÐ°ÐºÑ Ð¿Ð°ÐºÑнки:"
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+msgid "The following packages have to be downgraded:"
+msgstr "СлÑд вÑÑановиÑи ÑÑаÑÑÑÑ Ð²ÐµÑÑÑÑ ÑакиÑ
пакÑнкÑв:"
+
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:357
+#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
msgid "Distribution"
msgstr "ÐиÑÑÑибÑÑив"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
msgid "Type"
msgstr "Тип"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:361 ../client/pk-console.c:384
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
msgid "Summary"
msgstr "РезÑме"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:373
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
msgid "Category"
msgstr "ÐаÑегоÑÑÑ"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
msgid "ID"
msgstr "ÐÐ"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
msgid "Parent"
msgstr "ÐаÑÑкÑвÑÑка"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
msgid "Name"
msgstr "Ðазва"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:387
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
msgid "Icon"
msgstr "ÐнаÑок"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:402
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
msgid "Details about the update:"
msgstr "ÐодÑобиÑÑ Ñодо оновленнÑ:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:404 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
msgstr[0] "ÐакÑнок"
@@ -161,649 +173,756 @@ msgstr[1] "ÐакÑнки"
msgstr[2] "ÐакÑнки"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:407
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
msgid "Updates"
msgstr "ÐновлÑÑ"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:411
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
msgid "Obsoletes"
msgstr "РобиÑÑ Ð·Ð°ÑÑаÑÑлим"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:415
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
msgid "Vendor"
msgstr "ÐоÑÑаÑалÑник"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:419
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:423
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:427
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
msgid "Restart"
msgstr "ÐеÑезапÑÑк"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:431
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
msgid "Update text"
msgstr "ТекÑÑ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:435
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
msgid "Changes"
msgstr "ÐмÑни"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:439
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
msgid "State"
msgstr "СÑан"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:444
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
msgid "Issued"
msgstr "ÐипÑÑено"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:449
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
msgid "Updated"
msgstr "Ðновлено"
-#: ../client/pk-console.c:536 ../client/pk-console.c:538
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+msgid "Enabled"
+msgstr "УвÑмкнено"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+msgid "Disabled"
+msgstr "Ðимкнено"
+
+#: ../client/pk-console.c:555 ../client/pk-console.c:557
msgid "Percentage"
msgstr "ÐÑдÑоÑки"
-#: ../client/pk-console.c:538
+#: ../client/pk-console.c:557
msgid "Unknown"
msgstr "ÐевÑдомо"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:580
+#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
msgid "System restart required by:"
msgstr "ÐеÑезаванÑÐ°Ð¶ÐµÐ½Ð½Ñ ÑиÑÑеми поÑÑÑбне длÑ:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:583
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
msgid "Session restart required:"
msgstr "ÐеÑезапÑÑк ÑеанÑÑ Ð¿Ð¾ÑÑÑбен:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:586
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
msgid "System restart (security) required by:"
msgstr "ÐоÑÑÑбне пеÑезаванÑÐ°Ð¶ÐµÐ½Ð½Ñ ÑиÑÑеми (безпека) длÑ:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:589
+#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
msgid "Session restart (security) required:"
msgstr "ÐоÑÑÑбен пеÑезапÑÑк ÑеанÑÑ (безпека):"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:592
+#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
msgid "Application restart required by:"
msgstr "ÐоÑÑÑбен пеÑезапÑÑк пÑогÑами длÑ:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:647
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
msgid "Please restart the computer to complete the update."
msgstr "Щоб завеÑÑиÑи оновленнÑ, пеÑезаванÑажÑе ÑиÑÑемÑ."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
msgid "Please logout and login to complete the update."
msgstr "Щоб завеÑÑиÑи оновленнÑ, вийдÑÑÑ Ð· облÑкового запиÑÑ Ñ ÑвÑйдÑÑÑ Ð·Ð½Ð¾Ð²Ñ."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:653
+#: ../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:656
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
-msgstr "пеÑезаванÑажÑе ÑиÑÑемÑ, Ñоб завеÑÑиÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¸Ñ
Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸."
+msgstr ""
+"пеÑезаванÑажÑе ÑиÑÑемÑ, Ñоб завеÑÑиÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¸Ñ
Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
msgstr ""
-"Щоб завеÑÑиÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¸Ñ
Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ñ "
-"безпеки вийдÑÑÑ Ð· облÑкового запиÑÑ Ñ ÑвÑйдÑÑÑ Ð´Ð¾ нÑого зновÑ."
+"Щоб завеÑÑиÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð°Ð¶Ð»Ð¸Ð²Ð¸Ñ
Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ вийдÑÑÑ Ð· облÑкового "
+"запиÑÑ Ñ ÑвÑйдÑÑÑ Ð´Ð¾ нÑого зновÑ."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:791, c-format
+#: ../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:799, c-format
+#: ../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:825 ../client/pk-console.c:873
-#: ../client/pk-console.c:897 ../client/pk-console.c:945
-#: ../client/pk-console.c:1041 ../client/pk-console.c:1154
-#: ../client/pk-console.c:1215 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89, c-format
+#: ../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:857 ../client/pk-console.c:929
-#: ../client/pk-console.c:1247
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "ÐнеÑÑи змÑни:"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:862 ../client/pk-console.c:934
+#: ../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:881 ../client/pk-console.c:1615, c-format
+#: ../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:953, c-format
+#: ../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:1009, c-format
+#: ../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:1032 ../client/pk-console.c:1070
-#: ../client/pk-console.c:1099, c-format
+#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
+#: ../client/pk-console.c:1118
+#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð²Ð¸Ð»ÑÑиÑи пакÑнки: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1085
+#: ../client/pk-console.c:1104
msgid "Proceed with additional packages?"
msgstr "ÐилÑÑиÑи додаÑÐºÐ¾Ð²Ñ Ð¿Ð°ÐºÑнки?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1090
+#: ../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:1131, c-format
+#: ../client/pk-console.c:1150
+#, c-format
msgid "This tool could not download the package %s as it could not be found"
-msgstr "ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð·Ð²Ð°Ð½ÑажиÑи пакÑнок %s, оÑкÑлÑки вÑдповÑдний пакÑнок не бÑло знайдено"
+msgstr ""
+"ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð·Ð²Ð°Ð½ÑажиÑи пакÑнок %s, оÑкÑлÑки вÑдповÑдний пакÑнок не "
+"бÑло знайдено"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1162, c-format
+#: ../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:1194 ../client/pk-console.c:1206
-#: ../client/pk-console.c:1261, c-format
+#: ../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:1252
+#: ../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:1285 ../client/pk-console.c:1293, c-format
+#: ../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:1315 ../client/pk-console.c:1323, c-format
+#: ../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:1345 ../client/pk-console.c:1353, c-format
+#: ../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:1375, c-format
+#: ../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:1383, c-format
+#: ../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:1405, c-format
+#: ../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:1410 ../client/pk-console.c:1466
-#: ../client/pk-console.c:1541
+#: ../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:1416 ../client/pk-console.c:1472
-#: ../client/pk-console.c:1547, c-format
+#: ../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:1427, c-format
+#: ../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:1461 ../client/pk-console.c:1536, c-format
+#: ../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:1493
+#: ../client/pk-console.c:1512
msgid "Packages to add"
msgstr "ÐакÑнки, ÑÐºÑ Ð±Ñде додано"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1520
msgid "Packages to remove"
msgstr "ÐакÑнки, ÑÐºÑ Ð±Ñде вилÑÑено"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1569, c-format
+#: ../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:1575
+#: ../client/pk-console.c:1594
msgid "To install"
msgstr "ÐакÑнки, ÑÐºÑ Ð±Ñде вÑÑановлено"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1587
+#: ../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:1591
+#: ../client/pk-console.c:1610
msgid "not found."
msgstr "не знайдено."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1602, c-format
+#: ../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:1608
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886, c-format
+#: ../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:1644, c-format
+#: ../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:1652, c-format
+#: ../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:1683
+#: ../client/pk-console.c:1702
msgid "Error:"
msgstr "Ðомилка:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1697
+#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
msgid "Package description"
msgstr "ÐÐ¿Ð¸Ñ Ð¿Ð°ÐºÑнка"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
msgid "Message:"
msgstr "ÐовÑдомленнÑ:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1741
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
msgid "Package files"
msgstr "Файли пакÑнка"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1749
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
msgid "No files"
msgstr "Ðез ÑайлÑв"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1772
+#: ../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:1782
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "Чи пÑдÑвеÑджÑÑÑе ви Ñей пÑдпиÑ?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1786
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "ÐÑÐ´Ð¿Ð¸Ñ Ð½Ðµ бÑло пÑдÑвеÑджено."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1820
+#: ../client/pk-console.c:1839
msgid "End user license agreement required"
-msgstr "ÐоÑÑÑбне пÑдÑвеÑÐ´Ð¶ÐµÐ½Ð½Ñ Ð»ÑÑензÑÐ¹Ð½Ð¾Ñ Ñгоди з кÑнÑевим коÑиÑÑÑваÑем (EULA)"
+msgstr ""
+"ÐоÑÑÑбне пÑдÑвеÑÐ´Ð¶ÐµÐ½Ð½Ñ Ð»ÑÑензÑÐ¹Ð½Ð¾Ñ Ñгоди з кÑнÑевим коÑиÑÑÑваÑем (EULA)"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1827
+#: ../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:1831
+#: ../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:1860
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
msgid "The daemon crashed mid-transaction!"
msgstr "ÐваÑÑйне завеÑÑÐµÐ½Ð½Ñ ÑÐ¾Ð½Ð¾Ð²Ð¾Ñ ÑлÑжби пÑд ÑÐ°Ñ Ð¾Ð¿ÐµÑаÑÑÑ!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1913
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
msgid "PackageKit Console Interface"
msgstr "ÐонÑолÑний ÑнÑеÑÑÐµÐ¹Ñ PackageKit"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1915
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
msgid "Subcommands:"
msgstr "ÐÑдкоманди:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2008 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
msgid "Show extra debugging information"
msgstr "ÐоказÑваÑи додаÑÐºÐ¾Ð²Ñ Ð´Ð°Ð½Ñ Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2011 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "ÐоказаÑи веÑÑÑÑ Ð¿ÑогÑами Ñ Ð·Ð°Ð²ÐµÑÑиÑи ÑобоÑÑ"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2014
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
msgid "Set the filter, e.g. installed"
msgstr "ÐÑÑановиÑи ÑÑлÑÑÑ, напÑиклад, вÑÑановленÑ"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2017
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
msgid "Exit without waiting for actions to complete"
msgstr "ÐавеÑÑиÑи ÑобоÑÑ, не ÑекаÑÑи на завеÑÑÐµÐ½Ð½Ñ Ð´ÑÑ"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2044
+#: ../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:2134
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
msgid "The filter specified was invalid"
msgstr "Ðказано некоÑекÑний ÑÑлÑÑÑ"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2153
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
msgid "A search type is required, e.g. name"
msgstr "Тип поÑÑкÑ, ÑкÑо Ñакий поÑÑÑбен, напÑиклад, назва"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2160 ../client/pk-console.c:2169
-#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
msgid "A search term is required"
msgstr "ÐоÑÑÑбен клÑÑ Ð¿Ð¾ÑÑкÑ"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2194
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
msgid "Invalid search type"
msgstr "ÐекоÑекÑний Ñип поÑÑкÑ"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2200
+#: ../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:2209
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
msgid "A type, key_id and package_id are required"
msgstr "СлÑд вказаÑи Ñип, ÑденÑиÑÑкаÑÐ¾Ñ ÐºÐ»ÑÑа Ñ ÑденÑиÑÑкаÑÐ¾Ñ Ð¿Ð°ÐºÑнка"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2218
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
msgid "A package name to remove is required"
msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ Ð¿Ð°ÐºÑнка, Ñкий поÑÑÑбно вилÑÑиÑи"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2226
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
msgid "A destination directory and the package names to download are required"
-msgstr "СлÑд вказаÑи каÑалог пÑизнаÑÐµÐ½Ð½Ñ Ñ Ð½Ð°Ð·Ð²Ð¸ пакÑнкÑв, ÑÐºÑ Ð¿Ð¾ÑÑÑбно званÑажиÑи"
+msgstr ""
+"СлÑд вказаÑи каÑалог пÑизнаÑÐµÐ½Ð½Ñ Ñ Ð½Ð°Ð·Ð²Ð¸ пакÑнкÑв, ÑÐºÑ Ð¿Ð¾ÑÑÑбно званÑажиÑи"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2233
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
msgid "Directory not found"
msgstr "ÐаÑалог не знайдено"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2241
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
msgid "A licence identifier (eula-id) is required"
msgstr "СлÑд вказаÑи ÑденÑиÑÑкаÑÐ¾Ñ Ð»ÑÑензÑÑ (eula-id)"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2251
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
msgid "A transaction identifier (tid) is required"
msgstr "СлÑд вказаÑи ÑденÑиÑÑкаÑÐ¾Ñ Ð¾Ð¿ÐµÑаÑÑÑ (tid)"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2268
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
msgid "A package name to resolve is required"
msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ Ð¿Ð°ÐºÑнка Ð´Ð»Ñ ÑозвâÑÐ·Ð°Ð½Ð½Ñ ÐºÐ¾Ð½ÑлÑкÑÑ"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2277 ../client/pk-console.c:2286
+#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
msgid "A repository name is required"
msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ ÑÑ
овиÑа"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2295
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
msgid "A repo name, parameter and value are required"
msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ ÑÑ
овиÑа, паÑамеÑÑ Ñ Ð·Ð½Ð°ÑеннÑ"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2309
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
msgid "An action, e.g. 'update-system' is required"
msgstr "СлÑд вказаÑи дÑÑ, напÑиклад «update-system»"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2316
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
msgid "A correct role is required"
msgstr "СлÑд вказаÑи Ð½Ð°Ð»ÐµÐ¶Ð½Ñ ÑолÑ"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2323
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
msgid "Failed to get the time since this action was last completed"
msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð·Ð½Ð°ÑиÑи ÑаÑ, коли ÑÑ Ð´ÑÑ Ð±Ñло виконано воÑÑаннÑ"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2333 ../client/pk-console.c:2345
-#: ../client/pk-console.c:2354 ../client/pk-console.c:2372
-#: ../client/pk-console.c:2381 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
+#: ../client/pk-generate-pack.c:243
msgid "A package name is required"
msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ Ð¿Ð°ÐºÑнка"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2363
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
msgid "A package provide string is required"
msgstr "СлÑд вказаÑи ÑÑдок вмÑÑÑÑ"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2390
+#: ../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:2400 ../client/pk-console.c:2410
+#: ../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:2464, c-format
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
+#, c-format
msgid "Option '%s' is not supported"
msgstr "ÐÑдÑÑимки паÑамеÑÑа «%s» не пеÑедбаÑено"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2477
+#: ../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:2480
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
msgid "Command failed"
msgstr "СпÑоба Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ зазнала невдаÑÑ"
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "РклÑÑем поÑÑÐºÑ Ð·Ð±ÑгаÑÑÑÑÑ Ð´ÐµÐºÑлÑка пакÑнкÑв:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "ÐÑÐ´Ñ Ð»Ð°Ñка, обеÑÑÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¹ пакÑнок:"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи доÑÑÑпний пакÑнок: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:762, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи вÑÑановлений пакÑнок: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818, c-format
+msgid "This tool could not find the package: %s"
+msgstr "ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи пакÑнок: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "ÐÑогÑÐ°Ð¼Ñ Ð½Ðµ вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи вÑÑ Ð¿Ð°ÐºÑнки: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1261
+msgid "A package name to install is required"
+msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ Ð¿Ð°ÐºÑнка, Ñкий ÑлÑд вÑÑановиÑи"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1270
+msgid "A filename to install is required"
+msgstr "СлÑд вказаÑи Ð½Ð°Ð·Ð²Ñ Ñайла, Ñкий ÑлÑд вÑÑановиÑи"
+
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
msgid "Downloading"
msgstr "ÐванÑаженнÑ"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
msgid "Downloading packages"
msgstr "ÐванÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑнкÑв"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
msgid "Downloading dependencies"
msgstr "ÐванÑÐ°Ð¶ÐµÐ½Ð½Ñ Ð·Ð°Ð»ÐµÐ¶Ð½Ð¾ÑÑей"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
msgid "Set the file name of dependencies to be excluded"
msgstr "ÐкажÑÑÑ Ð½Ð°Ð·Ð²Ð¸ ÑайлÑв залежноÑÑей, ÑÐºÑ ÑлÑд виклÑÑиÑи"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "Файл або каÑалог Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ
(ÑкÑо пÑопÑÑÑиÑи, бÑде викоÑиÑÑано поÑоÑний каÑалог)"
+#: ../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, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../client/pk-generate-pack.c:379
+#, c-format
msgid "Failed to create '%s': %s"
msgstr "Ðе вдалоÑÑ ÑÑвоÑиÑи «%s»: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
msgid "PackageKit Monitor"
msgstr "ÐонÑÑÐ¾Ñ PackageKit"
@@ -811,32 +930,121 @@ msgstr "ÐонÑÑÐ¾Ñ PackageKit"
msgid "Cannot show the list of transactions"
msgstr "Ðоказ ÑпиÑÐºÑ Ð¾Ð¿ÐµÑаÑÑÑ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð¸Ð¹"
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118, c-format
-msgid "The package could not be found"
-msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи пакÑнок"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "СпÑоба оÑÑÐ¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑÐºÑ Ð¾Ð¿ÐµÑаÑÑй завеÑÑилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "РклÑÑем поÑÑÐºÑ Ð·Ð±ÑгаÑÑÑÑÑ Ð´ÐµÐºÑлÑка пакÑнкÑв:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "СпÑоба визнаÑÐµÐ½Ð½Ñ ÑÑÐ°Ð½Ñ ÑÐ¾Ð½Ð¾Ð²Ð¾Ñ ÑлÑжби завеÑÑилаÑÑ Ð½ÐµÐ²Ð´Ð°Ð»Ð¾"
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "ÐÑÐ´Ñ Ð»Ð°Ñка, обеÑÑÑÑ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¸Ð¹ пакÑнок:"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "ÐажаÑÑе дозволиÑи вÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½ÐµÐ¿ÑдпиÑаного пÑогÑамного забезпеÑеннÑ?"
+
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "ÐепÑдпиÑане пÑогÑамне забезпеÑÐµÐ½Ð½Ñ Ð²ÑÑановлено не бÑде."
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "ÐоÑÑÑбен пÑÐ´Ð¿Ð¸Ñ Ð´Ð¶ÐµÑела пÑогÑамного забезпеÑеннÑ"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "Ðазва джеÑела пÑогÑамного забезпеÑеннÑ"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "ÐдÑеÑа URL клÑÑа"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "ÐоÑиÑÑÑÐ²Ð°Ñ ÐºÐ»ÑÑа"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "ÐденÑиÑÑкаÑÐ¾Ñ ÐºÐ»ÑÑа"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "ÐÑдбиÑок клÑÑа"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "ЧаÑова познаÑка клÑÑа"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr ""
+"ÐоÑÑÑбне пÑдÑвеÑÐ´Ð¶ÐµÐ½Ð½Ñ Ð»ÑÑензÑÐ¹Ð½Ð¾Ñ Ñгоди з кÑнÑевим коÑиÑÑÑваÑем (EULA)"
-#: ../client/pk-tools-common.c:162, c-format
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "ÐденÑиÑÑкаÑÐ¾Ñ EULA"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "Угода"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "Чи Ð·Ð³Ð¾Ð´Ð²Ð½Ñ Ð²Ð¸ доÑÑимÑваÑиÑÑ ÑÑÑÑ Ñгоди?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "Ð£Ð³Ð¾Ð´Ñ Ð½Ðµ бÑло пÑдÑвеÑджено."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "ÐоÑÑÑбна змÑна ноÑÑÑ"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "Тип ноÑÑÑ"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ÐденÑиÑÑкаÑÐ¾Ñ Ð½Ð¾ÑÑÑ"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "ТекÑÑ"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "ÐÑÐ´Ñ Ð»Ð°Ñка, вÑÑавÑе вÑдповÑдний ноÑÑй"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "Ðе бÑло вÑÑавлено вÑдповÑдного ноÑÑÑ."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "ÐпеÑаÑÑÑ Ð½Ðµ бÑло пÑодовжено."
+
+#: ../client/pk-text.c:50
+#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "ÐÑÐ´Ñ Ð»Ð°Ñка, введÑÑÑ ÑиÑло вÑд 1 до %i: "
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи пакÑнок"
+
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
msgstr "ÐÑÑÐ¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ
Ñодо пакÑнка..."
#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:472, c-format
+#: ../contrib/browser-plugin/pk-plugin-install.c:472
+#, c-format
msgid "Run %s"
msgstr "ÐиконаÑи %s"
@@ -846,7 +1054,8 @@ msgid "Installed version"
msgstr "ÐÑÑановлена веÑÑÑÑ"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:486, c-format
+#: ../contrib/browser-plugin/pk-plugin-install.c:486
+#, c-format
msgid "Run version %s now"
msgstr "ÐиконаÑи веÑÑÑÑ %s"
@@ -856,12 +1065,14 @@ msgid "Run now"
msgstr "ÐиконаÑи заÑаз"
#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:498, c-format
+#: ../contrib/browser-plugin/pk-plugin-install.c:498
+#, c-format
msgid "Update to version %s"
msgstr "ÐновиÑи до веÑÑÑÑ %s"
#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:504, c-format
+#: ../contrib/browser-plugin/pk-plugin-install.c:504
+#, c-format
msgid "Install %s now"
msgstr "ÐÑÑановиÑи %s"
@@ -888,7 +1099,8 @@ 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
@@ -948,7 +1160,8 @@ msgid "The package providing this file is:"
msgstr "ÐакÑнком, Ñо мÑÑÑиÑи Ñей Ñайл Ñ:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:726, c-format
+#: ../contrib/command-not-found/pk-command-not-found.c:726
+#, c-format
msgid "Install package '%s' to provide command '%s'?"
msgstr "ÐÑÑановиÑи пакÑнок «%s», Ñоб забезпеÑиÑи Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ «%s»?"
@@ -974,167 +1187,181 @@ msgid "Starting install"
msgstr "РозпоÑинаÑмо вÑÑановленнÑ"
#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, c-format
msgid "Failed to find the package %s, or already installed: %s"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи пакÑнок %s або пакÑнок вже вÑÑановлено: %s"
#. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid "Don't actually install any packages, only simulate what would be installed"
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
msgstr "Ðе вÑÑановлÑваÑи пакÑнкÑв, лиÑе ÑмÑÑÑваÑи ÑÑ
вÑÑановленнÑ"
#. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
msgid "Do not install dependencies of the core packages"
msgstr "Ðе вÑÑановлÑваÑи залежноÑÑей оÑновниÑ
пакÑнкÑв"
#. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
msgid "Do not display information or progress"
msgstr "Ðе показÑваÑи повÑÐ´Ð¾Ð¼Ð»ÐµÐ½Ñ Ñа даниÑ
пÑо поÑÑÑп"
#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
msgid "PackageKit Debuginfo Installer"
msgstr "ÐÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ
Ð´Ð»Ñ Ð·Ð½ÐµÐ²Ð°Ð´Ð¶ÑÐ²Ð°Ð½Ð½Ñ PackageKit"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
+#, c-format
msgid "Found %i disabled debuginfo repos."
msgstr "Ðнайдено %i вимкнениÑ
ÑÑ
овиÑа даниÑ
Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´."
#. TRANSLATORS: we're now enabling all the debug sources we found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:690
+#, c-format
msgid "Enabling debugging sources"
msgstr "ÐÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð´Ð¶ÐµÑел даниÑ
Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´"
#. TRANSLATORS: operation was not successful
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:700
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:784
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
msgid "FAILED."
msgstr "ÐÐÐÐÐÐÐ."
#. TRANSLATORS: tell the user how many we enabled
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../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, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
+#, c-format
msgid "Failed to find the debuginfo package %s: %s"
msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñи пакÑнок з даними Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´ %s: %s"
#. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789, c-format
+#: ../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 джеÑел Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´."
@@ -1252,18 +1479,23 @@ 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
msgid "Authentication is required to change software source parameters"
-msgstr "ÐÐ»Ñ Ð·Ð¼Ñни паÑамеÑÑÑв джеÑел пÑогÑамного забезпеÑÐµÐ½Ð½Ñ ÑлÑд пÑойÑи авÑенÑиÑÑкаÑÑÑ"
+msgstr ""
+"ÐÐ»Ñ Ð·Ð¼Ñни паÑамеÑÑÑв джеÑел пÑогÑамного забезпеÑÐµÐ½Ð½Ñ ÑлÑд пÑойÑи "
+"авÑенÑиÑÑкаÑÑÑ"
#: ../policy/org.freedesktop.packagekit.policy.in.h:11
msgid ""
"Authentication is required to consider a key used for signing packages as "
"trusted"
-msgstr "ÐÐ»Ñ Ð²Ð¸Ð·Ð½Ð°Ð½Ð½Ñ ÐºÐ»ÑÑа, викоÑиÑÑаного Ð´Ð»Ñ Ð¿ÑдпиÑÑÐ²Ð°Ð½Ð½Ñ Ð¿Ð°ÐºÑнкÑв, Ñк надÑйного ÑлÑд пÑойÑи авÑенÑиÑÑкаÑÑÑ"
+msgstr ""
+"ÐÐ»Ñ Ð²Ð¸Ð·Ð½Ð°Ð½Ð½Ñ ÐºÐ»ÑÑа, викоÑиÑÑаного Ð´Ð»Ñ Ð¿ÑдпиÑÑÐ²Ð°Ð½Ð½Ñ Ð¿Ð°ÐºÑнкÑв, Ñк надÑйного "
+"ÑлÑд пÑойÑи авÑенÑиÑÑкаÑÑÑ"
#: ../policy/org.freedesktop.packagekit.policy.in.h:12
msgid "Authentication is required to install a signed package"
@@ -1279,7 +1511,8 @@ msgstr "ÐÐ»Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑпиÑÐºÑ Ð´Ð¶ÐµÑел ÑиÑÑеми ÑлÑ
#: ../policy/org.freedesktop.packagekit.policy.in.h:15
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"
@@ -1293,7 +1526,9 @@ 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"
@@ -1410,7 +1645,8 @@ msgstr "ÐÐ½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑнкÑв"
#. TRANSLATORS: failed due to DBus security
#: ../src/pk-main.c:87
msgid "Startup failed due to security policies on this machine."
-msgstr "СпÑоба запÑÑÐºÑ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдаÑÑ ÑеÑез Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ на ÑÑÐ¾Ð¼Ñ ÐºÐ¾Ð¼Ð¿âÑÑеÑÑ."
+msgstr ""
+"СпÑоба запÑÑÐºÑ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдаÑÑ ÑеÑез Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð±ÐµÐ·Ð¿ÐµÐºÐ¸ на ÑÑÐ¾Ð¼Ñ ÐºÐ¾Ð¼Ð¿âÑÑеÑÑ."
#. TRANSLATORS: only two ways this can fail...
#: ../src/pk-main.c:89
@@ -1420,14 +1656,16 @@ msgstr "Таке може ÑÑапиÑиÑÑ Ð· двоÑ
пÑиÑин:"
#. TRANSLATORS: only allowed to be owned by root
#: ../src/pk-main.c:91
msgid "The correct user is not launching the executable (usually root)"
-msgstr "ÐиконÑваний Ñайл бÑло запÑÑено не Ñим коÑиÑÑÑваÑем (його мав запÑÑÑиÑи root)"
+msgstr ""
+"ÐиконÑваний Ñайл бÑло запÑÑено не Ñим коÑиÑÑÑваÑем (його мав запÑÑÑиÑи root)"
#. TRANSLATORS: or we are installed in a prefix
#: ../src/pk-main.c:93
msgid ""
"The org.freedesktop.PackageKit.conf file is not installed in the system "
"directory:"
-msgstr "У ÑиÑÑÐµÐ¼Ð½Ð¾Ð¼Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð·Ñ Ñайл org.freedesktop.PackageKit.conf не вÑÑановлено:"
+msgstr ""
+"У ÑиÑÑÐµÐ¼Ð½Ð¾Ð¼Ñ ÐºÐ°ÑÐ°Ð»Ð¾Ð·Ñ Ñайл org.freedesktop.PackageKit.conf не вÑÑановлено:"
#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
#: ../src/pk-main.c:205
@@ -1476,7 +1714,9 @@ msgstr "Ðомилка пÑд ÑÐ°Ñ ÑпÑоби запÑÑкÑ:"
#: ../src/pk-polkit-action-lookup.c:147
msgid "To install debugging packages, extra sources need to be enabled"
-msgstr "ÐÐ»Ñ Ð²ÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑнкÑв Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´ ÑлÑд ÑвÑмкнÑÑи додаÑÐºÐ¾Ð²Ñ Ð´Ð¶ÐµÑела пÑогÑамного забезпеÑеннÑ"
+msgstr ""
+"ÐÐ»Ñ Ð²ÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð°ÐºÑнкÑв Ð´Ð»Ñ ÑÑÑÐ²Ð°Ð½Ð½Ñ Ð²Ð°Ð´ ÑлÑд ÑвÑмкнÑÑи додаÑÐºÐ¾Ð²Ñ Ð´Ð¶ÐµÑела "
+"пÑогÑамного забезпеÑеннÑ"
#. TRANSLATORS: is not GPG signed
#: ../src/pk-polkit-action-lookup.c:168 ../src/pk-polkit-action-lookup.c:187
@@ -1485,7 +1725,8 @@ 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."
@@ -1493,16 +1734,20 @@ 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
@@ -1514,4 +1759,3 @@ msgstr "ÐагаÑо пакÑнкÑв"
msgid "Only trusted"
msgstr "ÐиÑе надÑйнÑ"
-
commit 83be11792e7cf1e11b7366d576cd6b65d6e4d3af
Author: aalam <aalam at fedoraproject.org>
Date: Tue Sep 8 02:07:00 2009 +0000
Sending translation for Punjabi
diff --git a/po/pa.po b/po/pa.po
index 4606114..ff0a6d0 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -8,10 +8,10 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-07 14:32+0000\n"
-"PO-Revision-Date: 2009-09-07 22:39+0530\n"
-"Last-Translator: \n"
-"Language-Team: Punjabi/Panjabi <kde-i18n-doc at kde.org>\n"
+"POT-Creation-Date: 2009-09-07 19:33+0000\n"
+"PO-Revision-Date: 2009-09-08 07:34+0530\n"
+"Last-Translator: A S Alam <aalam at users.sf.net>\n"
+"Language-Team: Punjabi/Panjabi <punjabi-users at lists.sf.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -19,106 +19,106 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:238 ../client/pk-console-test.c:147
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:146
msgid "Transaction"
msgstr "à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:148
msgid "System time"
msgstr "ਸਿਸà¨à¨® ਸਮਾà¨"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "Succeeded"
msgstr "ਸਫ਼ਲ"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "True"
msgstr "ਸਹà©à¨"
-#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "False"
msgstr "à¨à¨²à¨¤"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:152
#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "ਰà©à¨²"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "Duration"
msgstr "à¨
ੰਤਰਾਲ"
-#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "(seconds)"
msgstr "(ਸà¨à¨¿à©°à¨)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:161
#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "à¨à¨®à¨¾à¨à¨¡ ਲਾà¨à¨¨"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:163
msgid "User ID"
msgstr "ਯà©à¨à¨¼à¨° ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:170
msgid "Username"
msgstr "ਯà©à¨à¨¼à¨° ਨਾà¨"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:174
msgid "Real name"
msgstr "à¨
ਸਲ੠ਨਾà¨"
-#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:182
msgid "Affected packages:"
msgstr "ਪà©à¨°à¨à¨¾à¨µà¨¿à¨¤ ਪà©à¨à©à¨:"
-#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:184
msgid "Affected packages: None"
msgstr "ਪà©à¨°à¨à¨¾à¨µà¨¿à¨¤ ਪà©à¨à©à¨: à¨à©à¨ ਨਹà©à¨"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+#: ../client/pk-console.c:336 ../client/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° ਹà¨à¨¾à¨à¨ à¨à¨¾à¨µà©à¨à¨¾:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+#: ../client/pk-console.c:339 ../client/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° à¨à©°à¨¸à¨à¨¾à¨² à¨à©à¨¤à¨¾ à¨à¨¾à¨µà©à¨à¨¾:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+#: ../client/pk-console.c:342 ../client/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° à¨
ੱਪਡà©à¨ à¨à©à¨¤à¨¾ à¨à¨¾à¨µà©à¨à¨¾:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+#: ../client/pk-console.c:345 ../client/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° ਮà©à©-à¨à©°à¨¸à¨à¨¾à¨² à¨à¨¾à¨µà©à¨à¨¾:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+#: ../client/pk-console.c:348 ../client/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° ਡਾà¨à¨¨à¨à¨°à©à¨¡ à¨à©à¨¤à¨¾ à¨à¨¾à¨µà©à¨à¨¾:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:363 ../client/pk-console-test.c:205
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:204
msgid "Distribution"
msgstr "ਡਿਸà¨à¨°à©à¨¬à¨¿à¨à¨¸à¨¼à¨¨"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:206
msgid "Type"
msgstr "à¨à¨¾à¨à¨ª"
@@ -126,44 +126,44 @@ msgstr "à¨à¨¾à¨à¨ª"
#. TRANSLATORS: this is the summary of the group
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:367 ../client/pk-console.c:390
-#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
msgid "Summary"
msgstr "ਸੰà¨à©à¨ª"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:218
msgid "Category"
msgstr "à¨à©à¨à¨¾à¨à¨°à©"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:220
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:223
msgid "Parent"
msgstr "ਮà©à¨¢à©"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:226
msgid "Name"
msgstr "ਨਾà¨"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:232
msgid "Icon"
msgstr "à¨à¨à¨à¨¾à¨¨"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:246
msgid "Details about the update:"
msgstr "à¨
ੱਪਡà©à¨ ਬਾਰ੠ਵà©à¨°à¨µà¨¾:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:252
#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
@@ -172,424 +172,421 @@ msgstr[0] "ਪà©à¨à©à¨"
msgstr[1] "ਪà©à¨à©à¨"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:255
msgid "Updates"
msgstr "à¨
ੱਪਡà©à¨"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:259
msgid "Obsoletes"
msgstr "ਬਰਤਰਫ਼"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:263
#: ../client/pk-task-text.c:154
msgid "Vendor"
msgstr "ਵà©à¨à¨¡à¨°"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:267
msgid "Bugzilla"
msgstr "ਬੱà¨à¨à¨¼à©à¨²à¨¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:271
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:275
msgid "Restart"
msgstr "ਮà©à©-à¨à¨¾à¨²à©"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:279
msgid "Update text"
msgstr "à¨
ੱਪਡà©à¨ à¨à©à¨à¨¸à¨"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:283
msgid "Changes"
msgstr "ਬਦਲਾà¨
"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:287
msgid "State"
msgstr "ਹਾਲਤ"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:292
msgid "Issued"
msgstr "à¨à¨¾à¨°à© à¨à©à¨¤à¨¾"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:297
msgid "Updated"
msgstr "à¨
ੱਪਡà©à¨ à¨à©à¨¤à©"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:315
msgid "Enabled"
msgstr "ਯà©à¨"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:318
msgid "Disabled"
msgstr "à¨
ਯà©à¨"
-#: ../client/pk-console.c:555 ../client/pk-console.c:557
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "ਫà©à¨¸à¨¦à©"
-#: ../client/pk-console.c:557
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "à¨
ਣà¨à¨¾à¨£"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:599 ../client/pk-console-test.c:341
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:340
msgid "System restart required by:"
msgstr "ਸਿਸà¨à¨® ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à© ਹà©:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:343
msgid "Session restart required:"
msgstr "ਸਿਸà¨à¨® ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à©:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:346
msgid "System restart (security) required by:"
msgstr "ਸਿਸà¨à¨® ਮà©à©-à¨à¨¾à¨²à© (ਸà©à¨°à©±à¨à¨¿à¨) à¨à¨°à¨¨ ਦ੠ਲà©à© ਹà©:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:608 ../client/pk-console-test.c:350
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:349
msgid "Session restart (security) required:"
msgstr "ਸਿਸà¨à¨® ਮà©à©-à¨à¨¾à¨²à© (ਸà©à¨°à©±à¨à¨¿à¨) à¨à¨°à¨¨ ਦ੠ਲà©à©:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:611 ../client/pk-console-test.c:353
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:352
msgid "Application restart required by:"
msgstr "à¨à¨ªà¨²à©à¨à©à¨¸à¨¼à¨¨ ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à© ਹà©:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:541
msgid "Please restart the computer to complete the update."
msgstr "à¨
ੱਪਡà©à¨ ਨà©à©° ਪà©à¨°à¨¾ à¨à¨°à¨¨ ਵਾਸਤ੠à¨à©°à¨ªà¨¿à¨à¨à¨° ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à© à¨à©à¥¤"
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:544
msgid "Please logout and login to complete the update."
msgstr "à¨
ੱਪਡà©à¨ ਨà©à©° ਪà©à¨°à¨¾ à¨à¨°à¨¨ ਵਾਸਤ੠ਲਾà¨à¨à¨à¨ à¨à¨°à¨à© ਲਾà¨à¨à¨¨ à¨à¨°à© à¨à©à¥¤"
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "à¨à¨ªà¨²à©à¨à©à¨¸à¨¼à¨¨ ਨà©à©° ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à© ਹà©, à¨à¨¿à¨à¨à¨à¨¿ à¨à¨¹ ਵਰਤ੠à¨à¨¾ ਰਹ੠ਹà©à¥¤"
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:547
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:678 ../client/pk-console-test.c:713
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:550
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
msgstr ""
-"à¨
ੱਪਡà©à¨ ਨà©à©° ਪà©à¨°à¨¾ à¨à¨°à¨¨ ਵਾਸਤ੠ਲਾà¨à¨à¨à¨ à¨à¨°à¨à© ਲਾà¨à¨à¨¨ à¨à¨°à© à¨à© à¨à¨¿à¨à¨à¨à¨¿ ਸà©à¨°à©±à¨à¨¿à¨ à¨
ੱਪਡà©à¨ à¨à©°à¨¸à¨à¨¾à¨² "
-"à¨à©à¨¤à© ਹਨ।"
+"à¨
ੱਪਡà©à¨ ਨà©à©° ਪà©à¨°à¨¾ à¨à¨°à¨¨ ਵਾਸਤ੠ਲਾà¨à¨à¨à¨ à¨à¨°à¨à© ਲਾà¨à¨à¨¨ à¨à¨°à© à¨à© à¨à¨¿à¨à¨à¨à¨¿ ਸà©à¨°à©±à¨à¨¿à¨ à¨
ੱਪਡà©à¨ à¨à©°à¨¸à¨à¨¾à¨² à¨à©à¨¤à© ਹਨ।"
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:810
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "ਪà©à¨à©à¨ %s ਪਹਿਲਾਠਹ੠à¨à©°à¨¸à¨à¨¾à¨² ਹà©"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:818
+#: ../client/pk-console.c:817
#, 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: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
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "à¨
ੰਦਰà©à¨¨à© à¨à¨²à¨¤à©: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
#. ask the user
-#: ../client/pk-console.c:876 ../client/pk-console.c:948
-#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../client/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "ਤਬਦà©à¨²à©à¨à¨ ਨਾਲ à¨à¨¾à¨°à© à¨à¨°à©?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:881 ../client/pk-console.c:953
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "ਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² ਨà©à©° ਰੱਦ à¨à©à¨¤à¨¾ à¨à¨¿à¨!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:900 ../client/pk-console.c:1634
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² ਨਹà©à¨ à¨à¨° ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "à¨à¨¹ à¨à©à¨² ਫਾà¨à¨²à¨¾à¨ à¨à©°à¨¸à¨à¨¾à¨² ਨਹà©à¨ à¨à¨° ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "à¨à¨¹ à¨à©à¨² %s ਨà©à©° ਹà¨à¨¾ ਨਹà©à¨ ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1051 ../client/pk-console.c:1089
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ ਹà¨à¨¾ ਨਹà©à¨ ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "ਹà©à¨° ਪà©à¨à©à¨ ਨਾਲ à¨à¨¾à¨°à© à¨à¨°à©?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1109
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "ਪà©à¨à©à¨ ਹà¨à¨¾à¨à¨£ ਨà©à©° ਰੱਦ à¨à©à¨¤à¨¾ à¨à¨¿à¨!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ %s ਡਾà¨à¨¨à¨²à©à¨¡ ਨਹà©à¨ à¨à¨° ਸà¨à¨¿à¨, à¨à¨¿à¨à¨à¨à¨¿ à¨à¨¹ ਨਹà©à¨ ਲੱà¨à¨¿à¨"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1181
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ ਡਾà¨à¨¨à¨²à©à¨¡ ਨਹà©à¨ à¨à¨° ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1213 ../client/pk-console.c:1225
-#: ../client/pk-console.c:1280
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, 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
+#: ../client/pk-console.c:1270
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:1304 ../client/pk-console.c:1312
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "à¨à¨¹ à¨à©à¨² %s ਲਠਲà©à© ਨਹà©à¨ ਲ੠ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1334 ../client/pk-console.c:1342
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "à¨à¨¹ à¨à©à¨² %s ਲਠਨਿਰà¨à¨°à¨¤à¨¾ ਨਹà©à¨ ਲ੠ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1364 ../client/pk-console.c:1372
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "à¨à¨¹ à¨à©à¨² %s ਲਠਵà©à¨°à¨µà¨¾ ਨਹà©à¨ ਲ੠ਸà¨à¨¿à¨: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "à¨à¨¹ à¨à©à¨² %s ਲਠਫਾà¨à¨²à¨¾à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1402
+#: ../client/pk-console.c:1401
#, 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:1424
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "ਫਾà¨à¨² ਪਹਿਲਾਠਹ੠ਮà©à¨à©à¨¦ ਹà©: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1429 ../client/pk-console.c:1485
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "ਪà©à¨à©à¨ ਲਿਸਠਲਠà¨à¨¾ ਰਹ੠ਹà©"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1435 ../client/pk-console.c:1491
-#: ../client/pk-console.c:1566
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, 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:1446
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "ਡਿਸਠà¨à©±à¨¤à© ਸੰà¨à¨¾à¨²à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1480 ../client/pk-console.c:1555
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "ਫਾà¨à¨² ਮà©à¨à©à¨¦ ਨਹà©à¨: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "ਸ਼ਾਮਲ à¨à¨°à¨¨ ਲਠਪà©à¨à©à¨"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1520
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "ਹà¨à¨¾à¨à¨£ ਲਠਪà©à¨à©à¨"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "à¨à©à¨ ਨਵਾਠਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਦ੠ਲà©à© ਨਹà©à¨ ਹà©"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1594
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "à¨à©°à¨¸à¨à¨¾à¨² ਲà¨"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "ਪà©à¨à©à¨ ਲਠà¨à©à¨ à¨à¨¾à¨°à©:"
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "ਨਹà©à¨ ਲੱà¨à¨¿à¨à¥¤"
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1621
+#: ../client/pk-console.c:1620
#, 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:1627
+#: ../client/pk-console.c:1626
#: ../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:1663
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "à¨à¨¹ à¨à©à¨² %s ਲਠà¨
ੱਪਡà©à¨ ਵà©à¨°à¨µà¨¾ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1671
+#: ../client/pk-console.c:1670
#, 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:1702
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "à¨à¨²à¨¤à©:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1716 ../client/pk-console-test.c:370
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:369
msgid "Package description"
msgstr "ਪà©à¨à©à¨ ਵà©à¨°à¨µà¨¾"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:387
msgid "Message:"
msgstr "ਸà©à¨¨à©à¨¹à¨¾:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:406
msgid "Package files"
msgstr "ਪà©à¨à©à¨ ਫਾà¨à¨²à¨¾à¨"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:401
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:1791
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "ਰਿਪà©à¨à¨¼à¨à¨°à© ਦਸਤà¨à¨¤ ਲà©à©à©à¨¦à©"
#. TRANSLATORS: This a prompt asking the user to import the security key
#. ask the user
-#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
+#: ../client/pk-console.c:1800 ../client/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "à¨à© ਤà©à¨¸à©à¨ à¨à¨¹ ਦਸਤà¨à¨¤ ਮਨà¨à¨¼à©à¨° à¨à¨°à¨¦à© ਹà©?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
+#: ../client/pk-console.c:1804 ../client/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "ਦਸਤà¨à¨¤ ਮਨà¨à¨¼à©à¨° ਨਹà©à¨ ਸਨ।"
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "à¨
ੰਤਮ ਯà©à¨à¨¼à¨° ਲਾà¨à¨¸à©à¨à¨¸ à¨à¨à¨°à¨¾à¨°à¨¨à¨¾à¨®à¨¾ ਲà©à©à©à¨¦à¨¾"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1846
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "à¨à© ਤà©à¨¸à©à¨ à¨à¨¸ ਲਾà¨à¨¸à©à¨à¨¸ ਨਾਲ ਸਹਿਮਤ ਹà©?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1850
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "ਲਾà¨à¨¸à©à¨à¨¸ ਤà©à¨ à¨à¨¨à¨à¨¾à¨° à¨à©à¨¤à¨¾à¥¤"
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:982
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:819
msgid "The daemon crashed mid-transaction!"
msgstr "ਡà©à¨®à¨¨ à¨
ਧà©à¨°à© à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨ à¨à¨°à©à¨¸à¨¼ ਹ੠à¨à¨!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1016
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:853
msgid "PackageKit Console Interface"
msgstr "ਪà©à¨à©à¨à¨à¨¿à©±à¨ à¨à¨¨à¨¸à©à¨² à¨à©°à¨à¨°à¨«à©à¨¸"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1018
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:855
msgid "Subcommands:"
msgstr "ਸਬ-à¨à¨®à¨¾à¨à¨¡:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1109
-#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
-#: ../client/pk-monitor-test.c:282
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:969
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:225
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -597,149 +594,149 @@ msgid "Show extra debugging information"
msgstr "ਹà©à¨° ਡà©à¨¬à©±à¨ à¨à¨¾à¨£à¨à¨¾à¨°à© ਵà©à¨à©"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1112
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:972
#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "ਪਰà©à¨à¨°à¨¾à¨® ਵਰà¨à¨¨ ਵà©à¨à© à¨
ਤ੠ਬੰਦ à¨à¨°à©"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1115
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:975
msgid "Set the filter, e.g. installed"
msgstr "ਫਿਲà¨à¨° ਸà©à©±à¨ à¨à¨°à©, à¨à¨¿à¨µà©à¨ à¨à¨¿ à¨à©°à¨¸à¨à¨¾à¨²"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1118
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:978
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:2063
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "à¨à¨¹ à¨à©à¨² ਸਿਸà¨à¨® DBUS ਨਾਲ à¨à©à¨¨à©à¨à¨ ਨਹà©à¨ ਹ੠ਸà¨à¨¿à¨à¥¤"
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1193
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1053
msgid "The filter specified was invalid"
msgstr "ਦਿੱਤਾ ਫਿਲà¨à¨° à¨
ਢà©à©±à¨à¨µà¨¾à¨ ਹà©à¥¤"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1212
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1072
msgid "A search type is required, e.g. name"
msgstr "à¨à©à¨ à¨à¨¿à¨¸à¨® à¨à¨¾à¨¹à©à¨¦à© ਹà©, à¨à¨¿à¨µà©à¨ ਨਾà¨"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
-#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1219 ../client/pk-console-test.c:1231
-#: ../client/pk-console-test.c:1243 ../client/pk-console-test.c:1255
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1079 ../client/pk-console-test.c:1091
+#: ../client/pk-console-test.c:1103 ../client/pk-console-test.c:1115
msgid "A search term is required"
msgstr "à¨à©à¨ ਸ਼ਬਦ ਦ੠ਲà©à© ਹà©"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1265
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1125
msgid "Invalid search type"
msgstr "à¨à¨²à¨¤ à¨à©à¨ à¨à¨¾à¨à¨ª"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2219
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਲਠà¨à©±à¨ ਪà©à¨à©à¨ ਨਾਠà¨à¨¾à¨ ਫਾà¨à¨² ਨਾਠਦ੠ਲà©à© ਹà©"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1292
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1152
msgid "A type, key_id and package_id are required"
msgstr "à¨à¨¾à¨à¨ª, key_id à¨à¨¾à¨ package_id ਦà©à¨£ ਦ੠ਲà©à© ਹà©"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1303
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1163
msgid "A package name to remove is required"
msgstr "ਹà¨à¨¾à¨à¨£ ਵਾਸਤ੠ਪà©à¨à©à¨ ਨਾਠà¨à¨¾à¨¹à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1312
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1172
msgid "A destination directory and the package names to download are required"
msgstr "ਡਾà¨à¨¨à¨²à©à¨¡ à¨à¨°à¨¨ ਵਾਸਤ੠à¨à¨¿à¨à¨¾à¨£à¨¾ ਡਾà¨à¨°à©à¨à¨à¨°à© à¨
ਤ੠ਪà©à¨à©à¨ ਨਾਠਲਾà¨à¨¼à¨®à© ਹà©"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1319
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1179
msgid "Directory not found"
msgstr "ਡਾà¨à¨°à©à¨à¨à¨°à© ਨਹà©à¨ ਲੱà¨à©"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1328
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1188
msgid "A licence identifier (eula-id) is required"
msgstr "à¨à©±à¨ ਲਾà¨à¨¸à©à¨à¨¸ ਪà¨à¨¾à¨£à¨à¨°à¨¤à¨¾ (eula-id) ਲਾà¨à¨¼à¨®à© ਹà©"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1339
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1199
msgid "A transaction identifier (tid) is required"
msgstr "à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨ ਪà¨à¨¾à¨£ (tid) ਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1360
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1220
msgid "A package name to resolve is required"
msgstr "ਹੱਲ à¨à¨°à¨¨ ਲਠਪà©à¨à©à¨ ਨਾਠਲਾà¨à¨¼à¨®à© ਹà©"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1371 ../client/pk-console-test.c:1382
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1231 ../client/pk-console-test.c:1242
msgid "A repository name is required"
msgstr "ਰਿਪà©à¨à¨¼à¨à¨°à© ਨਾਠਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1393
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1253
msgid "A repo name, parameter and value are required"
msgstr "ਰà©à¨ªà© ਨਾà¨, ਪà©à¨°à¨¾à¨®à©à¨à¨° à¨
ਤ੠ਮà©à©±à¨² ਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1411
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1270
msgid "An action, e.g. 'update-system' is required"
msgstr "à¨à¨¾à¨°à¨µà¨¾à¨, à¨à¨¿à¨µà©à¨ 'à¨
ੱਪਡà©à¨-ਸਿਸà¨à¨®' ਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1418
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1277
msgid "A correct role is required"
msgstr "ਠà©à¨ ਰà©à¨² ਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1425
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:934
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:2352 ../client/pk-console.c:2364
-#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1435
-#: ../client/pk-console-test.c:1450 ../client/pk-console-test.c:1459
-#: ../client/pk-console-test.c:1479 ../client/pk-console-test.c:1488
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1287
+#: ../client/pk-console-test.c:1302 ../client/pk-console-test.c:1311
+#: ../client/pk-console-test.c:1331 ../client/pk-console-test.c:1340
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:288
msgid "A package name is required"
msgstr "ਪà©à¨à©à¨ ਨਾਠਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1468
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1320
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:2409
+#: ../client/pk-console.c:2408
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:2419 ../client/pk-console.c:2429
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "à¨à©à¨²à©à¨¹à¨£ ਲਠਲਿਸਠਫਾà¨à¨² ਲà©à©à©à¨¦à© ਹà©"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1548
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1400
#, c-format
msgid "Option '%s' is not supported"
msgstr "à¨à©à¨£ '%s' ਸਹਾà¨à¨ ਨਹà©à¨ ਹà©"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2496
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "à¨à¨¸ à¨à¨¾à¨°à¨µà¨¾à¨ ਲਠà¨à¨²à¨¤ à¨
ਧਿà¨à¨¾à¨°"
@@ -747,32 +744,40 @@ msgstr "à¨à¨¸ à¨à¨¾à¨°à¨µà¨¾à¨ ਲਠà¨à¨²à¨¤ à¨
ਧਿà¨à¨¾à¨°"
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1560
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1412
msgid "Command failed"
msgstr "à¨à¨®à¨¾à¨à¨¡ ਫà©à¨²à©à¨¹ ਹà©"
+#: ../client/pk-console-shared.c:52 ../client/pk-tools-common.c:51
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "੧ ਤà©à¨ %i ਤੱਠਨੰਬਰ ਦਿਠà¨à©:"
+
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+#: ../client/pk-console-shared.c:213 ../client/pk-tools-common.c:200
msgid "More than one package matches:"
msgstr "à¨à©±à¨ ਤà©à¨ ਵੱਧ ਰਲਦ੠ਪà©à¨à©à¨ ਲੱà¨à©:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+#: ../client/pk-console-shared.c:222 ../client/pk-tools-common.c:207
msgid "Please choose the correct package: "
msgstr "ਠà©à¨ ਪà©à¨à©à¨ à¨à©à¨£à© à¨à©:"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:734, c-format
+#: ../client/pk-console-test.c:571
+#, c-format
msgid "This tool could not find the available package: %s"
msgstr "à¨à¨¹ à¨à©à¨² à¨à¨ªà¨²à©±à¨¬à¨§ ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:762, c-format
+#: ../client/pk-console-test.c:599
+#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "à¨à¨¹ à¨à©à¨² à¨à©°à¨¸à¨à¨¾à¨² à¨à©à¨¤à© ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818, c-format
+#: ../client/pk-console-test.c:627 ../client/pk-console-test.c:655
+#, c-format
msgid "This tool could not find the package: %s"
msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
@@ -780,80 +785,84 @@ msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:874
-#: ../client/pk-console-test.c:902 ../client/pk-console-test.c:930
-#: ../client/pk-console-test.c:958, c-format
+#: ../client/pk-console-test.c:683 ../client/pk-console-test.c:711
+#: ../client/pk-console-test.c:739 ../client/pk-console-test.c:767
+#: ../client/pk-console-test.c:795
+#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "à¨à¨¹ à¨à©à¨² ਸਠਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1271
+#: ../client/pk-console-test.c:1131
msgid "A package name to install is required"
msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਲਠਪà©à¨à©à¨ ਨਾਠਲਾà¨à¨¼à¨®à© ਹà©"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1280
+#: ../client/pk-console-test.c:1140
msgid "A filename to install is required"
msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਲਠà¨à©±à¨ ਫਾà¨à¨² ਨਾਠਦ੠ਲà©à© ਹà©"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:103
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "ਡਾà¨à¨¨à¨²à©à¨¡ à¨à©à¨¤à¨¾ à¨à¨¾ ਰਿਹਾ ਹà©"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:123
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "ਪà©à¨à©à¨ ਡਾà¨à¨¨à¨²à©à¨¡ à¨à©à¨¤à© à¨à¨¾ ਰਹ੠ਹਨ"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:128
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "ਨਿਰà¨à¨°à¨¤à¨¾ ਡਾà¨à¨¨à¨²à©à¨¡ à¨à©à¨¤à© à¨à¨¾ ਰਹ੠ਹà©"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:190
+#: ../client/pk-generate-pack.c:188 ../client/pk-generate-pack-test.c:228
msgid "Set the file name of dependencies to be excluded"
msgstr "ਨਿਰà¨à¨°à¨¤à¨¾ ਲਠਫਾà¨à¨² ਨਾਠਦਿà¨, à¨à¨¿à¨¸ ਨà©à©° ਵੱਠਰੱà¨à¨¿à¨ à¨à¨¾à¨µà©"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:193
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:231
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:196
+#: ../client/pk-generate-pack.c:194 ../client/pk-generate-pack-test.c:234
msgid "The package to be put into the service pack"
msgstr "ਸਰਵਿਸ ਪà©à¨ ਵਿੱਠਰੱà¨à¨£ ਵਾਸਤ੠ਪà©à¨à©à¨"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:199
+#: ../client/pk-generate-pack.c:197 ../client/pk-generate-pack-test.c:237
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:227
+#: ../client/pk-generate-pack.c:225 ../client/pk-generate-pack-test.c:272
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:235
+#: ../client/pk-generate-pack.c:233 ../client/pk-generate-pack-test.c:280
msgid "Both options selected."
msgstr "ਦà©à¨µà©à¨ à¨à©à¨£à¨¾à¨ à¨à©à¨¤à©à¨à¨à¥¤"
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:251
+#: ../client/pk-generate-pack.c:249 ../client/pk-generate-pack-test.c:296
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:269 ../client/pk-generate-pack.c:275
+#. 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-test.c:324 ../client/pk-generate-pack-test.c:330
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:282
+#: ../client/pk-generate-pack.c:280 ../client/pk-generate-pack-test.c:337
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
@@ -862,54 +871,54 @@ msgstr ""
"à¨à¨¿à¨ ਹà©à¥¤"
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:293
+#: ../client/pk-generate-pack.c:291 ../client/pk-generate-pack-test.c:348
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:309
+#: ../client/pk-generate-pack.c:307 ../client/pk-generate-pack-test.c:364
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:312
+#: ../client/pk-generate-pack.c:310 ../client/pk-generate-pack-test.c:367
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:325
+#: ../client/pk-generate-pack.c:323 ../client/pk-generate-pack-test.c:380
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:335
+#: ../client/pk-generate-pack.c:333 ../client/pk-generate-pack-test.c:392
msgid "Failed to open package list."
msgstr "ਪà©à¨à©à¨ ਲਿਸਠà¨à©à¨²à©à¨¹à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©à¥¤"
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:346
+#: ../client/pk-generate-pack.c:344 ../client/pk-generate-pack-test.c:401
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:350
+#: ../client/pk-generate-pack.c:348 ../client/pk-generate-pack-test.c:405
#, 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:367
+#: ../client/pk-generate-pack.c:365 ../client/pk-generate-pack-test.c:413
msgid "Creating service pack..."
msgstr "ਸਰਵਿਸ ਪà©à¨ ਬਣਾà¨à¨ à¨à¨¾ ਰਿਹਾ ਹà©..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:374
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:428
#, c-format
msgid "Service pack created '%s'"
msgstr "ਸਰਵਿਸ ਪà©à¨ ਬਣਾà¨à¨ '%s'"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:379
+#: ../client/pk-generate-pack.c:377 ../client/pk-generate-pack-test.c:433
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' ਬਣਾà¨à¨£ ਲਠਫà©à¨²à©à¨¹: %s"
@@ -921,11 +930,11 @@ msgstr "ਪà©à¨à©à¨à¨à¨¿à©±à¨ ਮਾਨà©à¨à¨°"
#: ../client/pk-monitor.c:183
msgid "Cannot show the list of transactions"
-msgstr "ਸੰà¨à¨¾à¨° ਦ੠ਸà©à¨à© ਵà©à¨à¨¾ ਨਹà©à¨ ਸà¨à¨¦à¨¾"
+msgstr "à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨ ਦ੠ਲਿਸਠਨਹà©à¨ ਵà©à¨à¨¾à¨ à¨à¨¾ ਸà¨à¨¦à©"
#: ../client/pk-monitor-test.c:204
msgid "Failed to get transaction list"
-msgstr "ਸੰà¨à¨¾à¨° ਲਿਸਠà¨à©à¨²à©à¨¹à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©à¥¤"
+msgstr "à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨ ਲਿਸਠà¨à©à¨²à©à¨¹à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©à¥¤"
#: ../client/pk-monitor-test.c:235
msgid "Failed to get daemon state"
@@ -991,40 +1000,35 @@ msgstr "à¨à¨à¨°à¨¾à¨°à¨¨à¨¾à¨®à¨¾ ਮਨà¨à¨¼à©à¨° ਨਹà©à¨ à¨à©à¨¤à¨¾
#: ../client/pk-task-text.c:194
msgid "Media change required"
-msgstr "ਮà©à¨¡à©à¨ ਤਬਦà©à¨²à© ਲà©à©à©à¨à¨¦à© ਹà©"
+msgstr "ਮà©à¨¡à¨¿à¨ ਤਬਦà©à¨²à© ਲà©à©à©à¨à¨¦à© ਹà©"
#: ../client/pk-task-text.c:195
msgid "Media type"
-msgstr "ਮà©à¨¡à©à¨ à¨à¨¿à¨¸à¨®"
+msgstr "ਮà©à¨¡à¨¿à¨ à¨à¨¿à¨¸à¨®"
#: ../client/pk-task-text.c:196
msgid "Media ID"
-msgstr "ਮà©à¨¡à©à¨ ID"
+msgstr "ਮà©à¨¡à¨¿à¨ ID"
#: ../client/pk-task-text.c:197
msgid "Text"
-msgstr "ਪਾਠ"
+msgstr "à¨à©à¨à¨¸à¨"
#. ask the user
#: ../client/pk-task-text.c:201
msgid "Please insert the correct media"
-msgstr "ਠà©à¨ ਮà©à¨¡à©à¨ à¨à©à¨£à© à¨à©"
+msgstr "ਠà©à¨ ਮà©à¨¡à¨¿à¨ à¨à©à¨£à© à¨à©"
#: ../client/pk-task-text.c:205
msgid "The correct media was not inserted."
-msgstr "ਸਹ੠ਮà©à¨¡à©à¨ ਨਹà©à¨ ਪਾà¨à¨à¥¤"
+msgstr "ਠà©à¨ ਮà©à¨¡à¨¿à¨ ਨਹà©à¨ ਪਾà¨à¨à¥¤"
#: ../client/pk-task-text.c:303
msgid "The transaction did not proceed."
-msgstr "ਸੰà¨à¨¾à¨° à¨
ੱà¨à© ਨਹà©à¨ ਵਧਿà¨à¥¤"
-
-#: ../client/pk-text.c:50
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "੧ ਤà©à¨ %i ਤੱਠਨੰਬਰ ਦਿਠà¨à©:"
+msgstr "à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨ à¨
ੱà¨à© ਨਹà©à¨ ਵਧਿà¨à¥¤"
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:119
+#: ../client/pk-tools-common.c:188
#, c-format
msgid "The package could not be found"
msgstr "ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱà¨à¨¿à¨ à¨à¨¾ ਸà¨à¨¿à¨"
@@ -1091,7 +1095,7 @@ 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
@@ -1101,7 +1105,7 @@ msgstr "ਪà©à¨à©à¨ ਮà©à¨¨à©à¨à¨° ਲਾਠਦ੠à¨à¨¡à©à¨ à¨à¨°
#. TRANSLATORS: loading package cache so we can search
#: ../contrib/command-not-found/pk-command-not-found.c:361
msgid "Loading list of packages."
-msgstr "ਪà©à¨à©à¨ ਸà©à¨à© ਲà©à¨¡ ਹ੠ਰਹ੠ਹà©à¥¤"
+msgstr "ਪà©à¨à©à¨ ਲਿਸਠਲà©à¨¡ à¨à©à¨¤à© à¨à¨¾ ਰਹ੠ਹà©à¥¤"
#. TRANSLATORS: we failed to find the package, this shouldn't happen
#: ../contrib/command-not-found/pk-command-not-found.c:420
@@ -1175,10 +1179,11 @@ msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਲਠਪà©à¨à©à¨ à¨à©à¨£à© à¨à©"
#. TRANSLATORS: we are starting to install the packages
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
msgid "Starting install"
-msgstr "à¨à©°à¨¸à¨à¨¾à¨² ਸ਼à©à¨°à© ਹ੠ਰਿਹਾ ਹà©"
+msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à©à¨¤à¨¾ à¨à¨¾ ਰਿਹਾ ਹà©"
#. TRANSLATORS: we couldn't find the package name, non-fatal
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, c-format
msgid "Failed to find the package %s, or already installed: %s"
msgstr "ਪà©à¨à©à¨ %s ਲੱà¨à¨£ ਵਿੱਠਫà©à¨², à¨à¨¾à¨ ਪਹਿਲਾਠਹ੠à¨à©°à¨¸à¨à¨¾à¨² ਹà©: %s"
@@ -1190,12 +1195,12 @@ msgstr "à¨
ਸਲ ਵਿੱਠà¨à©à¨ ਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² ਨà
#. command line argument, do we skip packages that depend on the ones specified
#: ../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: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:576
@@ -1203,12 +1208,14 @@ msgid "PackageKit Debuginfo Installer"
msgstr "ਪà©à¨à©à¨à¨à¨¿à©±à¨ Debuginfo à¨à©°à¨¸à¨à¨¾à¨²à¨°"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588, c-format
+#: ../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:622, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
+#, c-format
msgid "Getting sources list"
msgstr "ਸਰà©à¨¤ ਲਿਸਠਲਠà¨à¨¾ ਰਹ੠ਹà©"
@@ -1255,7 +1262,7 @@ msgstr "ਡà©à¨¬à©±à¨à¨¿à©°à¨ ਸਰà©à¨¤ ਯà©à¨ à¨à¨° ਰਿਹਾ ਹà
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:895
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:939
msgid "FAILED."
-msgstr "ਫà©à¨² ਹà©à¨à¨à¥¤"
+msgstr "ਫà©à¨²à©à¨¹ ਹà©à¨à¨à¥¤"
#. TRANSLATORS: tell the user how many we enabled
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:718
@@ -1264,27 +1271,32 @@ 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:725, c-format
+#: ../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:737, c-format
+#: ../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:760, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:760
+#, c-format
msgid "Failed to find the debuginfo package %s: %s"
msgstr "ਡà©à¨¬à©±à¨ ਪà©à¨à©à¨ %s à¨à©à¨à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©: %s"
#. TRANSLATORS: no debuginfo packages could be found to be installed
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:788, c-format
+#: ../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:802, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:802
+#, c-format
msgid "Found %i packages:"
msgstr "%i ਪà©à¨à©à¨ ਲੱà¨à¨¿à¨:"
@@ -1295,7 +1307,8 @@ msgid "Finding packages that depend on these packages"
msgstr "ਪà©à¨à©à¨ ਲੱਠਰਿਹਾ à¨à© à¨à¨¹à¨¨à¨¾à¨ ਪà©à¨à©à¨à¨¾à¨ ਤ੠ਨਿਰà¨à¨° à¨à¨°à¨¦à© ਹਨ"
#. TRANSLATORS: could not install, detailed error follows
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:831
+#, c-format
msgid "Could not find dependant packages: %s"
msgstr "ਨਿਰà¨à¨° ਪà©à¨à©à¨ à¨à©à¨ ਨਹà©à¨ ਸà¨à¨¿à¨: %s"
@@ -1306,22 +1319,26 @@ msgid "Found %i extra packages."
msgstr "%i ਵਾਧ੠ਪà©à¨à©à¨ ਲੱà¨à© ਹਨ।"
#. TRANSLATORS: tell the user we found some more packages
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:851, c-format
+#: ../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:860, c-format
+#: ../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:873, c-format
+#: ../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:898, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:898
+#, c-format
msgid "Could not install packages: %s"
msgstr "ਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² ਨਹà©à¨ à¨à¨° ਸà¨à¨¿à¨: %s"
@@ -1407,7 +1424,7 @@ 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
@@ -1422,12 +1439,12 @@ 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
msgid "Failed to rebind device"
-msgstr "à¨à©°à¨¤à¨ ਰà©à¨¬à¨¾à¨à¨à¨¡ à¨à¨°à¨¨ ਲਠਫà©à¨²à©à¨¹ ਹà©"
+msgstr "à¨à©°à¨¤à¨° ਰà©à¨¬à¨¾à¨à¨à¨¡ à¨à¨°à¨¨ ਲਠਫà©à¨²à©à¨¹ ਹà©"
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
@@ -1558,7 +1575,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
commit 5bc5d8cf1c7c52a154ac6c4680fb4b32541db47e
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 23:05:07 2009 +0100
glib2: create a test pk-command-not-found binary that uses glib2
diff --git a/contrib/command-not-found/.gitignore b/contrib/command-not-found/.gitignore
index 86b517c..9888bf7 100644
--- a/contrib/command-not-found/.gitignore
+++ b/contrib/command-not-found/.gitignore
@@ -2,5 +2,6 @@
.libs
*.o
pk-command-not-found
+pk-command-not-found-test
PackageKit.sh
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index b3c8843..3711387 100644
--- a/contrib/command-not-found/Makefile.am
+++ b/contrib/command-not-found/Makefile.am
@@ -37,6 +37,33 @@ pk_command_not_found_CFLAGS = \
$(WARNINGFLAGS_C) \
$(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 = pk-command-not-found-test
+
+pk_command_not_found_test_SOURCES = \
+ pk-command-not-found-test.c \
+ $(NULL)
+
+pk_command_not_found_test_LDADD = \
+ ../../client/libpkconsole.a \
+ $(GLIB_LIBS) \
+ $(DBUS_LIBS) \
+ $(PK_GLIB2_LIBS) \
+ $(NULL)
+
+pk_command_not_found_test_CFLAGS = \
+ $(WARNINGFLAGS_C) \
+ $(NULL)
+
+endif
+
+
bashprofiledir = ${SYSCONFDIR}/profile.d
dist_bashprofile_DATA = PackageKit.sh
diff --git a/contrib/command-not-found/pk-command-not-found-test.c b/contrib/command-not-found/pk-command-not-found-test.c
new file mode 100644
index 0000000..21d4900
--- /dev/null
+++ b/contrib/command-not-found/pk-command-not-found-test.c
@@ -0,0 +1,800 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <locale.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <signal.h>
+#include <glib/gi18n.h>
+#include <dbus/dbus-glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+#include "../../client/pk-client-sync.h"
+#include "../../client/pk-console-shared.h"
+
+#define PK_MAX_PATH_LEN 1023
+
+typedef enum {
+ PK_CNF_POLICY_RUN,
+ PK_CNF_POLICY_INSTALL,
+ PK_CNF_POLICY_ASK,
+ PK_CNF_POLICY_WARN,
+ PK_CNF_POLICY_UNKNOWN
+} PkCnfPolicy;
+
+typedef struct {
+ PkCnfPolicy single_match;
+ PkCnfPolicy multiple_match;
+ PkCnfPolicy single_install;
+ PkCnfPolicy multiple_install;
+ gboolean software_source_search;
+ gchar **locations;
+} PkCnfPolicyConfig;
+
+static PkClient *client = NULL;
+static GCancellable *cancellable = NULL;
+
+/**
+ * pk_cnf_find_alternatives_swizzle:
+ *
+ * Swizzle ordering, e.g. amke -> make
+ **/
+static void
+pk_cnf_find_alternatives_swizzle (const gchar *cmd, guint len, GPtrArray *array)
+{
+ guint i;
+ gchar *possible;
+ gchar swap;
+
+ /* */
+ for (i=0; i<len-1; i++) {
+ possible = g_strdup (cmd);
+ swap = possible[i];
+ possible[i] = possible[i+1];
+ possible[i+1] = swap;
+ g_ptr_array_add (array, possible);
+ }
+}
+
+/**
+ * pk_cnf_find_alternatives_replace:
+ *
+ * Replace some easily confused chars, e.g. gnome-power-managir to gnome-power-manager
+ **/
+static void
+pk_cnf_find_alternatives_replace (const gchar *cmd, guint len, GPtrArray *array)
+{
+ guint i;
+ gchar *possible;
+ gchar temp;
+
+ /* replace some easily confused chars */
+ for (i=0; i<len; i++) {
+ temp = cmd[i];
+ if (temp == 'i') {
+ possible = g_strdup (cmd);
+ possible[i] = 'e';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 'e') {
+ possible = g_strdup (cmd);
+ possible[i] = 'i';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 'i') {
+ possible = g_strdup (cmd);
+ possible[i] = 'o';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 'c') {
+ possible = g_strdup (cmd);
+ possible[i] = 's';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 's') {
+ possible = g_strdup (cmd);
+ possible[i] = 'c';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 's') {
+ possible = g_strdup (cmd);
+ possible[i] = 'z';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 'z') {
+ possible = g_strdup (cmd);
+ possible[i] = 's';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 'k') {
+ possible = g_strdup (cmd);
+ possible[i] = 'c';
+ g_ptr_array_add (array, possible);
+ }
+ if (temp == 'c') {
+ possible = g_strdup (cmd);
+ possible[i] = 'k';
+ g_ptr_array_add (array, possible);
+ }
+ }
+}
+
+/**
+ * pk_cnf_find_alternatives_truncate:
+ *
+ * Truncate first and last char, so lshall -> lshal
+ **/
+static void
+pk_cnf_find_alternatives_truncate (const gchar *cmd, guint len, GPtrArray *array)
+{
+ guint i;
+ gchar *possible;
+
+ /* truncate last char */
+ possible = g_strdup (cmd);
+ possible[len-1] = '\0';
+ g_ptr_array_add (array, possible);
+
+ /* truncate first char */
+ possible = g_strdup (cmd);
+ for (i=0; i<len-1; i++)
+ possible[i] = possible[i+1];
+ possible[len-1] = '\0';
+ g_ptr_array_add (array, possible);
+}
+
+/**
+ * pk_cnf_find_alternatives_remove_double:
+ *
+ * Remove double chars, e.g. gnome-power-manaager -> gnome-power-manager
+ **/
+static void
+pk_cnf_find_alternatives_remove_double (const gchar *cmd, guint len, GPtrArray *array)
+{
+ guint i, j;
+ gchar *possible;
+
+ for (i=1; i<len; i++) {
+ if (cmd[i-1] == cmd[i]) {
+ possible = g_strdup (cmd);
+ for (j=i; j<len; j++)
+ possible[j] = possible[j+1];
+ possible[len-1] = '\0';
+ g_ptr_array_add (array, possible);
+ }
+ }
+}
+
+/**
+ * pk_cnf_find_alternatives_locale:
+ *
+ * Fix British spellings, e.g. colourdiff -> colordiff
+ **/
+static void
+pk_cnf_find_alternatives_locale (const gchar *cmd, guint len, GPtrArray *array)
+{
+ guint i, j;
+ gchar *possible;
+
+ for (i=1; i<len; i++) {
+ if (cmd[i-1] == 'o' && cmd[i] == 'u') {
+ possible = g_strdup (cmd);
+ for (j=i; j<len; j++)
+ possible[j] = possible[j+1];
+ possible[len-1] = '\0';
+ g_ptr_array_add (array, possible);
+ }
+ }
+}
+
+/**
+ * pk_cnf_find_alternatives_case:
+ *
+ * Remove double chars, e.g. Lshal -> lshal
+ **/
+static void
+pk_cnf_find_alternatives_case (const gchar *cmd, guint len, GPtrArray *array)
+{
+ guint i;
+ gchar *possible;
+ gchar temp;
+
+ for (i=0; i<len; i++) {
+ temp = g_ascii_tolower (cmd[i]);
+ if (temp != cmd[i]) {
+ possible = g_strdup (cmd);
+ possible[i] = temp;
+ g_ptr_array_add (array, possible);
+ }
+ temp = g_ascii_toupper (cmd[i]);
+ if (temp != cmd[i]) {
+ possible = g_strdup (cmd);
+ possible[i] = temp;
+ g_ptr_array_add (array, possible);
+ }
+ }
+
+ /* all lower */
+ possible = g_strdup (cmd);
+ for (i=0; i<len; i++)
+ possible[i] = g_ascii_tolower (cmd[i]);
+ if (strcmp (possible, cmd) != 0)
+ g_ptr_array_add (array, possible);
+ else
+ g_free (possible);
+
+ /* all upper */
+ possible = g_strdup (cmd);
+ for (i=0; i<len; i++)
+ possible[i] = g_ascii_toupper (cmd[i]);
+ if (strcmp (possible, cmd) != 0)
+ g_ptr_array_add (array, possible);
+ else
+ g_free (possible);
+}
+
+/**
+ * pk_cnf_find_alternatives:
+ *
+ * Generate a list of commands it might be
+ **/
+static GPtrArray *
+pk_cnf_find_alternatives (const gchar *cmd, guint len)
+{
+ GPtrArray *array;
+ GPtrArray *possible;
+ GPtrArray *unique;
+ const gchar *cmdt;
+ const gchar *cmdt2;
+ guint i, j;
+ gchar buffer_bin[PK_MAX_PATH_LEN+1];
+ gchar buffer_sbin[PK_MAX_PATH_LEN+1];
+ gboolean ret;
+
+ array = g_ptr_array_new ();
+ possible = g_ptr_array_new ();
+ unique = g_ptr_array_new ();
+ pk_cnf_find_alternatives_swizzle (cmd, len, possible);
+ pk_cnf_find_alternatives_replace (cmd, len, possible);
+ if (len > 3)
+ pk_cnf_find_alternatives_truncate (cmd, len, possible);
+ pk_cnf_find_alternatives_remove_double (cmd, len, possible);
+ pk_cnf_find_alternatives_case (cmd, len, possible);
+ pk_cnf_find_alternatives_locale (cmd, len, possible);
+
+ /* remove duplicates using a helper array */
+ for (i=0; i<possible->len; i++) {
+ cmdt = g_ptr_array_index (possible, i);
+ ret = TRUE;
+ for (j=0; j<unique->len; j++) {
+ cmdt2 = g_ptr_array_index (unique, j);
+ if (strcmp (cmdt, cmdt2) == 0) {
+ ret = FALSE;
+ break;
+ }
+ }
+ /* only add if not duplicate */
+ if (ret)
+ g_ptr_array_add (unique, (gpointer) cmdt);
+ }
+
+ /* ITS4: ignore, source is constant size */
+ strncpy (buffer_bin, "/usr/bin/", PK_MAX_PATH_LEN);
+
+ /* ITS4: ignore, source is constant size */
+ strncpy (buffer_sbin, "/usr/sbin/", PK_MAX_PATH_LEN);
+
+ /* remove any that exist (fast path) */
+ for (i=0; i<unique->len; i++) {
+ cmdt = g_ptr_array_index (unique, i);
+
+ /* ITS4: ignore, size is checked */
+ strncpy (&buffer_bin[9], cmdt, PK_MAX_PATH_LEN-9);
+
+ /* ITS4: ignore, size is checked */
+ strncpy (&buffer_sbin[10], cmdt, PK_MAX_PATH_LEN-10);
+
+ /* does file exist in bindir (common case) */
+ ret = g_file_test (buffer_bin, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE);
+ if (ret) {
+ g_ptr_array_add (array, g_strdup (cmdt));
+ continue;
+ }
+
+ /* does file exist in sbindir */
+ ret = g_file_test (buffer_sbin, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE);
+ if (ret)
+ g_ptr_array_add (array, g_strdup (cmdt));
+ }
+
+ g_ptr_array_foreach (possible, (GFunc) g_free, NULL);
+ g_ptr_array_free (possible, TRUE);
+ g_ptr_array_free (unique, TRUE);
+ return array;
+}
+
+/**
+ * pk_cnf_progress_cb:
+ **/
+static void
+pk_cnf_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
+{
+ PkStatusEnum status;
+ const gchar *text = NULL;
+
+ /* status */
+ if (type != PK_PROGRESS_TYPE_STATUS)
+ return;
+
+ g_object_get (progress,
+ "status", &status,
+ NULL);
+
+ switch (status) {
+ case PK_STATUS_ENUM_DOWNLOAD_REPOSITORY:
+ /* TRANSLATORS: downloading repo data so we can search */
+ text = _("Downloading details about the software sources.");
+ break;
+ case PK_STATUS_ENUM_DOWNLOAD_FILELIST:
+ /* TRANSLATORS: downloading file lists so we can search */
+ text = _("Downloading filelists (this may take some time to complete).");
+ break;
+ case PK_STATUS_ENUM_WAITING_FOR_LOCK:
+ /* TRANSLATORS: waiting for native lock */
+ text = _("Waiting for package manager lock.");
+ break;
+ case PK_STATUS_ENUM_LOADING_CACHE:
+ /* TRANSLATORS: loading package cache so we can search */
+ text = _("Loading list of packages.");
+ break;
+ default:
+ /* no need to print */
+ text = NULL;
+ }
+
+ /* print to screen, still one line */
+ if (text != NULL)
+ g_print ("\n * %s.. ", text);
+}
+
+/**
+ * pk_cnf_search_file:
+ **/
+static gchar **
+pk_cnf_search_file (PkClient *client_, PkBitfield filter, const gchar *filename, GError **error)
+{
+ gchar **package_ids = NULL;
+ PkResults *results;
+ GPtrArray *array = NULL;
+ guint i;
+ const PkResultItemPackage *item;
+
+ /* get the list of possibles */
+ results = pk_client_search_file_sync (client_, filter, filename, cancellable,
+ (PkProgressCallback) pk_cnf_progress_cb, NULL, error);
+ if (results == NULL)
+ goto out;
+
+ /* get the packages returned */
+ array = pk_results_get_package_array (results);
+ if (array == NULL) {
+ *error = g_error_new (1, 0, "did not get package struct for %s", filename);
+ goto out;
+ }
+
+ /* copy results into struct */
+ package_ids = g_new0 (gchar *, array->len+1);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ package_ids[i] = g_strdup (item->package_id);
+ }
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ if (array != NULL)
+ g_ptr_array_unref (array);
+ return package_ids;
+}
+
+/**
+ * pk_cnf_find_available:
+ *
+ * Find software we could install
+ **/
+static gboolean
+pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
+{
+ GError *error = NULL;
+ PkBitfield filters;
+ gboolean ret = FALSE;
+ guint i;
+ gchar **package_ids = NULL;
+ gchar *path = NULL;
+ gchar **parts;
+
+ /* do search */
+ path = g_build_filename (prefix, cmd, NULL);
+ egg_debug ("searching for %s", path);
+ filters = pk_bitfield_from_enums (PK_FILTER_ENUM_NOT_INSTALLED, PK_FILTER_ENUM_NEWEST, -1);
+ package_ids = pk_cnf_search_file (client, filters, path, &error);
+ if (package_ids == NULL) {
+ /* TRANSLATORS: we failed to find the package, this shouldn't happen */
+ egg_warning ("%s: %s", _("Failed to search for file"), error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* nothing found */
+ ret = (g_strv_length (package_ids) != 0);
+ if (!ret)
+ goto out;
+
+ /* add all package names */
+ for (i=0; package_ids[i] != NULL; i++) {
+ parts = pk_package_id_split (package_ids[i]);
+ g_ptr_array_add (array, g_strdup (parts[0]));
+ egg_debug ("name=%s", parts[0]);
+ g_strfreev (parts);
+ }
+out:
+ g_strfreev (package_ids);
+ g_free (path);
+ return ret;
+}
+
+/**
+ * pk_cnf_get_policy_from_string:
+ **/
+static PkCnfPolicy
+pk_cnf_get_policy_from_string (const gchar *policy_text)
+{
+ if (policy_text == NULL)
+ return PK_CNF_POLICY_UNKNOWN;
+ if (strcmp (policy_text, "run") == 0)
+ return PK_CNF_POLICY_RUN;
+ if (strcmp (policy_text, "ask") == 0)
+ return PK_CNF_POLICY_ASK;
+ if (strcmp (policy_text, "warn") == 0)
+ return PK_CNF_POLICY_WARN;
+ return PK_CNF_POLICY_UNKNOWN;
+}
+
+/**
+ * pk_cnf_get_policy_from_file:
+ **/
+static PkCnfPolicy
+pk_cnf_get_policy_from_file (GKeyFile *file, const gchar *key)
+{
+ PkCnfPolicy policy;
+ gchar *policy_text;
+ GError *error = NULL;
+
+ /* get from file */
+ policy_text = g_key_file_get_string (file, "CommandNotFound", key, &error);
+ if (policy_text == NULL) {
+ egg_warning ("failed to get key %s: %s", key, error->message);
+ g_error_free (error);
+ }
+
+ /* convert to enum */
+ policy = pk_cnf_get_policy_from_string (policy_text);
+ g_free (policy_text);
+ return policy;
+}
+
+/**
+ * pk_cnf_get_config:
+ **/
+static PkCnfPolicyConfig *
+pk_cnf_get_config (void)
+{
+ GKeyFile *file;
+ gchar *path;
+ gboolean ret;
+ GError *error = NULL;
+ PkCnfPolicyConfig *config;
+
+ /* create */
+ config = g_new0 (PkCnfPolicyConfig, 1);
+
+ /* set defaults if the conf file is not found */
+ config->single_match = PK_CNF_POLICY_UNKNOWN;
+ config->multiple_match = PK_CNF_POLICY_UNKNOWN;
+ config->single_install = PK_CNF_POLICY_UNKNOWN;
+ config->multiple_install = PK_CNF_POLICY_UNKNOWN;
+ config->software_source_search = FALSE;
+ config->locations = NULL;
+
+ /* load file */
+ file = g_key_file_new ();
+ path = g_build_filename (SYSCONFDIR, "PackageKit", "CommandNotFound.conf", NULL);
+ ret = g_key_file_load_from_file (file, path, G_KEY_FILE_NONE, &error);
+ if (!ret) {
+ egg_warning ("failed to open policy: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get data */
+ config->single_match = pk_cnf_get_policy_from_file (file, "SingleMatch");
+ config->multiple_match = pk_cnf_get_policy_from_file (file, "MultipleMatch");
+ config->single_install = pk_cnf_get_policy_from_file (file, "SingleInstall");
+ config->multiple_install = pk_cnf_get_policy_from_file (file, "MultipleInstall");
+ config->software_source_search = g_key_file_get_boolean (file, "CommandNotFound", "SoftwareSourceSearch", NULL);
+ config->locations = g_key_file_get_string_list (file, "CommandNotFound", "SearchLocations", NULL, NULL);
+
+ /* fallback */
+ if (config->locations == NULL) {
+ egg_warning ("not found SearchLocations, using fallback");
+ config->locations = g_strsplit ("/usr/bin;/usr/sbin", ";", -1);
+ }
+out:
+ g_free (path);
+ g_key_file_free (file);
+ return config;
+}
+
+/**
+ * pk_cnf_spawn_command:
+ **/
+static gboolean
+pk_cnf_spawn_command (const gchar *exec)
+{
+ gboolean ret;
+ GError *error = NULL;
+ ret = g_spawn_command_line_sync (exec, NULL, NULL, NULL, &error);
+ if (!ret) {
+ /* TRANSLATORS: we failed to launch the executable, the error follows */
+ g_print ("%s '%s': %s", _("Failed to launch:"), exec, error->message);
+ g_error_free (error);
+ }
+ return ret;
+}
+
+/**
+ * pk_cnf_sigint_handler:
+ **/
+static void
+pk_cnf_sigint_handler (int sig)
+{
+ egg_debug ("Handling SIGINT");
+
+ /* restore default ASAP, as the cancel might hang */
+ signal (SIGINT, SIG_DFL);
+
+ /* hopefully, cancel client */
+ g_cancellable_cancel (cancellable);
+
+ /* kill ourselves */
+ egg_debug ("Retrying SIGINT");
+ kill (getpid (), SIGINT);
+}
+
+/**
+ * main:
+ **/
+int
+main (int argc, char *argv[])
+{
+ gboolean ret;
+ gboolean verbose = FALSE;
+ GOptionContext *context;
+ GPtrArray *array = NULL;
+ GPtrArray *available = NULL;
+ PkCnfPolicyConfig *config = NULL;
+ guint i;
+ guint len;
+ gchar *text;
+ const gchar *possible;
+
+ const GOptionEntry options[] = {
+ { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+ _("Show extra debugging information"), 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);
+ dbus_g_thread_init ();
+ g_type_init ();
+
+ context = g_option_context_new (NULL);
+ /* TRANSLATORS: tool that gets called when the command is not found */
+ g_option_context_set_summary (context, _("PackageKit Command Not Found"));
+ g_option_context_add_main_entries (context, options, NULL);
+ g_option_context_parse (context, &argc, &argv, NULL);
+ g_option_context_free (context);
+
+ egg_debug_init (verbose);
+
+ /* no input */
+ if (argv[1] == NULL)
+ goto out;
+
+ /* do stuff on ctrl-c */
+ signal (SIGINT, pk_cnf_sigint_handler);
+
+ /* get policy config */
+ config = pk_cnf_get_config ();
+ client = pk_client_new ();
+ cancellable = g_cancellable_new ();
+
+ /* get length */
+ len = egg_strlen (argv[1], 1024);
+ if (len < 1)
+ goto out;
+
+ /* generate swizzles */
+ array = pk_cnf_find_alternatives (argv[1], len);
+
+ /* TRANSLATORS: the prefix of all the output telling the user why it's not executing */
+ g_print ("%s ", _("Command not found."));
+
+ /* one exact possibility */
+ if (array->len == 1) {
+ possible = g_ptr_array_index (array, 0);
+ if (config->single_match == PK_CNF_POLICY_WARN) {
+ /* TRANSLATORS: tell the user what we think the command is */
+ g_print ("%s '%s'\n", _("Similar command is:"), possible);
+
+ /* run */
+ } else if (config->single_match == PK_CNF_POLICY_RUN) {
+ pk_cnf_spawn_command (possible);
+
+ /* ask */
+ } else if (config->single_match == PK_CNF_POLICY_ASK) {
+ /* TRANSLATORS: Ask the user if we should run the similar command */
+ text = g_strdup_printf ("%s %s", _("Run similar command:"), possible);
+ ret = pk_console_get_prompt (text, TRUE);
+ if (ret)
+ pk_cnf_spawn_command (possible);
+ g_free (text);
+ }
+ goto out;
+
+ /* multiple choice */
+ } else if (array->len > 1) {
+ if (config->multiple_match == PK_CNF_POLICY_WARN) {
+ /* TRANSLATORS: show the user a list of commands that they could have meant */
+ g_print ("%s:\n", _("Similar commands are:"));
+ for (i=0; i<array->len; i++) {
+ possible = g_ptr_array_index (array, i);
+ g_print ("'%s'\n", possible);
+ }
+
+ /* ask */
+ } else if (config->multiple_match == PK_CNF_POLICY_ASK) {
+ /* TRANSLATORS: show the user a list of commands we could run */
+ g_print ("%s:\n", _("Similar commands are:"));
+ for (i=0; i<array->len; i++) {
+ possible = g_ptr_array_index (array, i);
+ g_print ("%i\t'%s'\n", i+1, possible);
+ }
+
+ /* TRANSLATORS: ask the user to choose a file to run */
+ i = pk_console_get_number (_("Please choose a command to run"), array->len);
+
+ /* run command */
+ possible = g_ptr_array_index (array, i);
+ pk_cnf_spawn_command (possible);
+ }
+ goto out;
+
+ /* only search using PackageKit if configured to do so */
+ } else if (config->software_source_search) {
+ available = g_ptr_array_new ();
+ pk_cnf_find_available (available, "/usr/bin", argv[1]);
+ pk_cnf_find_available (available, "/usr/sbin", argv[1]);
+ pk_cnf_find_available (available, "/bin", argv[1]);
+ pk_cnf_find_available (available, "/sbin", argv[1]);
+ if (available->len == 1) {
+ possible = g_ptr_array_index (available, 0);
+ if (config->single_install == PK_CNF_POLICY_WARN) {
+ /* TRANSLATORS: tell the user what package provides the command */
+ g_print ("%s '%s'\n", _("The package providing this file is:"), possible);
+
+ /* ask */
+ } else if (config->single_install == PK_CNF_POLICY_ASK) {
+ /* TRANSLATORS: as the user if we want to install a package to provide the command */
+ text = g_strdup_printf (_("Install package '%s' to provide command '%s'?"), possible, argv[1]);
+ ret = pk_console_get_prompt (text, FALSE);
+ g_free (text);
+ if (ret) {
+ text = g_strdup_printf ("pkcon install %s", possible);
+ ret = pk_cnf_spawn_command (text);
+ if (ret)
+ pk_cnf_spawn_command (argv[1]);
+ g_free (text);
+ }
+
+ /* install */
+ } else if (config->single_install == PK_CNF_POLICY_INSTALL) {
+ text = g_strdup_printf ("pkcon install %s", possible);
+ pk_cnf_spawn_command (text);
+ g_free (text);
+ }
+ goto out;
+ } else if (available->len > 1) {
+ if (config->multiple_install == PK_CNF_POLICY_WARN) {
+ /* TRANSLATORS: Show the user a list of packages that provide this command */
+ g_print ("%s\n", _("Packages providing this file are:"));
+ for (i=0; i<available->len; i++) {
+ possible = g_ptr_array_index (available, i);
+ g_print ("'%s'\n", possible);
+ }
+
+ /* ask */
+ } else if (config->multiple_install == PK_CNF_POLICY_ASK) {
+ /* TRANSLATORS: Show the user a list of packages that they can install to provide this command */
+ g_print ("%s:\n", _("Suitable packages are:"));
+ for (i=0; i<available->len; i++) {
+ possible = g_ptr_array_index (available, i);
+ g_print ("%i\t'%s'\n", i+1, possible);
+ }
+
+ /* get selection */
+ /* TRANSLATORS: ask the user to choose a file to install */
+ i = pk_console_get_number (_("Please choose a package to install"), available->len);
+
+ /* run command */
+ possible = g_ptr_array_index (available, i);
+ text = g_strdup_printf ("pkcon install %s", possible);
+ ret = pk_cnf_spawn_command (text);
+ if (ret)
+ pk_cnf_spawn_command (argv[1]);
+ g_free (text);
+ }
+ goto out;
+ }
+ }
+
+ g_print ("\n");
+
+out:
+ g_object_unref (client);
+ g_object_unref (cancellable);
+ if (config != NULL) {
+ g_strfreev (config->locations);
+ g_free (config);
+ }
+ if (array != NULL) {
+ g_ptr_array_foreach (array, (GFunc) g_free, NULL);
+ g_ptr_array_free (array, TRUE);
+ }
+ if (available != NULL) {
+ g_ptr_array_foreach (available, (GFunc) g_free, NULL);
+ g_ptr_array_free (available, TRUE);
+ }
+
+ return 0;
+}
+
commit 5c203629a1d0a2dae02dc680210cc17b2e64266b
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 23:04:04 2009 +0100
glib2: split out pk-client-sync.[c|h] from the shared console code
diff --git a/client/Makefile.am b/client/Makefile.am
index d6feab0..94a3ef0 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -77,10 +77,16 @@ libpkconsole_a_SOURCES = \
pk-task-text.h \
pk-console-shared.c \
pk-console-shared.h \
+ pk-client-sync.c \
+ pk-client-sync.h \
pk-progress-bar.c \
pk-progress-bar.h \
$(NULL)
+libpkconsole_a_CFLAGS = \
+ $(WARNINGFLAGS_C) \
+ $(NULL)
+
pkcon_test_SOURCES = \
pk-console-test.c \
$(NULL)
diff --git a/client/pk-client-sync.c b/client/pk-client-sync.c
new file mode 100644
index 0000000..1f91e4d
--- /dev/null
+++ b/client/pk-client-sync.c
@@ -0,0 +1,133 @@
+/* -*- 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 <stdio.h>
+#include <gio/gio.h>
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+#include "pk-client-sync.h"
+
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ PkResults *results;
+} PkClientHelper;
+
+/**
+ * pk_client_generic_finish_sync:
+ **/
+static void
+pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelper *helper)
+{
+ PkResults *results;
+ /* get the result */
+ results = pk_client_generic_finish (client, res, helper->error);
+ if (results != NULL) {
+ g_object_unref (results);
+ helper->results = g_object_ref (G_OBJECT (results));
+ }
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_client_resolve_sync:
+ * @client: a valid #PkClient instance
+ * @error: A #GError or %NULL
+ *
+ * Resolves a package to a Package ID.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_resolve_sync (PkClient *client, PkFilterEnum filter, gchar **packages, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_resolve_async (client, filter, packages, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_client_search_file_sync:
+ * @client: a valid #PkClient instance
+ * @error: A #GError or %NULL
+ *
+ * Resolves a filename to multiple Package IDs.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+PkResults *
+pk_client_search_file_sync (PkClient *client, PkFilterEnum filter, const gchar *filename, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data, GError **error)
+{
+ PkClientHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkClientHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_search_file_async (client, filter, filename, cancellable, progress_callback, progress_user_data,
+ (GAsyncReadyCallback) pk_client_generic_finish_sync, helper);
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
diff --git a/client/pk-client-sync.h b/client/pk-client-sync.h
new file mode 100644
index 0000000..f064439
--- /dev/null
+++ b/client/pk-client-sync.h
@@ -0,0 +1,46 @@
+/* -*- 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.
+ */
+
+#ifndef __PK_CLIENT_SYNC_H
+#define __PK_CLIENT_SYNC_H
+
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+PkResults *pk_client_resolve_sync (PkClient *client,
+ PkFilterEnum filter,
+ gchar **packages,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+PkResults *pk_client_search_file_sync (PkClient *client,
+ PkFilterEnum filter,
+ const gchar *filename,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GError **error);
+
+#endif /* __PK_CLIENT_SYNC_H */
+
+
+
diff --git a/client/pk-console-shared.c b/client/pk-console-shared.c
index 3733854..b2359f2 100644
--- a/client/pk-console-shared.c
+++ b/client/pk-console-shared.c
@@ -28,6 +28,7 @@
#include "egg-debug.h"
+#include "pk-client-sync.h"
#include "pk-console-shared.h"
/**
@@ -100,67 +101,6 @@ pk_console_get_prompt (const gchar *question, gboolean defaultyes)
return ret;
}
-/* tiny helper to help us do the async operation */
-typedef struct {
- GError **error;
- GMainLoop *loop;
- PkResults *results;
-} PkConsoleSyncHelper;
-
-/**
- * pk_console_sync_resolve_cb:
- **/
-static void
-pk_console_sync_resolve_cb (PkClient *client, GAsyncResult *res, PkConsoleSyncHelper *helper)
-{
- PkResults *results;
- /* get the result */
- results = pk_client_generic_finish (client, res, helper->error);
- if (results != NULL) {
- g_object_unref (results);
- helper->results = g_object_ref (G_OBJECT (results));
- }
- g_main_loop_quit (helper->loop);
-}
-
-/**
- * pk_console_sync_resolve:
- * @console: a valid #PkClient instance
- * @error: A #GError or %NULL
- *
- * Resolves a package to a Package ID.
- * Warning: this function is synchronous, and may block. Do not use it in GUI
- * applications.
- *
- * Return value: a %PkResults object, or NULL for error
- **/
-static PkResults *
-pk_console_sync_resolve (PkClient *client, PkFilterEnum filter, gchar **packages, GError **error)
-{
- PkConsoleSyncHelper *helper;
- PkResults *results;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- helper = g_new0 (PkConsoleSyncHelper, 1);
- helper->loop = g_main_loop_new (NULL, FALSE);
- helper->error = error;
-
- /* run async method */
- pk_client_resolve_async (client, filter, packages, NULL, NULL, NULL,
- (GAsyncReadyCallback) pk_console_sync_resolve_cb, helper);
- g_main_loop_run (helper->loop);
-
- results = helper->results;
-
- /* free temp object */
- g_main_loop_unref (helper->loop);
- g_free (helper);
-
- return results;
-}
-
/**
* pk_console_resolve_package:
**/
@@ -185,7 +125,7 @@ pk_console_resolve_package (PkClient *client, PkBitfield filter, const gchar *pa
tmp = g_strsplit (package, ",", -1);
/* get the list of possibles */
- results = pk_console_sync_resolve (client, filter, tmp, error);
+ results = pk_client_resolve_sync (client, filter, tmp, NULL, NULL, NULL, error);
if (results == NULL)
goto out;
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 186581d..39fb965 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -999,7 +999,9 @@ main (int argc, char *argv[])
control = pk_control_new ();
ret = pk_control_get_properties_sync (control, &error);
if (!ret) {
- g_print ("Failed to startup: %s\n", error->message);
+ /* TRANSLATORS: we failed to contact the daemon */
+ g_print ("%s: %s\n", _("Failed to contact PackageKit"), error->message);
+ g_error_free (error);
goto out_last;
}
commit 897beb8e5409d6c92f669a45dc37b18980a9c485
Author: shanky <shanky at fedoraproject.org>
Date: Mon Sep 7 19:18:54 2009 +0000
Sending translation for Kannada
diff --git a/po/kn.po b/po/kn.po
index 081ac30..7acc3e6 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -1,283 +1,291 @@
-# translation of packagekit.master.kn.po to Kannada
+# translation of packagekit.master.PackageKit.po to Kannada
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Shankar Prasad <svenkate at redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: packagekit.master.kn\n"
+"Project-Id-Version: packagekit.master.PackageKit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-01 02:36+0000\n"
-"PO-Revision-Date: 2009-09-07 17:40+0530\n"
+"POT-Creation-Date: 2009-09-07 19:02+0000\n"
+"PO-Revision-Date: 2009-09-08 00:46+0530\n"
"Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
"Language-Team: Kannada <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"
+"X-Generator: KBabel 1.11.4\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:235
+#: ../client/pk-console.c:237 ../client/pk-console-test.c:146
msgid "Transaction"
msgstr "ವà³à²¯à²µà²¹à²¾à²°"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:239 ../client/pk-console-test.c:148
msgid "System time"
msgstr "à²à²£à²à²¦ ಸಮಯ"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "Succeeded"
msgstr "ಯಶಸà³à²µà²¿à²¯à²¾à²à²¿à²¦à³"
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "True"
msgstr "ಸತà³à²¯"
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:241 ../client/pk-console-test.c:150
msgid "False"
msgstr "à²
ಸತà³à²¯"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:243 ../client/pk-console-test.c:152
+#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "ಪಾತà³à²°"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "Duration"
msgstr "à²à²¾à²²à²¾à²µà²§à²¿"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:248 ../client/pk-console-test.c:157
msgid "(seconds)"
msgstr "(ಸà³à²à³à²à²¡à³à²à²³à³)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:252 ../client/pk-console-test.c:161
+#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "à²à²à³à²à²¾ ಸಾಲà³"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:254 ../client/pk-console-test.c:163
msgid "User ID"
msgstr "ಬಳà²à³à²¦à²¾à²° ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:261 ../client/pk-console-test.c:170
msgid "Username"
msgstr "ಬಳà²à³à²¦à²¾à²° ಹà³à²¸à²°à³"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:265 ../client/pk-console-test.c:174
msgid "Real name"
msgstr "ನಿà²à²µà²¾à²¦ ಹà³à²¸à²°à³"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:273 ../client/pk-console-test.c:182
msgid "Affected packages:"
msgstr "ಪರಿಣಾಮ ಬà³à²°à²²à³à²ªà²¡à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²à²³à³:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:275 ../client/pk-console-test.c:184
msgid "Affected packages: None"
msgstr "ಪರಿಣಾಮ ಬà³à²°à²²à³à²ªà²¡à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²à²³à³: ಯಾವà³à²¦à³ à²à²²à³à²²"
#. TRANSLATORS: When processing, we might have to remove other dependencies
-#: ../client/pk-console.c:334
+#: ../client/pk-console.c:336 ../client/pk-task-text.c:220
msgid "The following packages have to be removed:"
msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ತà³à²à³à²¦à³ ಹಾà²à²¬à³à²à³:"
#. TRANSLATORS: When processing, we might have to install other dependencies
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:339 ../client/pk-task-text.c:225
msgid "The following packages have to be installed:"
msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²à³:"
#. TRANSLATORS: When processing, we might have to update other dependencies
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:342 ../client/pk-task-text.c:230
msgid "The following packages have to be updated:"
msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ಪà³âಡà³à²à³ ಮಾಡಬà³à²à³:"
#. TRANSLATORS: When processing, we might have to reinstall other dependencies
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:345 ../client/pk-task-text.c:235
msgid "The following packages have to be reinstalled:"
msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಮರಳಿ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²à³:"
#. TRANSLATORS: When processing, we might have to downgrade other dependencies
-#: ../client/pk-console.c:346
+#: ../client/pk-console.c:348 ../client/pk-task-text.c:240
msgid "The following packages have to be downgraded:"
msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³ à²à²µà³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ à²à³à²³à²à³à²à³ à²à²³à²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¦à³:"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:362 ../client/pk-console-test.c:204
msgid "Distribution"
msgstr "ವಿತರಣà³"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:362
+#: ../client/pk-console.c:364 ../client/pk-console-test.c:206
msgid "Type"
msgstr "ಬà²à³"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:364 ../client/pk-console.c:387
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:366 ../client/pk-console.c:389
+#: ../client/pk-console-test.c:208 ../client/pk-console-test.c:229
msgid "Summary"
msgstr "ಸಾರಾà²à²¶"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:378 ../client/pk-console-test.c:218
msgid "Category"
-msgstr "ಪà²à²à²¡"
+msgstr "ವರà³à²"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:378
+#: ../client/pk-console.c:380 ../client/pk-console-test.c:220
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:383 ../client/pk-console-test.c:223
msgid "Parent"
msgstr "ಮà³à²²"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:386 ../client/pk-console-test.c:226
msgid "Name"
msgstr "ಹà³à²¸à²°à³"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:392 ../client/pk-console-test.c:232
msgid "Icon"
msgstr "à²à²¿à²¹à³à²¨à³"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:407 ../client/pk-console-test.c:246
msgid "Details about the update:"
msgstr "à²
ಪà³âಡà³à²à³â ಬà²à³à²à²¿à²¨ ವಿವರಣà³à²à²³à³:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
+#: ../client/pk-console.c:409 ../client/pk-console-test.c:252
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
msgstr[0] "ಪà³à²¯à²¾à²à³à²à³"
-msgstr[1] "ಪà³à²¯à²¾à²à³à²à³à²à²³à³"
+msgstr[1] "ಪà³à²¯à²¾à²à³à²à³"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:410
+#: ../client/pk-console.c:412 ../client/pk-console-test.c:255
msgid "Updates"
msgstr "à²
ಪà³âಡà³à²à³âà²à²³à³"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:414
+#: ../client/pk-console.c:416 ../client/pk-console-test.c:259
msgid "Obsoletes"
msgstr "ಪà³à²°à²à²²à²¿à²¤à²µà²¿à²²à³à²²à²¦à²µà³"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:418
+#: ../client/pk-console.c:420 ../client/pk-console-test.c:263
+#: ../client/pk-task-text.c:154
msgid "Vendor"
msgstr "à²à²¦à²à²¿à²¸à²¿à²¦à²µà²°à³"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:422
+#: ../client/pk-console.c:424 ../client/pk-console-test.c:267
msgid "Bugzilla"
msgstr "ಬà²à³âà²à²¿à²²à³à²²à²¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:426
+#: ../client/pk-console.c:428 ../client/pk-console-test.c:271
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:430
+#: ../client/pk-console.c:432 ../client/pk-console-test.c:275
msgid "Restart"
-msgstr "ಮರಳಿ à²à²°à²à²à²¿à²¸à³"
+msgstr "ಪà³à²¨à²°à²¾à²°à²à²à²¿à²¸à³"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:434
+#: ../client/pk-console.c:436 ../client/pk-console-test.c:279
msgid "Update text"
msgstr "ಪಠà³à²¯à²µà²¨à³à²¨à³ à²
ಪà³âಡà³à²à³â ಮಾಡಿ"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:438
+#: ../client/pk-console.c:440 ../client/pk-console-test.c:283
msgid "Changes"
msgstr "ಬದಲಾವಣà³à²à²³à³"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:442
+#: ../client/pk-console.c:444 ../client/pk-console-test.c:287
msgid "State"
msgstr "ಸà³à²¥à²¿à²¤à²¿"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:447
+#: ../client/pk-console.c:449 ../client/pk-console-test.c:292
msgid "Issued"
msgstr "à²à²¦à²à²¿à²¸à²²à²¾à²¦à²µà²°à³"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:452
+#: ../client/pk-console.c:454 ../client/pk-console-test.c:297
msgid "Updated"
msgstr "à²
ಪà³âಡà³à²à³â ಮಾಡಲಾà²à²¿à²¦à³à²¦à³"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:474 ../client/pk-console-test.c:315
msgid "Enabled"
-msgstr "ಶà²à³à²¤à²à³à²à²¡"
+msgstr "ಸà²à³à²°à²¿à²¯à²à³à²à²¡"
#. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:475
+#: ../client/pk-console.c:477 ../client/pk-console-test.c:318
msgid "Disabled"
msgstr "à²
ಶà²à³à²¤à²à³à²à²¡"
-#: ../client/pk-console.c:552 ../client/pk-console.c:554
+#: ../client/pk-console.c:554 ../client/pk-console.c:556
msgid "Percentage"
msgstr "ಪà³à²°à²¤à²¿à²¶à²¤"
-#: ../client/pk-console.c:554
+#: ../client/pk-console.c:556
msgid "Unknown"
msgstr "à²à³à²¤à³à²¤à²¿à²°à²¦"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:598 ../client/pk-console-test.c:340
msgid "System restart required by:"
msgstr "à²à²¦à²à³à²à²¾à²à²¿ à²à²£à²à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à³à²µ à²
à²à²¤à³à²¯à²µà²¿à²¦à³:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:599
+#: ../client/pk-console.c:601 ../client/pk-console-test.c:343
msgid "Session restart required:"
msgstr "à²à²¦à²à³à²à²¾à²à²¿ à²
ಧಿವà³à²¶à²µà²¨à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à³à²µ à²
à²à²¤à³à²¯à²µà²¿à²¦à³:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:602
+#: ../client/pk-console.c:604 ../client/pk-console-test.c:346
msgid "System restart (security) required by:"
msgstr "à²à²¦à²à³à²à²¾à²à²¿ à²à²£à²à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à³à²µ (ಸà³à²°à²à³à²·à²¤à³) à²
à²à²¤à³à²¯à²µà²¿à²¦à³:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:605
+#: ../client/pk-console.c:607 ../client/pk-console-test.c:349
msgid "Session restart (security) required:"
msgstr "à²à²¦à²à³à²à²¾à²à²¿ à²
ಧಿವà³à²¶à²µà²¨à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à³à²µ(ಸà³à²°à²à³à²·à²¤à³) à²
à²à²¤à³à²¯à²µà²¿à²¦à³:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:608
+#: ../client/pk-console.c:610 ../client/pk-console-test.c:352
msgid "Application restart required by:"
msgstr "à²à²¦à²à³à²à²¾à²à²¿ à²
ನà³à²µà²¯à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à³à²µ à²
à²à²¤à³à²¯à²µà²¿à²¦à³:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:663
+#: ../client/pk-console.c:665 ../client/pk-console-test.c:541
msgid "Please restart the computer to complete the update."
msgstr "à²
ಪà³âಡà³à²à³ à²
ನà³à²¨à³ ಪà³à²°à³à²£à²à³à²³à²¿à²¸à²²à³ ದಯವಿà²à³à²à³ à²à²£à²à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à²¿."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:666
+#: ../client/pk-console.c:668 ../client/pk-console-test.c:544
msgid "Please logout and login to complete the update."
msgstr "à²
ಪà³âಡà³à²à³ à²
ನà³à²¨à³ ಪà³à²°à³à²£à²à³à²³à²¿à²¸à²²à³ ದಯವಿà²à³à²à³ ನಿರà³à²à²®à²¿à²¸à²¿ ನà²à²¤à²° ಮರಳಿ ಪà³à²°à²µà³à²¶à²¿à²¸à²¿."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:669
+#: ../client/pk-console.c:671
msgid "Please restart the application as it is being used."
msgstr "à²
ನà³à²µà²¯à²µà²¨à³à²¨à³ ಪà³à²°à²¸à²à³à²¤ ಬಳಸಲಾà²à³à²¤à³à²¤à²¿à²°à³à²µà³à²¦à²°à²¿à²à²¦ ದಯವಿà²à³à²à³ à²
ದನà³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à²¿."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:672
+#: ../client/pk-console.c:674 ../client/pk-console-test.c:547
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -286,7 +294,7 @@ msgstr ""
"à²à²£à²à²µà²¨à³à²¨à³ ಮರಳಿ à²à²°à²à²à²¿à²¸à²¿."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:675
+#: ../client/pk-console.c:677 ../client/pk-console-test.c:550
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -295,440 +303,507 @@ msgstr ""
"ದಯವಿà²à³à²à³ ನಿರà³à²à²®à²¿à²¸à²¿ ನà²à²¤à²° ಮರಳಿ ಪà³à²°à²µà³à²¶à²¿à²¸à²¿."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:807
+#: ../client/pk-console.c:809
#, c-format
msgid "The package %s is already installed"
msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ à²à²à²¾à²à²²à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²¦à³"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:817
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:841 ../client/pk-console.c:889
-#: ../client/pk-console.c:913 ../client/pk-console.c:961
-#: ../client/pk-console.c:1057 ../client/pk-console.c:1170
-#: ../client/pk-console.c:1231 ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81 ../client/pk-tools-common.c:89
+#: ../client/pk-console.c:843 ../client/pk-console.c:891
+#: ../client/pk-console.c:915 ../client/pk-console.c:963
+#: ../client/pk-console.c:1059 ../client/pk-console.c:1172
+#: ../client/pk-console.c:1233 ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:151 ../client/pk-tools-common.c:159
#, c-format
msgid "Internal error: %s"
msgstr "à²à²à²¤à²°à²¿à² ದà³à²·: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:873 ../client/pk-console.c:945
-#: ../client/pk-console.c:1263
+#. ask the user
+#: ../client/pk-console.c:875 ../client/pk-console.c:947
+#: ../client/pk-console.c:1265 ../client/pk-task-text.c:299
msgid "Proceed with changes?"
msgstr "ಬದಲಾವಣà³à²à²³à³à²à²¦à²¿à²à³ ಮà³à²à²¦à³à²µà²°à³à²¯à²¬à³à²à³?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:878 ../client/pk-console.c:950
+#: ../client/pk-console.c:880 ../client/pk-console.c:952
msgid "The package install was canceled!"
msgstr "ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¨à³à²¯à²¨à³à²¨à³ ರದà³à²¦à³à²à³à²³à²¿à²¸à²²à²¾à²à²¿à²¦à³!"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:897 ../client/pk-console.c:1631
+#: ../client/pk-console.c:899 ../client/pk-console.c:1633
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:969
+#: ../client/pk-console.c:971
#, c-format
msgid "This tool could not install the files: %s"
msgstr "à²à²¡à²¤à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1027
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "%s à²
ನà³à²¨à³ ತà³à²à³à²¦à³ ಹಾà²à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1048 ../client/pk-console.c:1086
-#: ../client/pk-console.c:1115
+#: ../client/pk-console.c:1050 ../client/pk-console.c:1088
+#: ../client/pk-console.c:1117
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ತà³à²à³à²¦à³ ಹಾà²à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:1101
+#: ../client/pk-console.c:1103
msgid "Proceed with additional packages?"
msgstr "ಹà³à²à³à²à³à²µà²°à²¿ ಪà³à²¯à²¾à²à³à²à³à²à²³à³à²à²¦à²¿à²à³ ಮà³à²à²¦à³à²µà²°à³à²¯à²¬à³à²à³?"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1106
+#: ../client/pk-console.c:1108
msgid "The package removal was canceled!"
msgstr "ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ ತà³à²à³à²¦à³à²¹à²¾à²à³à²µà²¿à²à³à²¯à²¨à³à²¨à³ ರದà³à²¦à³à²à³à²³à²¿à²¸à²²à²¾à²à²¿à²¦à³!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:1147
+#: ../client/pk-console.c:1149
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²² à²à²à³à²à²¦à²°à³ à²
ದೠà²à²à²¡à³ ಬà²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1178
+#: ../client/pk-console.c:1180
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1212 ../client/pk-console.c:1224
+#: ../client/pk-console.c:1279
#, c-format
msgid "This tool could not update %s: %s"
msgstr "%s à²
ನà³à²¨à³ à²
ಪà³âಡà³à²à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:1268
+#: ../client/pk-console.c:1270
msgid "The package update was canceled!"
msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ à²
ಪà³âಡà³à²à³ ಮಾಡà³à²µà²¿à²à³à²¯à²¨à³à²¨à³ ರದà³à²¦à³à²à³à²³à²¿à²¸à²²à²¾à²à²¿à²¦à³!"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
+#: ../client/pk-console.c:1303 ../client/pk-console.c:1311
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ವಶà³à²¯à²à²¤à³à²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
+#: ../client/pk-console.c:1333 ../client/pk-console.c:1341
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ವಲà²à²¬à²¨à³à²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
+#: ../client/pk-console.c:1363 ../client/pk-console.c:1371
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ವಿವರà²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1391
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²à²¡à²¤à²¦ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ à²à²à²¡à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1399
+#: ../client/pk-console.c:1401
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²à²¡à²¤à²¦ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1423
#, c-format
msgid "File already exists: %s"
msgstr "à²à²¡à²¤à²µà³ à²à²à²¾à²à²²à³ à²
ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
-#: ../client/pk-console.c:1557
+#: ../client/pk-console.c:1428 ../client/pk-console.c:1484
+#: ../client/pk-console.c:1559
msgid "Getting package list"
msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1434 ../client/pk-console.c:1490
+#: ../client/pk-console.c:1565
#, c-format
msgid "This tool could not get package list: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à³à²µà²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1445
#, c-format
msgid "Failed to save to disk"
msgstr "ಡಿಸà³à²à²¿à²à³ à²à²³à²¿à²¸à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
+#: ../client/pk-console.c:1479 ../client/pk-console.c:1554
#, c-format
msgid "File does not exist: %s"
msgstr "à²à²¡à²¤à²µà³ à²
ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1511
msgid "Packages to add"
msgstr "ಸà³à²°à²¿à²¸à²¬à³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à³à²à²³à³"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1519
msgid "Packages to remove"
msgstr "ತà³à²à³à²¦à³ ಹಾà²à²¬à³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à³à²à²³à³"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1585
+#: ../client/pk-console.c:1587
#, c-format
msgid "No new packages need to be installed"
msgstr "ಯಾವà³à²¦à³ ಹà³à²¸ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²µà³à²¦à²¿à²²à³à²²"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1593
msgid "To install"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1603
+#: ../client/pk-console.c:1605
msgid "Searching for package: "
msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²à²¾à²à²¿ ಹà³à²¡à³à²à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1607
+#: ../client/pk-console.c:1609
msgid "not found."
msgstr "à²à²à²¡à³à²¬à²à²¦à²¿à²²à³à²²."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1618
+#: ../client/pk-console.c:1620
#, c-format
msgid "No packages can be found to install"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಯಾವà³à²¦à³ ಪà³à²¯à²¾à²à³à²à³à²à²³à³ à²à²à²¡à³à²¬à²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: installing new packages from package list
#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1624
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#: ../client/pk-console.c:1626
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:885
#, c-format
msgid "Installing packages"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1662
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ಪà³âಡà³à²à³ ವಿವರà²à²³à²¨à³à²¨à³ à²à²à²¡à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1668
+#: ../client/pk-console.c:1670
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ಪà³âಡà³à²à³ ವಿವರà²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1699
+#: ../client/pk-console.c:1701
msgid "Error:"
msgstr "ದà³à²·:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1715 ../client/pk-console-test.c:369
msgid "Package description"
msgstr "ಪà³à²¯à²¾à²à³à²à³ ವಿವರಣà³"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1729
+#: ../client/pk-console.c:1731 ../client/pk-console-test.c:387
msgid "Message:"
msgstr "ಸà²à²¦à³à²¶:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1757
+#: ../client/pk-console.c:1759 ../client/pk-console-test.c:406
msgid "Package files"
msgstr "ಪà³à²¯à²¾à²à³à²à³ à²à²¡à²¤à²à²³à³"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1765
+#: ../client/pk-console.c:1767 ../client/pk-console-test.c:401
msgid "No files"
msgstr "ಯಾವà³à²¦à³ à²à²¡à²¤à²à²³à²¿à²²à³à²²"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1790
msgid "Repository signature required"
msgstr "ರà³à²ªà³à²¸à²¿à²à²°à²¿ ಸಹಿಯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1798
+#. ask the user
+#: ../client/pk-console.c:1800 ../client/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "ಸಹಿಯನà³à²¨à³ ನà³à²µà³ à²à²ªà³à²ªà²¿à²à³à²³à³à²³à³à²¤à³à²¤à³à²°à³?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1802
+#: ../client/pk-console.c:1804 ../client/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "ಸಹಿಯನà³à²¨à³ à²à²ªà³à²ªà²¿à²à³à²³à³à²³à²²à²¾à²à²¿à²²à³à²²."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1836
+#: ../client/pk-console.c:1838
msgid "End user license agreement required"
msgstr "à²à²à²¡à³ ಯà³à²¸à²°à³ ಪರವಾನà²à²¿ à²à²ªà³à²ªà²à²¦à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1843
+#: ../client/pk-console.c:1845
msgid "Do you agree to this license?"
msgstr "ನà³à²µà³ ಠಪರವಾನà²à²¿à²¯à²¨à³à²¨à³ à²à²ªà³à²ªà³à²¤à³à²¤à³à²°à³?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1847
+#: ../client/pk-console.c:1849
msgid "The license was refused."
msgstr "ಪರವಾನà²à²¿à²¯à²¨à³à²¨à³ ತಿರಸà³à²à²°à²¿à²¸à²²à²¾à²à²¿à²¦à³."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1876
+#: ../client/pk-console.c:1878 ../client/pk-console-test.c:819
msgid "The daemon crashed mid-transaction!"
msgstr "ವà³à²¯à²µà²¹à²¾à²°à²¦ ಮಧà³à²¯à²¦à²²à³à²²à²¿ ಡà³à²®à²¨à³ à²à³à²¸à²¿à²¦à³ ಹà³à²à²¿à²¦à³!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1931 ../client/pk-console-test.c:853
msgid "PackageKit Console Interface"
msgstr "PackageKit à²à²¨à³à²¸à³à²²à³ ಸà²à²ªà²°à³à²à²¸à²¾à²§à²¨"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1931
+#: ../client/pk-console.c:1933 ../client/pk-console-test.c:855
msgid "Subcommands:"
msgstr "à²à²ªà²à²à³à²à³à²à²³à³:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:128
+#: ../client/pk-console.c:2026 ../client/pk-console-test.c:969
+#: ../client/pk-generate-pack.c:185 ../client/pk-generate-pack-test.c:225
+#: ../client/pk-monitor.c:128 ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
msgid "Show extra debugging information"
msgstr "ಹà³à²à³à²à²¿à²¨ ದà³à²· ನಿವಾರಣಾ ಮಾಹಿತಿಯನà³à²¨à³ ತà³à²°à²¿à²¸à³"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2029 ../client/pk-console-test.c:972
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "ಪà³à²°à³à²à³à²°à²¾à² à²à²µà³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ತà³à²°à²¿à²¸à²¿ ನಿರà³à²à²®à²¿à²¸à³"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2030
+#: ../client/pk-console.c:2032 ../client/pk-console-test.c:975
msgid "Set the filter, e.g. installed"
msgstr "ಫಿಲà³à²à²°à²¨à³à²¨à³ ಸಿದà³à²§à²à³à²³à²¿à²¸à²¿, à²à²¦à²¾. à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²¦"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2035 ../client/pk-console-test.c:978
msgid "Exit without waiting for actions to complete"
msgstr "à²à³à²°à²¿à²¯à³à²à²³à³ ಪà³à²°à³à²£à²à³à²³à³à²³à³à²µà²µà²°à³à²à³ à²à²¾à²¯à²¦à³ ನಿರà³à²à²®à²¿à²¸à³"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2062
msgid "This tool could not connect to system DBUS."
msgstr "ವà³à²¯à²µà²¸à³à²¥à³à²¯ DBUS ನà³à²à²¦à²¿à²à³ ಸà²à²ªà²°à³à²à²¸à²¾à²§à²¿à²¸à²²à³à² à²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:2150
+#: ../client/pk-console.c:2152 ../client/pk-console-test.c:1053
msgid "The filter specified was invalid"
msgstr "ಸà³à²à²¿à²¸à²²à²¾à²¦ ಫಿಲà³à²à²°à³ à²
ಮಾನà³à²¯à²µà²¾à²à²¿à²¦à³"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2169
+#: ../client/pk-console.c:2171 ../client/pk-console-test.c:1072
msgid "A search type is required, e.g. name"
msgstr "à²à²à²¦à³ ಹà³à²¡à³à²à³ ಬà²à³à²¯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³, à²à²¦à²¾. ಹà³à²¸à²°à³"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
-#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
+#: ../client/pk-console.c:2178 ../client/pk-console.c:2187
+#: ../client/pk-console.c:2196 ../client/pk-console.c:2205
+#: ../client/pk-console-test.c:1079 ../client/pk-console-test.c:1091
+#: ../client/pk-console-test.c:1103 ../client/pk-console-test.c:1115
msgid "A search term is required"
msgstr "à²à²à²¦à³ ಹà³à²¡à³à²à³ ಪದದ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2210
+#: ../client/pk-console.c:2212 ../client/pk-console-test.c:1125
msgid "Invalid search type"
msgstr "à²
ಮಾನà³à²¯à²µà²¾à²¦ ಹà³à²¡à³à²à³ ಬà²à³"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:2216
+#: ../client/pk-console.c:2218
msgid "A package name or filename to install is required"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²à²à²¦à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à³ à²
ಥವ à²à²¡à²¤à²¦ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2225
+#: ../client/pk-console.c:2227 ../client/pk-console-test.c:1152
msgid "A type, key_id and package_id are required"
msgstr "ಬà²à³, key_id ಹಾà²à³ package_id ಯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:2234
+#: ../client/pk-console.c:2236 ../client/pk-console-test.c:1163
msgid "A package name to remove is required"
msgstr "ತà³à²à³à²¦à³ ಹಾà²à²¬à³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2242
+#: ../client/pk-console.c:2244 ../client/pk-console-test.c:1172
msgid "A destination directory and the package names to download are required"
msgstr "à²à²à²¦à³ ನಿರà³à²¦à³à²¶à²¿à²¤ à²à³à²¶ ಹಾà²à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à³à²à²³ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2249
+#: ../client/pk-console.c:2251 ../client/pk-console-test.c:1179
msgid "Directory not found"
msgstr "à²à³à²¶à²µà³ à²à²à²¡à³à²¬à²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2257
+#: ../client/pk-console.c:2259 ../client/pk-console-test.c:1188
msgid "A licence identifier (eula-id) is required"
msgstr "ಪರವಾನà²à²¿ ಪತà³à²¤à³à²à²¾à²°à²¨ (eula-id) à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2267
+#: ../client/pk-console.c:2269 ../client/pk-console-test.c:1199
msgid "A transaction identifier (tid) is required"
msgstr "ವà³à²¯à²µà²¹à²¾à²° ಪತà³à²¤à³à²à²¾à²°à²¨ (tid) à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2284
+#: ../client/pk-console.c:2286 ../client/pk-console-test.c:1220
msgid "A package name to resolve is required"
msgstr "ಪರಿಹರಿಸಬà³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2293 ../client/pk-console.c:2302
+#: ../client/pk-console.c:2295 ../client/pk-console.c:2304
+#: ../client/pk-console-test.c:1231 ../client/pk-console-test.c:1242
msgid "A repository name is required"
msgstr "à²à²à²¦à³ ರà³à²ªà³à²¸à²¿à²à²°à²¿ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2311
+#: ../client/pk-console.c:2313 ../client/pk-console-test.c:1253
msgid "A repo name, parameter and value are required"
msgstr "à²à²à²¦à³ ರà³à²ªà³ ಹà³à²¸à²°à³, ನಿಯತಾà²à² ಹಾà²à³ ಮà³à²²à³à²¯à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2325
+#: ../client/pk-console.c:2327 ../client/pk-console-test.c:1270
msgid "An action, e.g. 'update-system' is required"
msgstr "à²à²à²¦à³ à²à³à²°à²¿à²¯à³à²¯, à²à²¦à²¾. 'update-system' à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2332
+#: ../client/pk-console.c:2334 ../client/pk-console-test.c:1277
msgid "A correct role is required"
msgstr "ಸà³à²à³à²¤à²µà²¾à²¦ ಪಾತà³à²°à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2339
+#: ../client/pk-console.c:2341 ../client/pk-console-test.c:934
msgid "Failed to get the time since this action was last completed"
msgstr "ಠà²à²¾à²°à³à²¯à²µà²¨à³à²¨à³ à²à³à²¨à³à²¯ ಬಾರಿà²à³ ಪà³à²°à³à²£à²à³à²³à²¿à²¸à²¦ ನà²à²¤à²° ಸಮಯವನà³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2349 ../client/pk-console.c:2361
-#: ../client/pk-console.c:2370 ../client/pk-console.c:2388
-#: ../client/pk-console.c:2397 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2351 ../client/pk-console.c:2363
+#: ../client/pk-console.c:2372 ../client/pk-console.c:2390
+#: ../client/pk-console.c:2399 ../client/pk-console-test.c:1287
+#: ../client/pk-console-test.c:1302 ../client/pk-console-test.c:1311
+#: ../client/pk-console-test.c:1331 ../client/pk-console-test.c:1340
+#: ../client/pk-generate-pack.c:241 ../client/pk-generate-pack-test.c:288
msgid "A package name is required"
msgstr "à²à²à²¦à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2379
+#: ../client/pk-console.c:2381 ../client/pk-console-test.c:1320
msgid "A package provide string is required"
msgstr "ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ à²à²¦à²à²¿à²¸à³à²µ ವಾà²à³à²¯à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2406
+#: ../client/pk-console.c:2408
msgid "A list file name to create is required"
msgstr "ರà²à²¿à²¸à²¬à³à²à²¿à²°à³à²µ à²à²¡à²¤à²¦ ಹà³à²¸à²°à²¿à²¨ à²à²à²¦à³ ಪà²à³à²à²¿à²¯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2416 ../client/pk-console.c:2426
+#: ../client/pk-console.c:2418 ../client/pk-console.c:2428
msgid "A list file to open is required"
msgstr "ತà³à²°à³à²¯à²¬à³à²à²¿à²°à³à²µ à²à²¡à²¤à²¦ à²à²à²¦à³ ಪà²à³à²à²¿à²¯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2480
+#: ../client/pk-console.c:2482 ../client/pk-console-test.c:1400
#, c-format
msgid "Option '%s' is not supported"
msgstr "à²à²¯à³à²à³ '%s' ಯೠಬà³à²à²¬à²²à²¿à²¤à²µà²¾à²à²¿à²²à³à²²"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2493
+#: ../client/pk-console.c:2495
msgid "Incorrect privileges for this operation"
msgstr "ಠà²à²¾à²°à³à²¯à²à³à²à²¾à²à²¿à²¨ ಸರಿಯಲà³à²²à²¦ ಸವಲತà³à²¤à³à²à²³à³"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2496
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2498 ../client/pk-console-test.c:1412
msgid "Command failed"
msgstr "à²à²à³à²à³à²¯à³ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
+#: ../client/pk-console-shared.c:52 ../client/pk-tools-common.c:51
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "1 ರಿà²à²¦ %i à²à²³à²à²¿à²¨ à²à²à²¦à³ à²
à²à²à³à²¯à²¨à³à²¨à³ ನಮà³à²¦à²¿à²¸à²¿: "
+
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-shared.c:213 ../client/pk-tools-common.c:200
+msgid "More than one package matches:"
+msgstr "à²à²à²¦à²à³à²à²¿à²à²¤ ಹà³à²à³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à³ ತಾಳà³à²¯à²¾à²à³à²¤à³à²¤à²µà³:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-shared.c:222 ../client/pk-tools-common.c:207
+msgid "Please choose the correct package: "
+msgstr "ದಯವಿà²à³à²à³ ಸರಿಯಾದ ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ à²à²¯à³à²à³ ಮಾಡಿ: "
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:571
+#, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "ಲà²à³à²¯à²µà²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಪತà³à²¤à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:599
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²¦ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಪತà³à²¤à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:627 ../client/pk-console-test.c:655
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr "ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console-test.c:683 ../client/pk-console-test.c:711
+#: ../client/pk-console-test.c:739 ../client/pk-console-test.c:767
+#: ../client/pk-console-test.c:795
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ à²à²²à³à²²à²¾ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲೠಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1131
+msgid "A package name to install is required"
+msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²à²à²¦à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1140
+msgid "A filename to install is required"
+msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²à²à²¦à³ à²à²¡à²¤à²¦ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
+
#. TRANSLATORS: This is the state of the transaction
#: ../client/pk-generate-pack.c:101
msgid "Downloading"
@@ -745,110 +820,111 @@ 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:188 ../client/pk-generate-pack-test.c:228
msgid "Set the file name of dependencies to be excluded"
msgstr "ಹà³à²°à²¤à³ ಪಡಿಸಲೠà²
ವಲà²à²¬à²¨à³à²à²³ à²à²¡à²¤à²¦ ಹà³à²¸à²°à³à²à²³à²¨à³à²¨à³ ಸಿದà³à²§à²à³à²³à²¿à²¸à³"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
+#: ../client/pk-generate-pack.c:191 ../client/pk-generate-pack-test.c:231
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:194 ../client/pk-generate-pack-test.c:234
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:197 ../client/pk-generate-pack-test.c:237
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:225 ../client/pk-generate-pack-test.c:272
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:233 ../client/pk-generate-pack-test.c:280
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:249 ../client/pk-generate-pack-test.c:296
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
+#. 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-test.c:324 ../client/pk-generate-pack-test.c:330
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:280 ../client/pk-generate-pack-test.c:337
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:291 ../client/pk-generate-pack-test.c:348
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:307 ../client/pk-generate-pack-test.c:364
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:310 ../client/pk-generate-pack-test.c:367
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:323 ../client/pk-generate-pack-test.c:380
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:333 ../client/pk-generate-pack-test.c:392
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:344 ../client/pk-generate-pack-test.c:401
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:348 ../client/pk-generate-pack-test.c:405
#, 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:365 ../client/pk-generate-pack-test.c:413
msgid "Creating service pack..."
msgstr "ಸರà³à²µà²¿à²¸à³â ಪà³à²¯à²¾à²à²¨à³à²¨à³ ರà²à²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:372 ../client/pk-generate-pack-test.c:428
#, 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:377 ../client/pk-generate-pack-test.c:433
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' à²
ನà³à²¨à³ ರà²à²¿à²¸à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
msgid "PackageKit Monitor"
msgstr "PackageKit ಮà³à²²à³à²µà²¿à²à²¾à²°à²"
@@ -856,26 +932,106 @@ msgstr "PackageKit ಮà³à²²à³à²µà²¿à²à²¾à²°à²"
msgid "Cannot show the list of transactions"
msgstr "ವà³à²¯à²µà²¹à²¾à²°à²à²³ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ತà³à²°à²¿à²¸à²²à³ ಸಾಧà³à²¯à²µà²¿à²²à³à²²"
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:118
-#, c-format
-msgid "The package could not be found"
-msgstr "ಪà³à²¯à²¾à²à³à²à³ à²à²à²¡à³ ಬà²à²¦à²¿à²²à³à²²"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "ವà³à²¯à²µà²¹à²¾à²°à²¦ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "à²à²à²¦à²à³à²à²¿à²à²¤ ಹà³à²à³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à³ ತಾಳà³à²¯à²¾à²à³à²¤à³à²¤à²µà³:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "ಡà³à²®à²¨à³ ಸà³à²¥à²¿à²¤à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "ದಯವಿà²à³à²à³ ಸರಿಯಾದ ಪà³à²¯à²¾à²à³à²à²¨à³à²¨à³ à²à²¯à³à²à³ ಮಾಡಿ: "
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "ಸಹಿ ಮಾಡದೠà²à²°à³à²µ ತà²à²¤à³à²°à²¾à²à²¶à²µà²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ನà³à²µà³ ಬಯಸà³à²¤à³à²¤à³à²°à³?"
+
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "ಸಹಿ ಮಾಡದೠà²à²°à³à²µ ತà²à²¤à³à²°à²¾à²à²¶à²µà²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²µà³à²¦à²¿à²²à³à²²."
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "ತà²à²¤à³à²°à²¾à²à²¶ à²à²à²°à²¦ ಸಹಿಯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "ತà²à²¤à³à²°à²¾à²à²¶ à²à²à²°à²¦ ಹà³à²¸à²°à³"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "à²à³à²²à²¿ URL"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "à²à³à²²à²¿ ಬಳà²à³à²¦à²¾à²°"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "à²à³à²²à²¿ à²à²¡à²¿"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "à²à³à²²à²¿ ಫಿà²à²à²°à³à²ªà³à²°à²¿à²à²à³"
-#: ../client/pk-tools-common.c:162
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "à²à³à²²à²¿ ಸಮಯ ಮà³à²¦à³à²°à³"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "ಬಳà²à³à²¦à²¾à²° ಲà³à²¸à³à²¨à³à²¸à³ à²à²°à²¾à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "à²à²°à²¾à²°à³"
+
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "ನà³à²µà³ ಠà²à²°à²¾à²°à²¨à³à²¨à³ à²à²ªà³à²ªà³à²¤à³à²¤à³à²°à³?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "à²à²°à²¾à²°à²¨à³à²¨à³ à²à²ªà³à²ªà²²à²¾à²à²¿à²²à³à²²."
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "ಮಾಧà³à²¯à²®à²µà²¨à³à²¨à³ ಬದಲಾಯಿಸà³à²µ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "ಮಾಧà³à²¯à²®à²¦ ಬà²à³"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ಮಾಧà³à²¯à²® à²à²¡à²¿"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "ಪಠà³à²¯"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "ದಯವಿà²à³à²à³ ಸರಿಯಾದ ಮಾಧಮವನà³à²¨à³ ತà³à²°à²¿à²¸à²¿"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "ಸರಿಯಾದ ಮಾಧಮವನà³à²¨à³ ತà³à²°à²¿à²¸à²²à²¾à²à²¿à²²à³à²²."
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "ವà³à²¯à²µà²¹à²¾à²°à²µà³ ಮà³à²à²¦à³à²µà²°à³à²¯à²²à²¿à²²à³à²²."
+
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:188
#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "1 ರಿà²à²¦ %i à²à²³à²à²¿à²¨ à²à²à²¦à³ à²
à²à²à³à²¯à²¨à³à²¨à³ ನಮà³à²¦à²¿à²¸à²¿: "
+msgid "The package could not be found"
+msgstr "ಪà³à²¯à²¾à²à³à²à³ à²à²à²¡à³ ಬà²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
@@ -1032,174 +1188,174 @@ msgid "Failed to find the package %s, or already installed: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ ಹà³à²¡à³à²à²²à³ ವಿಫಲà²à³à²à²¡à²¿à²¦à³, à²
ಥವ à²à²à²¾à²à²²à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²¦à³: %s"
#. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:552
msgid "Don't actually install any packages, only simulate what would be installed"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ನಿà²à²µà²¾à²à²¿à²¯à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡, à²à²¨à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¦à³ à²à²¨à³à²¨à³à²µà³à²¦à²¨à³à²¨à³ ತà³à²°à²¿à²¸à³"
#. command line argument, do we skip packages that depend on the ones specified
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:555
msgid "Do not install dependencies of the core packages"
msgstr "ಪà³à²°à²®à³à² ಪà³à²¯à²¾à²à³à²à³à²à²³ à²
ವಲà²à²à²¨à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡"
#. command line argument, do we operate quietly
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:558
msgid "Do not display information or progress"
msgstr "ಮಾಹಿತಿಯನà³à²¨à³ à²
ಥವ ಪà³à²°à²à²¤à²¿à²¯à²¨à³à²¨à³ ತà³à²°à²¿à²¸à²¬à³à²¡"
#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:576
msgid "PackageKit Debuginfo Installer"
msgstr "PackageKit Debuginfo à²
ನà³à²¸à³à²¥à²¾à²ªà²"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588
#, c-format
msgid "ERROR: Specify package names to install."
msgstr "ERROR: à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à³à²à²³à²¨à³à²¨à³ ಸà³à²à²¿à²¸à²¿."
#. TRANSLATORS: we are getting the list of repositories
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:622
#, c-format
msgid "Getting sources list"
msgstr "à²à²à²°à²à²³ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. 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 ದà³à²·à²¨à²¿à²µà²¾à²°à²£à²¾ à²à²à²°à²à²³à²¨à³à²¨à³ à²
ಶà²à³à²¤à²à³à²³à²¿à²¸à²²à²¾à²à²¿à²¦à³."
@@ -1558,7 +1714,7 @@ 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."
commit 4f214d7a53f7367caf77c74e241a42717dc7ad2b
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:59:48 2009 +0100
trivial: fix compile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0d1e85e..9cd6a74 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,12 +2,13 @@
# List of source files containing translatable strings.
# Please keep this file sorted alphabetically.
client/pk-console.c
+client/pk-console-shared.c
client/pk-console-test.c
client/pk-generate-pack.c
+client/pk-generate-pack-test.c
client/pk-monitor.c
client/pk-monitor-test.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
commit 62fbc56e19670459ad3c86b2335e5f45da812b32
Merge: 2315803... 3f63113...
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:55:38 2009 +0100
Merge branch 'master' of git+ssh://git.packagekit.org/srv/git/PackageKit
commit 231580316beb35bdef77e47d22643191dd546e4c
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:54:09 2009 +0100
trivial: fix compile with the removal of PkControlSync
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 5fce48a..186581d 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -45,7 +45,7 @@ static GMainLoop *loop = NULL;
static PkBitfield roles;
static gboolean is_console = FALSE;
static gboolean nowait = FALSE;
-static PkControlSync *control = NULL;
+static PkControl *control = NULL;
static PkTaskText *task = NULL;
static PkProgressBar *progressbar = NULL;
static GCancellable *cancellable = NULL;
@@ -918,6 +918,29 @@ pk_console_get_summary (void)
}
/**
+ * pk_console_get_time_since_action_cb:
+ **/
+static void
+pk_console_get_time_since_action_cb (GObject *object, GAsyncResult *res, gpointer data)
+{
+ guint time_ms;
+ GError *error = NULL;
+// PkControl *control = PK_CONTROL(object);
+
+ /* get the results */
+ time_ms = pk_control_get_time_since_action_finish (control, res, &error);
+ if (time_ms == 0) {
+ /* TRANSLATORS: we keep a database updated with the time that an action was last executed */
+ g_print ("%s: %s\n", _("Failed to get the time since this action was last completed"), error->message);
+ g_error_free (error);
+ goto out;
+ }
+ g_print ("time is %is\n", time_ms);
+out:
+ g_main_loop_quit (loop);
+}
+
+/**
* main:
**/
int
@@ -973,8 +996,8 @@ main (int argc, char *argv[])
is_console = TRUE;
/* we need the roles early, as we only show the user only what they can do */
- control = pk_control_sync_new ();
- ret = pk_control_sync_get_properties (control, &error);
+ control = pk_control_new ();
+ ret = pk_control_get_properties_sync (control, &error);
if (!ret) {
g_print ("Failed to startup: %s\n", error->message);
goto out_last;
@@ -1242,7 +1265,6 @@ main (int argc, char *argv[])
} 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"));
@@ -1256,15 +1278,8 @@ main (int argc, char *argv[])
retval = PK_EXIT_CODE_SYNTAX_INVALID;
goto out;
}
- time_ms = pk_control_sync_get_time_since_action (control, role, &error);
- if (time_ms == 0) {
- /* TRANSLATORS: we keep a database updated with the time that an action was last executed */
- error = g_error_new (1, 0, "%s: %s", _("Failed to get the time since this action was last completed"), error->message);
- retval = EXIT_FAILURE;
- goto out;
- }
- g_print ("time since %s is %is\n", value, time_ms);
- nowait = TRUE;
+ pk_control_get_time_since_action_async (control, role, cancellable,
+ (GAsyncReadyCallback) pk_console_get_time_since_action_cb, NULL);
} else if (strcmp (mode, "get-depends") == 0) {
if (value == NULL) {
diff --git a/client/pk-generate-pack-test.c b/client/pk-generate-pack-test.c
index d2e1eda..2d61d0f 100644
--- a/client/pk-generate-pack-test.c
+++ b/client/pk-generate-pack-test.c
@@ -204,7 +204,7 @@ main (int argc, char *argv[])
gboolean ret;
gchar *filename = NULL;
PkClient *client = NULL;
- PkControlSync *control = NULL;
+ PkControl *control = NULL;
PkBitfield roles;
gchar *tempdir = NULL;
gboolean exists;
@@ -307,8 +307,8 @@ main (int argc, char *argv[])
directory = g_get_current_dir ();
/* are we dumb and can't do some actions */
- control = pk_control_sync_new ();
- ret = pk_control_sync_get_properties (control, &error);
+ control = pk_control_new ();
+ ret = pk_control_get_properties_sync (control, &error);
if (!ret) {
g_print ("Failed to startup: %s\n", error->message);
goto out;
diff --git a/contrib/command-not-found/Makefile.am b/contrib/command-not-found/Makefile.am
index 028b193..b3c8843 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-text.c \
- pk-text.h \
+ pk-tools-common.c \
+ pk-tools-common.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 b2cd2c1..77e4a40 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-text.h"
+#include "pk-tools-common.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
deleted file mode 120000
index d27cefa..0000000
--- a/contrib/command-not-found/pk-text.c
+++ /dev/null
@@ -1 +0,0 @@
-../../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
deleted file mode 120000
index 044acfb..0000000
--- a/contrib/command-not-found/pk-text.h
+++ /dev/null
@@ -1 +0,0 @@
-../../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
new file mode 120000
index 0000000..4afae3b
--- /dev/null
+++ b/contrib/command-not-found/pk-tools-common.c
@@ -0,0 +1 @@
+../../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
new file mode 120000
index 0000000..f3e70b0
--- /dev/null
+++ b/contrib/command-not-found/pk-tools-common.h
@@ -0,0 +1 @@
+../../client/pk-tools-common.h
\ No newline at end of file
commit b5df7aa06534584c9d9df7f13edef4944b1a7a63
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:45:44 2009 +0100
glib2: remove PkControlSync, it's a useless abstraction that isn't needed
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 800ac3d..b6d4536 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -35,7 +35,6 @@ libpackagekit_glib2_include_HEADERS = \
pk-client.h \
pk-common.h \
pk-control.h \
- pk-control-sync.h \
pk-package.h \
pk-package-id.h \
pk-package-ids.h \
@@ -60,8 +59,6 @@ libpackagekit_glib2_la_SOURCES = \
pk-common.h \
pk-control.c \
pk-control.h \
- pk-control-sync.c \
- pk-control-sync.h \
pk-enum.c \
pk-enum.h \
pk-marshal.c \
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index 23c72e5..93007db 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -27,7 +27,6 @@
#include <packagekit-glib2/pk-client.h>
#include <packagekit-glib2/pk-common.h>
#include <packagekit-glib2/pk-control.h>
-#include <packagekit-glib2/pk-control-sync.h>
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-package-id.h>
#include <packagekit-glib2/pk-package-ids.h>
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
deleted file mode 100644
index c298716..0000000
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <glib-object.h>
-#include <dbus/dbus-glib.h>
-#include <gio/gio.h>
-
-#include <packagekit-glib2/pk-control-sync.h>
-#include <packagekit-glib2/pk-common.h>
-#include <packagekit-glib2/pk-version.h>
-#include <packagekit-glib2/pk-bitfield.h>
-
-#include "egg-debug.h"
-
-static void pk_control_sync_finalize (GObject *object);
-
-#define PK_CONTROL_SYNC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_CONTROL_SYNC, PkControlSyncPrivate))
-
-/**
- * PkControlSyncPrivate:
- *
- * Private #PkControlSync data
- **/
-struct _PkControlSyncPrivate
-{
- DBusGProxy *proxy;
-};
-
-static gpointer pk_control_sync_object = NULL;
-
-G_DEFINE_TYPE (PkControlSync, pk_control_sync, PK_TYPE_CONTROL)
-
-/**
- * pk_control_sync_fixup_dbus_error:
- **/
-static void
-pk_control_sync_fixup_dbus_error (GError *error)
-{
- g_return_if_fail (error != NULL);
-
- /* hardcode domain */
- error->domain = PK_CONTROL_ERROR;
-
- /* find a better failure code */
- if (error->code == DBUS_GERROR_SPAWN_CHILD_EXITED)
- error->code = PK_CONTROL_ERROR_CANNOT_START_DAEMON;
- else
- error->code = PK_CONTROL_ERROR_FAILED;
-}
-
-/**
- * pk_control_sync_get_daemon_state:
- * @control_sync: a valid #PkControlSync instance
- * @error: a %GError to put the error code and message in, or %NULL
- *
- * The engine state debugging output
- *
- * Return value: a string of debugging data of unspecified format, unref wih g_free()
- **/
-gchar *
-pk_control_sync_get_daemon_state (PkControlSync *control, GError **error)
-{
- gboolean ret;
- gchar *state = NULL;
-
- g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), NULL);
- g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-
- /* call D-Bus sync */
- ret = dbus_g_proxy_call (control->priv->proxy, "GetDaemonState", error,
- G_TYPE_INVALID,
- G_TYPE_STRING, &state,
- G_TYPE_INVALID);
- if (!ret) {
- /* fix up the D-Bus error */
- if (error != NULL)
- pk_control_sync_fixup_dbus_error (*error);
- goto out;
- }
-out:
- return state;
-}
-
-/* tiny helper to help us do the async operation */
-typedef struct {
- GError **error;
- GMainLoop *loop;
- gboolean ret;
- guint seconds;
-} PkControlSyncHelper;
-
-/**
- * pk_control_sync_properties_cb:
- **/
-static void
-pk_control_sync_properties_cb (PkControlSync *control, GAsyncResult *res, PkControlSyncHelper *sync)
-{
- /* get the result */
- sync->ret = pk_control_get_properties_finish (PK_CONTROL(control), res, sync->error);
- g_main_loop_quit (sync->loop);
-}
-
-/**
- * pk_control_sync_get_properties:
- * @control: a valid #PkControlSync instance
- * @error: A #GError or %NULL
- *
- * Gets the properties the daemon supports.
- * Warning: this function is synchronous, and may block. Do not use it in GUI
- * applications.
- *
- * Return value: %TRUE if the properties were set correctly
- **/
-gboolean
-pk_control_sync_get_properties (PkControlSync *control, GError **error)
-{
- gboolean ret;
- PkControlSyncHelper *sync;
-
- g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), FALSE);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- sync = g_new0 (PkControlSyncHelper, 1);
- sync->loop = g_main_loop_new (NULL, FALSE);
- sync->error = error;
-
- /* run async method */
- pk_control_get_properties_async (PK_CONTROL(control), NULL, (GAsyncReadyCallback) pk_control_sync_properties_cb, sync);
- g_main_loop_run (sync->loop);
-
- ret = sync->ret;
-
- /* free temp object */
- g_main_loop_unref (sync->loop);
- g_free (sync);
-
- return ret;
-}
-
-/**
- * pk_control_sync_time_since_action_cb:
- **/
-static void
-pk_control_sync_time_since_action_cb (PkControlSync *control, GAsyncResult *res, PkControlSyncHelper *sync)
-{
- /* get the result */
- sync->seconds = pk_control_get_time_since_action_finish (PK_CONTROL(control), res, sync->error);
- g_main_loop_quit (sync->loop);
-}
-
-/**
- * pk_control_sync_get_time_since_action:
- * @control: a valid #PkControlSync instance
- * @error: A #GError or %NULL
- *
- * We may want to know how long it has been since we refreshed the cache or
- * retrieved the update list.
- *
- * Return value: The number of seconds, or 0 for error
- **/
-guint
-pk_control_sync_get_time_since_action (PkControlSync *control, PkRoleEnum role, GError **error)
-{
- guint seconds;
- PkControlSyncHelper *sync;
-
- g_return_val_if_fail (PK_IS_CONTROL_SYNC (control), FALSE);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- sync = g_new0 (PkControlSyncHelper, 1);
- sync->loop = g_main_loop_new (NULL, FALSE);
- sync->error = error;
-
- /* run async method */
- pk_control_get_time_since_action_async (PK_CONTROL(control), role, NULL, (GAsyncReadyCallback) pk_control_sync_time_since_action_cb, sync);
- g_main_loop_run (sync->loop);
-
- seconds = sync->seconds;
-
- /* free temp object */
- g_main_loop_unref (sync->loop);
- g_free (sync);
-
- return seconds;
-}
-
-/**
- * pk_control_sync_class_init:
- * @klass: The PkControlSyncClass
- **/
-static void
-pk_control_sync_class_init (PkControlSyncClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = pk_control_sync_finalize;
- g_type_class_add_private (klass, sizeof (PkControlSyncPrivate));
-}
-
-/**
- * pk_control_sync_init:
- * @control_sync: This class instance
- **/
-static void
-pk_control_sync_init (PkControlSync *control)
-{
- DBusGConnection *connection;
- GError *error = NULL;
-
- control->priv = PK_CONTROL_SYNC_GET_PRIVATE (control);
-
- /* get connection */
- connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
- if (error != NULL) {
- egg_warning ("%s", error->message);
- g_error_free (error);
- g_error ("This program cannot start until you start the dbus system service.");
- }
-
- /* get a connection to the main interface */
- control->priv->proxy = dbus_g_proxy_new_for_name (connection,
- PK_DBUS_SERVICE, PK_DBUS_PATH,
- PK_DBUS_INTERFACE);
- if (control->priv->proxy == NULL)
- egg_error ("Cannot connect to PackageKit.");
-}
-
-/**
- * pk_control_sync_finalize:
- * @object: The object to finalize
- **/
-static void
-pk_control_sync_finalize (GObject *object)
-{
- PkControlSync *control = PK_CONTROL_SYNC (object);
- g_object_unref (G_OBJECT (control->priv->proxy));
- G_OBJECT_CLASS (pk_control_sync_parent_class)->finalize (object);
-}
-
-/**
- * pk_control_sync_new:
- *
- * Return value: a new PkControlSync object.
- **/
-PkControlSync *
-pk_control_sync_new (void)
-{
- if (pk_control_sync_object != NULL) {
- g_object_ref (pk_control_sync_object);
- } else {
- pk_control_sync_object = g_object_new (PK_TYPE_CONTROL_SYNC, NULL);
- g_object_add_weak_pointer (pk_control_sync_object, &pk_control_sync_object);
- }
- return PK_CONTROL_SYNC (pk_control_sync_object);
-}
-
-/***************************************************************************
- *** MAKE CHECK TESTS ***
- ***************************************************************************/
-#ifdef EGG_TEST
-#include "egg-test.h"
-
-void
-pk_control_sync_test (gpointer user_data)
-{
- EggTest *test = (EggTest *) user_data;
- PkControlSync *control;
- GError *error = NULL;
- gboolean ret;
- gchar *text;
- PkBitfield roles;
-
- if (!egg_test_start (test, "PkControlSync"))
- return;
-
- /************************************************************/
- egg_test_title (test, "get control_sync");
- control = pk_control_sync_new ();
- egg_test_assert (test, control != NULL);
-
- /************************************************************/
- egg_test_title (test, "get properties sync");
- ret = pk_control_sync_get_properties (control, &error);
- if (!ret)
- egg_test_failed (test, "failed to get properties: %s", error->message);
-
- /* get data */
- g_object_get (control,
- "roles", &roles,
- NULL);
-
- /* check data */
- text = pk_role_bitfield_to_text (roles);
- if (g_strcmp0 (text, "cancel;get-depends;get-details;get-files;get-packages;get-repo-list;"
- "get-requires;get-update-detail;get-updates;install-files;install-packages;"
- "refresh-cache;remove-packages;repo-enable;repo-set-data;resolve;rollback;"
- "search-details;search-file;search-group;search-name;update-packages;update-system;"
- "what-provides;download-packages;get-distro-upgrades;simulate-install-packages;"
- "simulate-remove-packages;simulate-update-packages") != 0) {
- egg_test_failed (test, "data incorrect: %s", text);
- }
- egg_test_success (test, "got correct roles");
- g_free (text);
-
- g_object_unref (control);
- egg_test_end (test);
-}
-#endif
-
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
deleted file mode 100644
index b20df0b..0000000
--- a/lib/packagekit-glib2/pk-control-sync.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
-#error "Only <packagekit.h> can be included directly."
-#endif
-
-/**
- * SECTION:pk-control_sync
- * @short_description: An abstract synchronous control access GObject
- */
-
-#ifndef __PK_CONTROL_SYNC_H
-#define __PK_CONTROL_SYNC_H
-
-#include <glib-object.h>
-
-#include <packagekit-glib2/pk-enum.h>
-#include <packagekit-glib2/pk-control.h>
-
-G_BEGIN_DECLS
-
-#define PK_TYPE_CONTROL_SYNC (pk_control_sync_get_type ())
-#define PK_CONTROL_SYNC(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_CONTROL_SYNC, PkControlSync))
-#define PK_CONTROL_SYNC_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_CONTROL_SYNC, PkControlSyncClass))
-#define PK_IS_CONTROL_SYNC(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_CONTROL_SYNC))
-#define PK_IS_CONTROL_SYNC_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_CONTROL_SYNC))
-#define PK_CONTROL_SYNC_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_CONTROL_SYNC, PkControlSyncClass))
-
-typedef struct _PkControlSyncPrivate PkControlSyncPrivate;
-typedef struct _PkControlSync PkControlSync;
-typedef struct _PkControlSyncClass PkControlSyncClass;
-
-struct _PkControlSync
-{
- PkControl parent;
- PkControlSyncPrivate *priv;
-};
-
-struct _PkControlSyncClass
-{
- PkControlClass parent_class;
-};
-
-GQuark pk_control_sync_error_quark (void);
-GType pk_control_sync_get_type (void);
-PkControlSync *pk_control_sync_new (void);
-void pk_control_sync_test (gpointer user_data);
-
-guint pk_control_sync_get_time_since_action (PkControlSync *control,
- PkRoleEnum role,
- GError **error);
-gchar *pk_control_sync_get_daemon_state (PkControlSync *control,
- GError **error);
-gboolean pk_control_sync_get_properties (PkControlSync *control,
- GError **error);
-
-G_END_DECLS
-
-#endif /* __PK_CONTROL_SYNC_H */
-
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index c2b2df6..1b99e52 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -106,6 +106,14 @@ typedef struct {
PkNetworkEnum network;
} PkControlState;
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ gboolean ret;
+ guint seconds;
+} PkControlHelper;
+
/**
* pk_control_error_quark:
*
@@ -1313,6 +1321,55 @@ pk_control_get_properties_finish (PkControl *control, GAsyncResult *res, GError
return g_simple_async_result_get_op_res_gboolean (simple);
}
+/**
+ * pk_control_get_properties_sync_cb:
+ **/
+static void
+pk_control_get_properties_sync_cb (PkControl *control, GAsyncResult *res, PkControlHelper *helper)
+{
+ /* get the result */
+ helper->ret = pk_control_get_properties_finish (control, res, helper->error);
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_control_get_properties_sync:
+ * @control: a valid #PkControl instance
+ * @error: A #GError or %NULL
+ *
+ * Gets the properties the daemon supports.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: %TRUE if the properties were set correctly
+ **/
+gboolean
+pk_control_get_properties_sync (PkControl *control, GError **error)
+{
+ gboolean ret;
+ PkControlHelper *helper;
+
+ g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkControlHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_control_get_properties_async (control, NULL, (GAsyncReadyCallback) pk_control_get_properties_sync_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ ret = helper->ret;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return ret;
+}
+
/***************************************************************************************************/
/**
@@ -2002,6 +2059,10 @@ pk_control_test (gpointer user_data)
EggTest *test = (EggTest *) user_data;
PkControl *control;
guint version;
+ GError *error = NULL;
+ gboolean ret;
+ gchar *text;
+ PkBitfield roles;
if (!egg_test_start (test, "PkControl"))
return;
@@ -2063,6 +2124,30 @@ pk_control_test (gpointer user_data)
g_object_get (control, "version-micro", &version, NULL);
egg_test_assert (test, (version == PK_MICRO_VERSION));
+ /************************************************************/
+ egg_test_title (test, "get properties sync");
+ ret = pk_control_get_properties_sync (control, &error);
+ if (!ret)
+ egg_test_failed (test, "failed to get properties: %s", error->message);
+
+ /* get data */
+ g_object_get (control,
+ "roles", &roles,
+ NULL);
+
+ /* check data */
+ text = pk_role_bitfield_to_text (roles);
+ if (g_strcmp0 (text, "cancel;get-depends;get-details;get-files;get-packages;get-repo-list;"
+ "get-requires;get-update-detail;get-updates;install-files;install-packages;"
+ "refresh-cache;remove-packages;repo-enable;repo-set-data;resolve;rollback;"
+ "search-details;search-file;search-group;search-name;update-packages;update-system;"
+ "what-provides;download-packages;get-distro-upgrades;simulate-install-packages;"
+ "simulate-remove-packages;simulate-update-packages") != 0) {
+ egg_test_failed (test, "data incorrect: %s", text);
+ }
+ egg_test_success (test, "got correct roles");
+ g_free (text);
+
g_object_unref (control);
egg_test_end (test);
}
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 2cad94f..c32ecdb 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -156,6 +156,8 @@ void pk_control_get_properties_async (PkControl *control,
gboolean pk_control_get_properties_finish (PkControl *control,
GAsyncResult *res,
GError **error);
+gboolean pk_control_get_properties_sync (PkControl *control,
+ GError **error);
G_END_DECLS
diff --git a/lib/packagekit-glib2/pk-self-test.c b/lib/packagekit-glib2/pk-self-test.c
index 984e3a7..4d0b231 100644
--- a/lib/packagekit-glib2/pk-self-test.c
+++ b/lib/packagekit-glib2/pk-self-test.c
@@ -29,7 +29,6 @@
#include "pk-client.h"
#include "pk-common.h"
#include "pk-control.h"
-#include "pk-control-sync.h"
#include "pk-enum.h"
#include "pk-package.h"
#include "pk-package-id.h"
@@ -60,7 +59,6 @@ main (int argc, char **argv)
pk_results_test (test);
pk_package_test (test);
pk_control_test (test);
- pk_control_sync_test (test);
pk_client_test (test);
pk_package_sack_test (test);
pk_task_test (test);
commit 1addd6cc795ba330e7deb0e9f982efbabaa3a380
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:17:47 2009 +0100
glib2: Add a glib2 version of pkgenpack
diff --git a/client/.gitignore b/client/.gitignore
index b724533..604f5d4 100644
--- a/client/.gitignore
+++ b/client/.gitignore
@@ -1,5 +1,6 @@
.deps
.libs
+*.a
*.o
pk-marshal.h
pk-marshal.c
@@ -8,6 +9,7 @@ pkcon-test
pkmon
pkmon-test
pkgenpack
+pkgenpack-test
pk-self-test
*.glade.bak
*.gladep
diff --git a/client/Makefile.am b/client/Makefile.am
index 8e95476..d6feab0 100644
--- a/client/Makefile.am
+++ b/client/Makefile.am
@@ -65,23 +65,28 @@ PK_GLIB2_LIBS = \
$(top_builddir)/lib/packagekit-glib2/libpackagekit-glib2.la \
$(NULL)
-noinst_PROGRAMS = pkcon-test pkmon-test
+noinst_PROGRAMS = pkcon-test pkmon-test pkgenpack-test
-# TODO: private library
-
-pkcon_test_SOURCES = \
+noinst_LIBRARIES = libpkconsole.a
+libpkconsole_a_SOURCES = \
egg-debug.c \
egg-debug.h \
- pk-console-test.c \
+ egg-string.c \
+ egg-string.h \
pk-task-text.c \
pk-task-text.h \
- pk-text.c \
- pk-text.h \
+ pk-console-shared.c \
+ pk-console-shared.h \
pk-progress-bar.c \
pk-progress-bar.h \
$(NULL)
+pkcon_test_SOURCES = \
+ pk-console-test.c \
+ $(NULL)
+
pkcon_test_LDADD = \
+ libpkconsole.a \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(PK_GLIB2_LIBS) \
@@ -92,12 +97,11 @@ pkcon_test_CFLAGS = \
$(NULL)
pkmon_test_SOURCES = \
- egg-debug.c \
- egg-debug.h \
pk-monitor-test.c \
$(NULL)
pkmon_test_LDADD = \
+ libpkconsole.a \
$(GLIB_LIBS) \
$(DBUS_LIBS) \
$(PK_GLIB2_LIBS) \
@@ -106,6 +110,23 @@ pkmon_test_LDADD = \
pkmon_test_CFLAGS = \
$(WARNINGFLAGS_C) \
$(NULL)
+
+pkgenpack_test_SOURCES = \
+ pk-generate-pack-test.c \
+ $(NULL)
+
+pkgenpack_test_LDADD = \
+ libpkconsole.a \
+ $(ARCHIVE_LIBS) \
+ $(GLIB_LIBS) \
+ $(DBUS_LIBS) \
+ $(PK_GLIB2_LIBS) \
+ $(NULL)
+
+pkgenpack_test_CFLAGS = \
+ $(WARNINGFLAGS_C) \
+ $(NULL)
+
endif
pkcon_SOURCES = \
@@ -114,8 +135,6 @@ 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)
@@ -152,8 +171,6 @@ 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)
@@ -181,8 +198,6 @@ 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 \
diff --git a/client/pk-generate-pack-test.c b/client/pk-generate-pack-test.c
new file mode 100644
index 0000000..d2e1eda
--- /dev/null
+++ b/client/pk-generate-pack-test.c
@@ -0,0 +1,459 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008 Shishir Goel <crazyontheedge at gmail.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 <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <glib.h>
+#include <glib/gi18n.h>
+#include <glib/gstdio.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+#include "pk-console-shared.h"
+#include "pk-progress-bar.h"
+
+static PkProgressBar *progressbar = NULL;
+static GCancellable *cancellable = NULL;
+
+/**
+ * pk_generate_pack_get_filename:
+ **/
+static gchar *
+pk_generate_pack_get_filename (const gchar *name, const gchar *directory)
+{
+ gchar *filename = NULL;
+ gchar *distro_id;
+ gchar *iso_time = NULL;
+
+ distro_id = pk_get_distro_id ();
+ if (name != NULL) {
+ filename = g_strdup_printf ("%s/%s-%s.%s", directory, name, distro_id, PK_SERVICE_PACK_FILE_EXTENSION);
+ } else {
+ iso_time = pk_iso8601_present ();
+ /* don't include the time, just use the date prefix */
+ iso_time[10] = '\0';
+ filename = g_strdup_printf ("%s/updates-%s-%s.%s", directory, iso_time, distro_id, PK_SERVICE_PACK_FILE_EXTENSION);
+ }
+ g_free (distro_id);
+ g_free (iso_time);
+ return filename;
+}
+
+/**
+ * pk_generate_pack_progress_cb:
+ **/
+static void
+pk_generate_pack_progress_cb (PkProgress *progress, PkProgressType type, gpointer data)
+{
+ gint percentage;
+ PkStatusEnum status;
+
+ /* 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);
+ if (status == PK_STATUS_ENUM_FINISHED)
+ return;
+ /* TODO: translate */
+ pk_progress_bar_start (progressbar, pk_status_enum_to_text (status));
+ }
+}
+
+/**
+ * pk_generate_pack_sigint_cb:
+ **/
+static void
+pk_generate_pack_sigint_cb (int sig)
+{
+ egg_debug ("Handling SIGINT");
+
+ /* restore default */
+ signal (SIGINT, SIG_DFL);
+
+ /* cancel any tasks still running */
+ g_cancellable_cancel (cancellable);
+
+ /* kill ourselves */
+ egg_debug ("Retrying SIGINT");
+ kill (getpid (), SIGINT);
+}
+
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ gboolean ret;
+} PkGenpackHelper;
+
+/**
+ * pk_generate_pack_generic_cb:
+ **/
+static void
+pk_generate_pack_generic_cb (PkServicePack *pack, GAsyncResult *res, PkGenpackHelper *helper)
+{
+ /* get the result */
+ helper->ret = pk_service_pack_generic_finish (pack, res, helper->error);
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_generate_pack_create_for_updates:
+ **/
+static gboolean
+pk_generate_pack_create_for_updates (PkServicePack *pack, const gchar *filename, gchar **excludes, GError **error)
+{
+ gboolean ret;
+ PkGenpackHelper *helper;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkGenpackHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_service_pack_create_for_updates_async (pack, filename, excludes, cancellable,
+ (PkProgressCallback) pk_generate_pack_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_generate_pack_generic_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ ret = helper->ret;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return ret;
+}
+
+/**
+ * pk_generate_pack_create_for_package_ids:
+ **/
+static gboolean
+pk_generate_pack_create_for_package_ids (PkServicePack *pack, const gchar *filename, gchar **package_ids, gchar **excludes, GError **error)
+{
+ gboolean ret;
+ PkGenpackHelper *helper;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkGenpackHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_service_pack_create_for_package_ids_async (pack, filename, package_ids, excludes, cancellable,
+ (PkProgressCallback) pk_generate_pack_progress_cb, NULL,
+ (GAsyncReadyCallback) pk_generate_pack_generic_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ ret = helper->ret;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return ret;
+}
+
+/**
+ * main:
+ **/
+int
+main (int argc, char *argv[])
+{
+ GError *error = NULL;
+ GOptionContext *context;
+ gchar *options_help;
+ gboolean ret;
+ gchar *filename = NULL;
+ PkClient *client = NULL;
+ PkControlSync *control = NULL;
+ PkBitfield roles;
+ gchar *tempdir = NULL;
+ gboolean exists;
+ gboolean overwrite;
+ gchar **excludes = NULL;
+ gchar *package_id = NULL;
+ PkServicePack *pack = NULL;
+
+ gboolean verbose = FALSE;
+ gchar *directory = NULL;
+ gchar *package_list = NULL;
+ gchar *package = NULL;
+ gboolean updates = FALSE;
+ gint retval = 1;
+
+ const GOptionEntry options[] = {
+ { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
+ _("Show extra debugging information"), NULL },
+ { "with-package-list", 'l', 0, G_OPTION_ARG_STRING, &package_list,
+ /* TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target */
+ _("Set the file name of dependencies to be excluded"), NULL},
+ { "output", 'o', 0, G_OPTION_ARG_STRING, &directory,
+ /* TRANSLATORS: the output location */
+ _("The output file or directory (the current directory is used if ommitted)"), NULL},
+ { "package", 'p', 0, G_OPTION_ARG_STRING, &package,
+ /* TRANSLATORS: put a list of packages in the pack */
+ _("The package to be put into the service pack"), NULL},
+ { "updates", 'u', 0, G_OPTION_ARG_NONE, &updates,
+ /* TRANSLATORS: put all pending updates in the pack */
+ _("Put all updates available in the service pack"), 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_generate_pack_sigint_cb);
+
+ context = g_option_context_new ("PackageKit Pack Generator");
+ 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);
+ egg_debug_init (verbose);
+
+ client = pk_client_new ();
+ pack = pk_service_pack_new ();
+ cancellable = g_cancellable_new ();
+ progressbar = pk_progress_bar_new ();
+ pk_progress_bar_set_size (progressbar, 25);
+ pk_progress_bar_set_padding (progressbar, 20);
+
+ /* neither options selected */
+ if (package == NULL && !updates) {
+ /* TRANSLATORS: This is when the user fails to supply the correct arguments */
+ g_print ("%s\n", _("Neither --package or --updates option selected."));
+ retval = 1;
+ goto out;
+ }
+
+ /* both options selected */
+ if (package != NULL && updates) {
+ /* TRANSLATORS: This is when the user fails to supply just one argument */
+ g_print ("%s\n", _("Both options selected."));
+ retval = 1;
+ goto out;
+ }
+
+ /* no argument given to --package */
+ if (package != NULL && egg_strzero (package)) {
+ /* TRANSLATORS: This is when the user fails to supply the package name */
+ g_print ("%s\n", _("A package name is required"));
+ retval = 1;
+ goto out;
+ }
+
+ /* no argument given to --output */
+ if (directory != NULL && egg_strzero (directory)) {
+ /* TRANSLATORS: This is when the user fails to supply the output */
+ g_print ("%s\n", _("A output directory or file name is required"));
+ retval = 1;
+ goto out;
+ }
+
+ /* fall back to the system copy */
+ if (package_list == NULL)
+ package_list = g_strdup (PK_SYSTEM_PACKAGE_LIST_FILENAME);
+
+ /* fall back to CWD */
+ if (directory == NULL)
+ directory = g_get_current_dir ();
+
+ /* are we dumb and can't do some actions */
+ control = pk_control_sync_new ();
+ ret = pk_control_sync_get_properties (control, &error);
+ if (!ret) {
+ g_print ("Failed to startup: %s\n", error->message);
+ goto out;
+ }
+
+ /* get data */
+ g_object_get (control,
+ "roles", &roles,
+ NULL);
+
+ if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_DEPENDS)) {
+ /* TRANSLATORS: This is when the backend doesn't have the capability to get-depends */
+ g_print ("%s (GetDepends)\n", _("The package manager cannot perform this type of operation."));
+ retval = 1;
+ goto out;
+ }
+ if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_DOWNLOAD_PACKAGES)) {
+ /* TRANSLATORS: This is when the backend doesn't have the capability to download */
+ g_print ("%s (DownloadPackage)\n", _("The package manager cannot perform this type of operation."));
+ retval = 1;
+ goto out;
+ }
+
+#ifndef HAVE_ARCHIVE_H
+ /* TRANSLATORS: This is when the distro didn't include libarchive support into PK */
+ g_print ("%s\n", _("Service packs cannot be created as PackageKit was not built with libarchive support."));
+ goto out;
+#endif
+
+ /* the user can speciify a complete path */
+ ret = g_file_test (directory, G_FILE_TEST_IS_DIR);
+ if (ret) {
+ filename = pk_generate_pack_get_filename (package, directory);
+ } else {
+ if (!g_str_has_suffix (directory, PK_SERVICE_PACK_FILE_EXTENSION)) {
+ /* TRANSLATORS: the user specified an absolute path, but didn't get the extension correct */
+ g_print ("%s .%s \n", _("If specifying a file, the service pack name must end with"), PK_SERVICE_PACK_FILE_EXTENSION);
+ retval = 1;
+ goto out;
+ }
+ filename = g_strdup (directory);
+ }
+
+ /* download packages to a temporary directory */
+ tempdir = g_build_filename (g_get_tmp_dir (), "pack", NULL);
+
+ /* check if file exists before we overwrite it */
+ exists = g_file_test (filename, G_FILE_TEST_EXISTS);
+
+ /*ask user input*/
+ if (exists) {
+ /* TRANSLATORS: This is when file already exists */
+ overwrite = pk_console_get_prompt (_("A pack with the same name already exists, do you want to overwrite it?"), FALSE);
+ if (!overwrite) {
+ /* TRANSLATORS: This is when the pack was not overwritten */
+ g_print ("%s\n", _("The pack was not overwritten."));
+ retval = 1;
+ goto out;
+ }
+ }
+
+ /* get rid of temp directory if it already exists */
+ g_rmdir (tempdir);
+
+ /* make the temporary directory */
+ retval = g_mkdir_with_parents (tempdir, 0777);
+ if (retval != 0) {
+ /* TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows */
+ g_print ("%s '%s'\n", _("Failed to create directory:"), tempdir);
+ retval = 1;
+ goto out;
+ }
+ pk_service_pack_set_temp_directory (pack, tempdir);
+
+ /* get the exclude list */
+ excludes = NULL;
+#if 0
+ ret = pk_obj_list_from_file (PK_OBJ_LIST(list), package_list);
+ if (!ret) {
+ /* TRANSLATORS: This is when the list of packages from the remote computer cannot be opened */
+ g_print ("%s: '%s'\n", _("Failed to open package list."), package_list);
+ retval = 1;
+ goto out;
+ }
+#endif
+
+ /* resolve package name to package_id */
+ if (!updates) {
+ /* TRANSLATORS: The package name is being matched up to available packages */
+ g_print ("%s\n", _("Finding package name."));
+ package_id = pk_console_resolve_package (client, PK_FILTER_ENUM_NONE, package, &error);
+ if (package_id == NULL) {
+ /* TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows */
+ g_print (_("Failed to find package '%s': %s"), package, error->message);
+ g_error_free (error);
+ retval = 1;
+ goto out;
+ }
+ }
+
+ /* TRANSLATORS: This is telling the user we are in the process of making the pack */
+ g_print ("%s\n", _("Creating service pack..."));
+ if (updates)
+ ret = pk_generate_pack_create_for_updates (pack, filename, excludes, &error);
+ else {
+ gchar **package_ids;
+ package_ids = pk_package_ids_from_id (package_id);
+ ret = pk_generate_pack_create_for_package_ids (pack, filename, package_ids, excludes, &error);
+ g_strfreev (package_ids);
+ }
+
+ /* no more progress */
+ pk_progress_bar_end (progressbar);
+
+ if (ret) {
+ /* TRANSLATORS: we succeeded in making the file */
+ g_print (_("Service pack created '%s'"), filename);
+ g_print ("\n");
+ retval = 0;
+ } else {
+ /* TRANSLATORS: we failed to make te file */
+ g_print (_("Failed to create '%s': %s"), filename, error->message);
+ g_print ("\n");
+ g_error_free (error);
+ }
+
+out:
+ /* get rid of temp directory */
+ g_rmdir (tempdir);
+
+ g_object_unref (cancellable);
+ if (progressbar != NULL)
+ g_object_unref (progressbar);
+ if (pack != NULL)
+ g_object_unref (pack);
+ if (client != NULL)
+ g_object_unref (client);
+ if (control != NULL)
+ g_object_unref (control);
+ g_free (tempdir);
+ g_free (filename);
+ g_free (package_id);
+ g_free (directory);
+ g_free (package_list);
+ g_free (options_help);
+ g_strfreev (excludes);
+ return retval;
+}
commit 99522c898e44e74c805bc9e416c4faac67a620e5
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:16:18 2009 +0100
glib2: remove the PkText shared code, and just duplicate the code for simplicity
diff --git a/client/pk-console-shared.c b/client/pk-console-shared.c
new file mode 100644
index 0000000..3733854
--- /dev/null
+++ b/client/pk-console-shared.c
@@ -0,0 +1,263 @@
+/* -*- 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 <stdio.h>
+#include <gio/gio.h>
+#include <glib/gi18n.h>
+#include <packagekit-glib2/packagekit.h>
+
+#include "egg-debug.h"
+
+#include "pk-console-shared.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';
+ gboolean ret = FALSE;
+
+ /* 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) fgetc (stdin);
+
+ /* positive */
+ if (answer == 'y' || answer == 'Y') {
+ ret = TRUE;
+ break;
+ }
+ /* negative */
+ if (answer == 'n' || answer == 'N')
+ break;
+
+ /* default choice */
+ if (answer == '\n' && defaultyes) {
+ ret = TRUE;
+ break;
+ }
+ if (answer == '\n' && !defaultyes)
+ break;
+ } while (TRUE);
+
+ /* remove the trailing \n */
+ answer = (gchar) fgetc (stdin);
+ if (answer != '\n')
+ ungetc (answer, stdin);
+
+ return ret;
+}
+
+/* tiny helper to help us do the async operation */
+typedef struct {
+ GError **error;
+ GMainLoop *loop;
+ PkResults *results;
+} PkConsoleSyncHelper;
+
+/**
+ * pk_console_sync_resolve_cb:
+ **/
+static void
+pk_console_sync_resolve_cb (PkClient *client, GAsyncResult *res, PkConsoleSyncHelper *helper)
+{
+ PkResults *results;
+ /* get the result */
+ results = pk_client_generic_finish (client, res, helper->error);
+ if (results != NULL) {
+ g_object_unref (results);
+ helper->results = g_object_ref (G_OBJECT (results));
+ }
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_console_sync_resolve:
+ * @console: a valid #PkClient instance
+ * @error: A #GError or %NULL
+ *
+ * Resolves a package to a Package ID.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: a %PkResults object, or NULL for error
+ **/
+static PkResults *
+pk_console_sync_resolve (PkClient *client, PkFilterEnum filter, gchar **packages, GError **error)
+{
+ PkConsoleSyncHelper *helper;
+ PkResults *results;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkConsoleSyncHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_client_resolve_async (client, filter, packages, NULL, NULL, NULL,
+ (GAsyncReadyCallback) pk_console_sync_resolve_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ results = helper->results;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return results;
+}
+
+/**
+ * pk_console_resolve_package:
+ **/
+gchar *
+pk_console_resolve_package (PkClient *client, PkBitfield filter, const gchar *package, GError **error)
+{
+ gchar *package_id = NULL;
+ gboolean valid;
+ gchar **tmp;
+ PkResults *results;
+ GPtrArray *array = NULL;
+ guint i;
+ gchar *printable;
+ const PkResultItemPackage *item;
+
+ /* have we passed a complete package_id? */
+ valid = pk_package_id_check (package);
+ if (valid)
+ return g_strdup (package);
+
+ /* split */
+ tmp = g_strsplit (package, ",", -1);
+
+ /* get the list of possibles */
+ results = pk_console_sync_resolve (client, filter, tmp, error);
+ if (results == NULL)
+ goto out;
+
+ /* get the packages returned */
+ array = pk_results_get_package_array (results);
+ if (array == NULL) {
+ *error = g_error_new (1, 0, "did not get package struct for %s", package);
+ goto out;
+ }
+
+ /* nothing found */
+ if (array->len == 0) {
+ *error = g_error_new (1, 0, "could not find %s", package);
+ goto out;
+ }
+
+ /* just one thing found */
+ if (array->len == 1) {
+ item = g_ptr_array_index (array, 0);
+ package_id = g_strdup (item->package_id);
+ goto out;
+ }
+
+ /* TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages */
+ g_print ("%s\n", _("More than one package matches:"));
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ printable = pk_package_id_to_printable (item->package_id);
+ g_print ("%i. %s\n", i+1, printable);
+ g_free (printable);
+ }
+
+ /* TRANSLATORS: This finds out which package in the list to use */
+ i = pk_console_get_number (_("Please choose the correct package: "), array->len);
+ item = g_ptr_array_index (array, i-1);
+ package_id = g_strdup (item->package_id);
+out:
+ if (results != NULL)
+ g_object_unref (results);
+ if (array != NULL)
+ g_ptr_array_unref (array);
+ g_strfreev (tmp);
+ return package_id;
+}
+
+/**
+ * pk_console_resolve_packages:
+ **/
+gchar **
+pk_console_resolve_packages (PkClient *client, PkBitfield filter, gchar **packages, GError **error)
+{
+ gchar **package_ids;
+ guint i;
+ guint len;
+
+ /* get length */
+ len = g_strv_length (packages);
+ egg_debug ("resolving %i packages", len);
+
+ /* create output array*/
+ package_ids = g_new0 (gchar *, len+1);
+
+ /* resolve each package */
+ for (i=0; i<len; i++) {
+ package_ids[i] = pk_console_resolve_package (client, filter, packages[i], error);
+ if (package_ids[i] == NULL) {
+ /* destroy state */
+ g_strfreev (package_ids);
+ package_ids = NULL;
+ break;
+ }
+ }
+ return package_ids;
+}
+
diff --git a/client/pk-console-shared.h b/client/pk-console-shared.h
new file mode 100644
index 0000000..1da5336
--- /dev/null
+++ b/client/pk-console-shared.h
@@ -0,0 +1,44 @@
+/* -*- 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_CONSOLE_SHARED_H
+#define __PK_CONSOLE_SHARED_H
+
+#include <glib.h>
+#include <packagekit-glib2/packagekit.h>
+
+guint pk_console_get_number (const gchar *question,
+ guint maxnum);
+gboolean pk_console_get_prompt (const gchar *question,
+ gboolean defaultyes);
+gchar *pk_console_resolve_package (PkClient *client,
+ PkBitfield filter,
+ const gchar *package,
+ GError **error);
+gchar **pk_console_resolve_packages (PkClient *client,
+ PkBitfield filter,
+ gchar **packages,
+ GError **error);
+
+#endif /* __PK_CONSOLE_SHARED_H */
+
+
+
diff --git a/client/pk-console-test.c b/client/pk-console-test.c
index 1a6ac18..5fce48a 100644
--- a/client/pk-console-test.c
+++ b/client/pk-console-test.c
@@ -33,9 +33,8 @@
#include <locale.h>
#include "egg-debug.h"
-//#include "egg-string.h"
-#include "pk-text.h"
+#include "pk-console-shared.h"
#include "pk-task-text.h"
#include "pk-progress-bar.h"
@@ -410,168 +409,6 @@ pk_console_files_cb (PkResultItemFiles *obj, gpointer data)
}
}
-/* tiny helper to help us do the async operation */
-typedef struct {
- GError **error;
- GMainLoop *loop;
- PkResults *results;
-} PkConsoleSyncHelper;
-
-/**
- * pk_console_sync_resolve_cb:
- **/
-static void
-pk_console_sync_resolve_cb (PkClient *client, GAsyncResult *res, PkConsoleSyncHelper *helper)
-{
- PkResults *results;
- /* get the result */
- results = pk_client_generic_finish (client, res, helper->error);
- if (results != NULL) {
- g_object_unref (results);
- helper->results = g_object_ref (G_OBJECT (results));
- }
- g_main_loop_quit (helper->loop);
-}
-
-/**
- * pk_console_sync_resolve:
- * @console: a valid #PkClient instance
- * @error: A #GError or %NULL
- *
- * Resolves a package to a Package ID.
- * Warning: this function is synchronous, and may block. Do not use it in GUI
- * applications.
- *
- * Return value: a %PkResults object, or NULL for error
- **/
-static PkResults *
-pk_console_sync_resolve (PkClient *client, PkFilterEnum filter, gchar **packages, GError **error)
-{
- PkConsoleSyncHelper *helper;
- PkResults *results;
-
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
-
- /* create temp object */
- helper = g_new0 (PkConsoleSyncHelper, 1);
- helper->loop = g_main_loop_new (NULL, FALSE);
- helper->error = error;
-
- /* run async method */
- pk_client_resolve_async (client, filter, packages, cancellable, NULL, NULL,
- (GAsyncReadyCallback) pk_console_sync_resolve_cb, helper);
- g_main_loop_run (helper->loop);
-
- results = helper->results;
-
- /* free temp object */
- g_main_loop_unref (helper->loop);
- g_free (helper);
-
- return results;
-}
-
-/**
- * pk_console_perhaps_resolve_package:
- **/
-static gchar *
-pk_console_perhaps_resolve_package (PkBitfield filter, const gchar *package, GError **error)
-{
- gchar *package_id = NULL;
- gboolean valid;
- gchar **tmp;
- PkResults *results;
- GPtrArray *array = NULL;
- guint i;
- gchar *printable;
- const PkResultItemPackage *item;
-
- /* have we passed a complete package_id? */
- valid = pk_package_id_check (package);
- if (valid)
- return g_strdup (package);
-
- /* split */
- tmp = g_strsplit (package, ",", -1);
-
- /* get the list of possibles */
- results = pk_console_sync_resolve (PK_CLIENT(task), filter, tmp, error);
- if (results == NULL)
- goto out;
-
- /* get the packages returned */
- array = pk_results_get_package_array (results);
- if (array == NULL) {
- *error = g_error_new (1, 0, "did not get package struct for %s", package);
- goto out;
- }
-
- /* nothing found */
- if (array->len == 0) {
- *error = g_error_new (1, 0, "could not find %s", package);
- goto out;
- }
-
- /* just one thing found */
- if (array->len == 1) {
- item = g_ptr_array_index (array, 0);
- package_id = g_strdup (item->package_id);
- goto out;
- }
-
- /* TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages */
- g_print ("%s\n", _("More than one package matches:"));
- for (i=0; i<array->len; i++) {
- item = g_ptr_array_index (array, i);
- printable = pk_package_id_to_printable (item->package_id);
- g_print ("%i. %s\n", i+1, printable);
- g_free (printable);
- }
-
- /* TRANSLATORS: This finds out which package in the list to use */
- i = pk_console_get_number (_("Please choose the correct package: "), array->len);
- item = g_ptr_array_index (array, i-1);
- package_id = g_strdup (item->package_id);
-out:
- if (results != NULL)
- g_object_unref (results);
- if (array != NULL)
- g_ptr_array_unref (array);
- g_strfreev (tmp);
- return package_id;
-}
-
-/**
- * pk_console_perhaps_resolve:
- **/
-static gchar **
-pk_console_perhaps_resolve (PkBitfield filter, gchar **packages, GError **error)
-{
- gchar **package_ids;
- guint i;
- guint len;
-
- /* get length */
- len = g_strv_length (packages);
- egg_debug ("resolving %i packages", len);
-
- /* create output array*/
- package_ids = g_new0 (gchar *, len+1);
-
- /* resolve each package */
- for (i=0; i<len; i++) {
- package_ids[i] = pk_console_perhaps_resolve_package (filter, packages[i], error);
- if (package_ids[i] == NULL) {
- /* destroy state */
- g_strfreev (package_ids);
- package_ids = NULL;
- break;
- }
- }
- return package_ids;
-}
-
-
/**
* pk_console_progress_cb:
**/
@@ -728,7 +565,7 @@ pk_console_install_packages (gchar **packages, GError **error)
gchar **package_ids;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find the available package: %s"), error_local->message);
@@ -756,7 +593,7 @@ pk_console_remove_packages (gchar **packages, GError **error)
gchar **package_ids;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find the installed package: %s"), error_local->message);
@@ -784,7 +621,7 @@ pk_console_download_packages (gchar **packages, const gchar *directory, GError *
gchar **package_ids;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
@@ -812,7 +649,7 @@ pk_console_update_packages (gchar **packages, GError **error)
gchar **package_ids;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find the package: %s"), error_local->message);
@@ -840,7 +677,7 @@ pk_console_get_requires (PkBitfield filters, gchar **packages, GError **error)
gchar **package_ids = NULL;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
@@ -868,7 +705,7 @@ pk_console_get_depends (PkBitfield filters, gchar **packages, GError **error)
gchar **package_ids = NULL;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
@@ -896,7 +733,7 @@ pk_console_get_details (gchar **packages, GError **error)
gchar **package_ids = NULL;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: There was an error getting the details about the package. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
@@ -924,7 +761,7 @@ pk_console_get_files (gchar **packages, GError **error)
gchar **package_ids = NULL;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NONE), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
@@ -952,7 +789,7 @@ pk_console_get_update_detail (gchar **packages, GError **error)
gchar **package_ids = NULL;
GError *error_local = NULL;
- package_ids = pk_console_perhaps_resolve (pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
+ package_ids = pk_console_resolve_packages (PK_CLIENT(task), pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages, &error_local);
if (package_ids == NULL) {
/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
*error = g_error_new (1, 0, _("This tool could not find all the packages: %s"), error_local->message);
@@ -985,10 +822,10 @@ pk_connection_changed_cb (PkControl *control_, gboolean connected, gpointer data
}
/**
- * pk_console_sigint_handler:
+ * pk_console_sigint_cb:
**/
static void
-pk_console_sigint_handler (int sig)
+pk_console_sigint_cb (int sig)
{
egg_debug ("Handling SIGINT");
@@ -1129,7 +966,7 @@ main (int argc, char *argv[])
g_type_init ();
/* do stuff on ctrl-c */
- signal (SIGINT, pk_console_sigint_handler);
+ signal (SIGINT, pk_console_sigint_cb);
/* check if we are on console */
if (isatty (fileno (stdout)) == 1)
diff --git a/client/pk-console.c b/client/pk-console.c
index 9a1bfaa..282a50b 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -38,7 +38,6 @@
#include "egg-debug.h"
#include "egg-string.h"
-#include "pk-text.h"
#include "pk-tools-common.h"
#define PROGRESS_BAR_SIZE 15
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index c6a5760..6be3f8d 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
* Copyright (C) 2008 Shishir Goel <crazyontheedge at gmail.com>
*
* Licensed under the GNU General Public License Version 2
@@ -26,7 +26,6 @@
#include <signal.h>
#include <stdlib.h>
#include <locale.h>
-#include <glib.h>
#include <glib/gi18n.h>
#include <glib/gstdio.h>
#include <packagekit-glib/packagekit.h>
@@ -34,7 +33,6 @@
#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 c7bd684..3d9a0e2 100644
--- a/client/pk-monitor.c
+++ b/client/pk-monitor.c
@@ -32,7 +32,7 @@
#include "egg-debug.h"
-#include "pk-text.h"
+#include "pk-tools-common.h"
static PkControl *control = NULL;
static gboolean verbose = FALSE;
diff --git a/client/pk-task-text.c b/client/pk-task-text.c
index 3ec7480..e2985ba 100644
--- a/client/pk-task-text.c
+++ b/client/pk-task-text.c
@@ -27,7 +27,7 @@
#include "egg-debug.h"
#include "pk-task-text.h"
-#include "pk-text.h"
+#include "pk-console-shared.h"
static void pk_task_text_finalize (GObject *object);
diff --git a/client/pk-text.c b/client/pk-text.c
deleted file mode 100644
index 27d5b85..0000000
--- a/client/pk-text.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* -*- 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';
- gboolean ret = FALSE;
-
- /* 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) fgetc (stdin);
-
- /* positive */
- if (answer == 'y' || answer == 'Y') {
- ret = TRUE;
- break;
- }
- /* negative */
- if (answer == 'n' || answer == 'N')
- break;
-
- /* default choice */
- if (answer == '\n' && defaultyes) {
- ret = TRUE;
- break;
- }
- if (answer == '\n' && !defaultyes)
- break;
- } while (TRUE);
-
- /* remove the trailing \n */
- answer = (gchar) fgetc (stdin);
- if (answer != '\n')
- ungetc (answer, stdin);
-
- return ret;
-}
-
diff --git a/client/pk-text.h b/client/pk-text.h
deleted file mode 100644
index 75899a6..0000000
--- a/client/pk-text.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- 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 915dc18..b021d27 100644
--- a/client/pk-tools-common.c
+++ b/client/pk-tools-common.c
@@ -28,7 +28,76 @@
#include <egg-debug.h>
#include "pk-tools-common.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';
+ gboolean ret = FALSE;
+
+ /* 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) fgetc (stdin);
+
+ /* positive */
+ if (answer == 'y' || answer == 'Y') {
+ ret = TRUE;
+ break;
+ }
+ /* negative */
+ if (answer == 'n' || answer == 'N')
+ break;
+
+ /* default choice */
+ if (answer == '\n' && defaultyes) {
+ ret = TRUE;
+ break;
+ }
+ if (answer == '\n' && !defaultyes)
+ break;
+ } while (TRUE);
+
+ /* remove the trailing \n */
+ answer = (gchar) fgetc (stdin);
+ if (answer != '\n')
+ ungetc (answer, stdin);
+
+ return ret;
+}
/**
* pk_console_resolve:
diff --git a/client/pk-tools-common.h b/client/pk-tools-common.h
index 93c9ecd..6846629 100644
--- a/client/pk-tools-common.h
+++ b/client/pk-tools-common.h
@@ -22,9 +22,13 @@
#ifndef __PK_TOOLS_COMMON_H
#define __PK_TOOLS_COMMON_H
-#include <glib/gi18n.h>
+#include <glib.h>
#include <packagekit-glib/packagekit.h>
+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 5234d93235292c32390a70657f342493e554614b
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:14:07 2009 +0100
glib2: Merge all the changes to PkServicePack so it actually works
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
index 52203f2..76ec568 100644
--- a/lib/packagekit-glib2/pk-service-pack.c
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -40,6 +40,7 @@
#include <packagekit-glib2/pk-enum.h>
#include <packagekit-glib2/pk-results.h>
#include <packagekit-glib2/pk-client.h>
+#include <packagekit-glib2/pk-package-id.h>
#include <packagekit-glib2/pk-package-ids.h>
#include "egg-debug.h"
@@ -419,66 +420,12 @@ pk_service_pack_set_temp_directory (PkServicePack *pack, const gchar *directory)
return TRUE;
}
-#if 0
-/**
- * pk_service_pack_download_package_ids:
- **/
-static gboolean
-pk_service_pack_download_package_ids (PkServicePack *pack, gchar **package_ids, GError **error)
-{
- gboolean ret;
- GError *error_local = NULL;
-
- g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
- g_return_val_if_fail (package_ids != NULL, FALSE);
- g_return_val_if_fail (pack->priv->directory != NULL, FALSE);
-
- egg_debug ("download+ %s", package_ids[0]);
- ret = pk_client_download_packages (pack->priv->client, package_ids, pack->priv->directory, &error_local);
- if (!ret) {
- *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_DOWNLOAD,
- "failed to download: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
-out:
- return ret;
-}
-#endif
-
-#if 0
-/**
- * pk_service_pack_exclude_packages:
- **/
-static gboolean
-pk_service_pack_exclude_packages (PkServicePack *pack, gchar **package_ids)
-{
- guint i;
- guint length;
- gboolean found;
-
- g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
- g_return_val_if_fail (package_ids != NULL, FALSE);
-
- /* do not just download everything, uselessly */
- length = pk_package_list_get_size (package_ids);
- for (i=0; i<length; i++) {
- obj = pk_package_list_get_obj (package_ids, i);
- /* will just ignore if the obj is not there */
- found = pk_obj_list_remove (PK_OBJ_LIST(list), obj);
- if (found)
- egg_debug ("removed %s", obj->id->name);
- }
- return TRUE;
-}
-#endif
-
#ifdef HAVE_ARCHIVE_H
/**
* pk_service_pack_create_metadata_file:
**/
static gboolean
-pk_service_pack_create_metadata_file (PkServicePackState *state)
+pk_service_pack_create_metadata_file (PkServicePackState *state, const gchar *filename)
{
gboolean ret = FALSE;
gchar *distro_id = NULL;
@@ -517,13 +464,12 @@ pk_service_pack_create_metadata_file (PkServicePackState *state)
}
/* save contents */
- ret = g_file_set_contents (state->filename, data, -1, &error);
+ ret = g_file_set_contents (filename, data, -1, &error);
if (!ret) {
egg_warning ("failed to save file: %s", error->message);
g_error_free (error);
goto out;
}
-
out:
g_key_file_free (file);
g_free (data);
@@ -620,7 +566,7 @@ pk_service_pack_create_from_files (PkServicePackState *state, gchar **file_array
/* create a file with metadata in it */
filename = g_build_filename (g_get_tmp_dir (), "metadata.conf", NULL);
- ret = pk_service_pack_create_metadata_file (state);
+ ret = pk_service_pack_create_metadata_file (state, filename);
if (!ret) {
*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
"failed to generate metadata file %s", filename);
@@ -672,123 +618,6 @@ pk_service_pack_create_from_files (PkServicePackState *state, GPtrArray *file_ar
}
#endif
-#if 0
-/**
- * pk_service_pack_scan_files_in_directory:
- **/
-static GPtrArray *
-pk_service_pack_scan_files_in_directory (PkServicePack *pack)
-{
- gchar *src;
- GPtrArray *file_array = NULL;
- GDir *dir;
- const gchar *filename;
-
- g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), NULL);
- g_return_val_if_fail (pack->priv->directory != NULL, NULL);
-
- /* try and open the directory */
- dir = g_dir_open (pack->priv->directory, 0, NULL);
- if (dir == NULL) {
- egg_warning ("failed to get directory for %s", pack->priv->directory);
- goto out;
- }
-
- /* add each file to an array */
- file_array = g_ptr_array_new ();
- while ((filename = g_dir_read_name (dir))) {
- src = g_build_filename (pack->priv->directory, filename, NULL);
- g_ptr_array_add (file_array, src);
- }
- g_dir_close (dir);
-out:
- return file_array;
-}
-#endif
-
-#if 0
-/**
- * pk_service_pack_package_cb:
- **/
-static void
-pk_service_pack_package_cb (PkClient *client, const PkPackageObj *obj, PkServicePack *pack)
-{
- g_return_if_fail (PK_IS_SERVICE_PACK (pack));
-
- /* only shown downloading */
- if (obj->info != PK_INFO_ENUM_DOWNLOADING)
- return;
-}
-
-/**
- * pk_service_pack_create_for_package_ids_internal:
- **/
-static gboolean
-pk_service_pack_create_for_package_ids_internal (PkServicePack *pack, gchar **package_ids, GError **error)
-{
- gchar **package_ids_deps = NULL;
- PkPackageList *list = NULL;
- guint length;
- GPtrArray *file_array = NULL;
- GError *error_local = NULL;
- gboolean ret = FALSE;
-
- g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
- g_return_val_if_fail (package_ids != NULL, FALSE);
- g_return_val_if_fail (error != NULL, FALSE);
- g_return_val_if_fail (state->filename != NULL, FALSE);
- g_return_val_if_fail (pack->priv->directory != NULL, FALSE);
-
- /* remove some deps */
- pk_package_list_set_fuzzy_arch (list, TRUE);
- pk_service_pack_exclude_packages (pack, list);
-
- /* get the deps */
- length = pk_package_list_get_size (list);
- if (length != 0) {
- /* download additional package_ids */
- package_ids_deps = pk_package_list_to_strv (list);
- pk_service_pack_status_changed (pack, PK_SERVICE_PACK_STATUS_DOWNLOAD_DEPENDENCIES);
- ret = pk_service_pack_download_package_ids (pack, package_ids_deps, &error_local);
- g_strfreev (package_ids_deps);
-
- /* failed to get deps */
- if (!ret) {
- *error = g_error_new (PK_SERVICE_PACK_ERROR, error_local->code,
- "failed to download deps of package: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
- }
-
- /* find packages that were downloaded */
- file_array = pk_service_pack_scan_files_in_directory (pack);
- if (file_array == NULL) {
- *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
- "failed to scan directory: %s", pack->priv->directory);
- goto out;
- }
-
- /* generate pack file */
- ret = pk_service_pack_create_from_files (pack, file_array, &error_local);
- if (!ret) {
- *error = g_error_new (PK_SERVICE_PACK_ERROR, error_local->code,
- "failed to create archive: %s", error_local->message);
- g_error_free (error_local);
- goto out;
- }
-
-out:
- if (list != NULL)
- g_object_unref (list);
- if (file_array != NULL) {
- g_ptr_array_foreach (file_array, (GFunc) g_free, NULL);
- g_ptr_array_free (file_array, TRUE);
- }
- return ret;
-}
-#endif
-
/**
* pk_service_pack_generic_state_finish:
**/
@@ -821,20 +650,48 @@ pk_service_pack_generic_state_finish (PkServicePackState *state, const GError *e
}
/**
+ * pk_service_pack_get_files_from_array:
+ **/
+static gchar **
+pk_service_pack_get_files_from_array (const GPtrArray *array)
+{
+ gchar **files = NULL;
+ guint i;
+ const PkResultItemFiles *item;
+
+ /* internal error */
+ if (array == NULL) {
+ egg_warning ("internal error");
+ goto out;
+ }
+
+ /* get GStr of all the files */
+ files = g_new0 (gchar *, array->len + 1);
+ for (i=0; i<array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ /* assume only one file per package */
+ files[i] = g_strdup (item->files[0]);
+ }
+out:
+ return files;
+}
+
+/**
* pk_service_pack_download_ready_cb:
**/
static void
pk_service_pack_download_ready_cb (GObject *source_object, GAsyncResult *res, PkServicePackState *state)
{
- PkServicePack *pack = PK_SERVICE_PACK (source_object);
+ PkClient *client = PK_CLIENT (source_object);
GError *error = NULL;
PkResults *results;
PkExitEnum exit_enum;
gboolean ret;
gchar **files = NULL;
+ GPtrArray *array = NULL;
/* get the results */
- results = pk_client_generic_finish (PK_CLIENT(pack), res, &error);
+ results = pk_client_generic_finish (client, res, &error);
if (results == NULL) {
pk_service_pack_generic_state_finish (state, error);
g_error_free (error);
@@ -850,8 +707,11 @@ pk_service_pack_download_ready_cb (GObject *source_object, GAsyncResult *res, Pk
goto out;
}
+ /* get the files data */
+ array = pk_results_get_files_array (results);
+
/* now create pack */
- egg_error ("todo");
+ files = pk_service_pack_get_files_from_array (array);
ret = pk_service_pack_create_from_files (state, files, &error);
if (!ret) {
pk_service_pack_generic_state_finish (state, error);
@@ -866,29 +726,49 @@ pk_service_pack_download_ready_cb (GObject *source_object, GAsyncResult *res, Pk
pk_service_pack_generic_state_finish (state, error);
out:
g_strfreev (files);
+ if (array != NULL)
+ g_ptr_array_unref (array);
if (results != NULL)
g_object_unref (results);
return;
}
/**
+ * pk_service_pack_in_excludes_list:
+ **/
+static gboolean
+pk_service_pack_in_excludes_list (PkServicePackState *state, const gchar *package_id)
+{
+ guint i;
+ if (state->package_ids_exclude == NULL)
+ goto out;
+ for (i=0; state->package_ids_exclude[i] != NULL; i++) {
+ if (pk_package_id_equal_fuzzy_arch (state->package_ids_exclude[i], package_id))
+ return TRUE;
+ }
+out:
+ return FALSE;
+}
+
+/**
* pk_service_pack_get_depends_ready_cb:
**/
static void
pk_service_pack_get_depends_ready_cb (GObject *source_object, GAsyncResult *res, PkServicePackState *state)
{
- PkServicePack *pack = PK_SERVICE_PACK (source_object);
+ PkClient *client = PK_CLIENT (source_object);
GError *error = NULL;
PkResults *results;
PkExitEnum exit_enum;
GPtrArray *array = NULL;
guint i;
+ guint j = 0;
const PkResultItemPackage *package;
gchar **package_ids = NULL;
gchar **package_ids_to_download = NULL;
/* get the results */
- results = pk_client_generic_finish (PK_CLIENT(pack), res, &error);
+ results = pk_client_generic_finish (client, res, &error);
if (results == NULL) {
pk_service_pack_generic_state_finish (state, error);
g_error_free (error);
@@ -909,12 +789,14 @@ pk_service_pack_get_depends_ready_cb (GObject *source_object, GAsyncResult *res,
package_ids = g_new0 (gchar *, array->len + 1);
for (i=0; i<array->len; i++) {
package = g_ptr_array_index (array, i);
- package_ids[i] = g_strdup (package->package_id);
+ /* only add if the ID is not in the excludes list */
+ if (!pk_service_pack_in_excludes_list (state, package->package_id))
+ package_ids[j++] = g_strdup (package->package_id);
}
package_ids_to_download = pk_package_ids_add_ids (state->package_ids, package_ids);
/* now download */
- pk_client_download_packages_async (PK_CLIENT(state->pack), package_ids_to_download, pack->priv->directory,
+ pk_client_download_packages_async (state->pack->priv->client, package_ids_to_download, state->pack->priv->directory,
state->cancellable, state->progress_callback, state->progress_user_data,
(GAsyncReadyCallback) pk_service_pack_download_ready_cb, state);
out:
@@ -932,7 +814,7 @@ out:
* @pack: a valid #PkServicePack instance
* @filename: the filename of the service pack
* @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
- * @package_ids_exclude: An array of packages to exclude
+ * @package_ids_exclude: An array of packages to exclude, or %NULL
* @cancellable: a #GCancellable or %NULL
* @callback: the function to run on completion
* @progress_callback: the function to run when the progress changes
@@ -970,7 +852,7 @@ pk_service_pack_create_for_package_ids_async (PkServicePack *pack, const gchar *
g_object_add_weak_pointer (G_OBJECT (state->pack), (gpointer) &state->pack);
/* get deps, TODO: use NEWEST? */
- pk_client_get_depends_async (PK_CLIENT(state->pack), PK_FILTER_ENUM_NONE, state->package_ids, TRUE,
+ pk_client_get_depends_async (pack->priv->client, PK_FILTER_ENUM_NONE, state->package_ids, TRUE,
state->cancellable, state->progress_callback, state->progress_user_data,
(GAsyncReadyCallback) pk_service_pack_get_depends_ready_cb, state);
@@ -983,7 +865,7 @@ pk_service_pack_create_for_package_ids_async (PkServicePack *pack, const gchar *
static void
pk_service_pack_get_updates_ready_cb (GObject *source_object, GAsyncResult *res, PkServicePackState *state)
{
- PkServicePack *pack = PK_SERVICE_PACK (source_object);
+ PkClient *client = PK_CLIENT (source_object);
GError *error = NULL;
PkResults *results;
PkExitEnum exit_enum;
@@ -992,7 +874,7 @@ pk_service_pack_get_updates_ready_cb (GObject *source_object, GAsyncResult *res,
const PkResultItemPackage *package;
/* get the results */
- results = pk_client_generic_finish (PK_CLIENT(pack), res, &error);
+ results = pk_client_generic_finish (client, res, &error);
if (results == NULL) {
pk_service_pack_generic_state_finish (state, error);
g_error_free (error);
@@ -1017,7 +899,7 @@ pk_service_pack_get_updates_ready_cb (GObject *source_object, GAsyncResult *res,
}
/* get deps, TODO: use NEWEST? */
- pk_client_get_depends_async (PK_CLIENT(state->pack), PK_FILTER_ENUM_NONE, state->package_ids, TRUE,
+ pk_client_get_depends_async (state->pack->priv->client, PK_FILTER_ENUM_NONE, state->package_ids, TRUE,
state->cancellable, state->progress_callback, state->progress_user_data,
(GAsyncReadyCallback) pk_service_pack_get_depends_ready_cb, state);
out:
@@ -1032,7 +914,7 @@ out:
* pk_service_pack_create_for_updates_async:
* @pack: a valid #PkServicePack instance
* @filename: the filename of the service pack
- * @package_ids_exclude: An array of packages to exclude
+ * @package_ids_exclude: An array of packages to exclude, or %NULL
* @cancellable: a #GCancellable or %NULL
* @callback: the function to run on completion
* @progress_callback: the function to run when the progress changes
@@ -1069,7 +951,7 @@ pk_service_pack_create_for_updates_async (PkServicePack *pack, const gchar *file
g_object_add_weak_pointer (G_OBJECT (state->pack), (gpointer) &state->pack);
/* get deps, TODO: use NEWEST? */
- pk_client_get_updates_async (PK_CLIENT(state->pack), PK_FILTER_ENUM_NONE,
+ pk_client_get_updates_async (pack->priv->client, PK_FILTER_ENUM_NONE,
state->cancellable, state->progress_callback, state->progress_user_data,
(GAsyncReadyCallback) pk_service_pack_get_updates_ready_cb, state);
commit e0772de8c2dff0c13bc1df0543bb340d9dcf9d79
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 19:12:42 2009 +0100
glib2: Only print progress if it's different
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 7cb7594..38131c8 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -105,43 +105,126 @@ pk_progress_get_property (GObject *object, guint prop_id, GValue *value, GParamS
}
/**
+ * pk_progress_set_package_id:
+ **/
+static void
+pk_progress_set_package_id (PkProgress *progress, const gchar *package_id)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (g_strcmp0 (priv->package_id, package_id) == 0)
+ return;
+ g_free (priv->package_id);
+ priv->package_id = g_strdup (package_id);
+ egg_debug ("package_id now %s", package_id);
+}
+
+/**
+ * pk_progress_set_percentage:
+ **/
+static void
+pk_progress_set_percentage (PkProgress *progress, gint percentage)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (priv->percentage == percentage)
+ return;
+ priv->percentage = percentage;
+ egg_debug ("percentage now %i", percentage);
+}
+
+/**
+ * pk_progress_set_subpercentage:
+ **/
+static void
+pk_progress_set_subpercentage (PkProgress *progress, gint subpercentage)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (priv->subpercentage == subpercentage)
+ return;
+ priv->subpercentage = subpercentage;
+ egg_debug ("subpercentage now %i", subpercentage);
+}
+
+/**
+ * pk_progress_set_status:
+ **/
+static void
+pk_progress_set_status (PkProgress *progress, PkStatusEnum status)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (priv->status == status)
+ return;
+ priv->status = status;
+ egg_debug ("status now %s", pk_status_enum_to_text (status));
+}
+
+/**
+ * pk_progress_set_role:
+ **/
+static void
+pk_progress_set_role (PkProgress *progress, PkRoleEnum role)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (priv->role == role)
+ return;
+ priv->role = role;
+ egg_debug ("role now %s", pk_role_enum_to_text (role));
+}
+
+/**
+ * pk_progress_set_allow_cancel:
+ **/
+static void
+pk_progress_set_allow_cancel (PkProgress *progress, gboolean allow_cancel)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (priv->allow_cancel == allow_cancel)
+ return;
+ priv->allow_cancel = allow_cancel;
+ egg_debug ("allow-cancel now %i", allow_cancel);
+}
+
+/**
+ * pk_progress_set_caller_active:
+ **/
+static void
+pk_progress_set_caller_active (PkProgress *progress, gboolean caller_active)
+{
+ PkProgressPrivate *priv = progress->priv;
+ if (priv->caller_active == caller_active)
+ return;
+ priv->caller_active = caller_active;
+ egg_debug ("caller-active now %i", caller_active);
+}
+
+/**
* pk_progress_set_property:
**/
static void
pk_progress_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
PkProgress *progress = PK_PROGRESS (object);
- PkProgressPrivate *priv = progress->priv;
switch (prop_id) {
case PROP_PACKAGE_ID:
- g_free (priv->package_id);
- priv->package_id = g_strdup (g_value_get_string (value));
- egg_debug ("package_id now %s", priv->package_id);
+ pk_progress_set_package_id (progress, g_value_get_string (value));
break;
case PROP_PERCENTAGE:
- priv->percentage = g_value_get_int (value);
- egg_debug ("percentage now %i", priv->percentage);
+ pk_progress_set_percentage (progress, g_value_get_int (value));
break;
case PROP_SUBPERCENTAGE:
- priv->subpercentage = g_value_get_int (value);
- egg_debug ("subpercentage now %i", priv->subpercentage);
+ pk_progress_set_subpercentage (progress, g_value_get_int (value));
break;
case PROP_ALLOW_CANCEL:
- priv->allow_cancel = g_value_get_boolean (value);
- egg_debug ("allow-cancel now %i", priv->allow_cancel);
+ pk_progress_set_allow_cancel (progress, g_value_get_boolean (value));
break;
case PROP_STATUS:
- priv->status = g_value_get_uint (value);
- egg_debug ("status now %s", pk_status_enum_to_text (priv->status));
+ pk_progress_set_status (progress, g_value_get_uint (value));
break;
case PROP_ROLE:
- priv->role = g_value_get_uint (value);
- egg_debug ("role now %s", pk_role_enum_to_text (priv->role));
+ pk_progress_set_role (progress, g_value_get_uint (value));
break;
case PROP_CALLER_ACTIVE:
- priv->caller_active = g_value_get_boolean (value);
- egg_debug ("caller-active now %i", priv->caller_active);
+ pk_progress_set_caller_active (progress, g_value_get_boolean (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
commit 3f63113b21ba28de9899fc270002e2b18a701d4f
Author: jassy <jassy at fedoraproject.org>
Date: Mon Sep 7 17:12:02 2009 +0000
Sending translation for Punjabi
diff --git a/po/pa.po b/po/pa.po
index 673f1c8..4606114 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -8,742 +8,852 @@ msgid ""
msgstr ""
"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-31 07:50+0530\n"
-"Last-Translator: A S Alam <aalam at users.sf.net>\n"
-"Language-Team: Punjabi/Panjabi <punjabi-users at lists.sf.net>\n"
+"POT-Creation-Date: 2009-09-07 14:32+0000\n"
+"PO-Revision-Date: 2009-09-07 22:39+0530\n"
+"Last-Translator: \n"
+"Language-Team: Punjabi/Panjabi <kde-i18n-doc at kde.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 0.3\n"
+"X-Generator: Lokalize 1.0\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 ../client/pk-console-test.c:147
msgid "Transaction"
msgstr "à¨à¨°à¨¾à¨à¨¸à©à¨à¨¸à¨¼à¨¨"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:237
+#: ../client/pk-console.c:240 ../client/pk-console-test.c:149
msgid "System time"
msgstr "ਸਿਸà¨à¨® ਸਮਾà¨"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:239
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
msgid "Succeeded"
msgstr "ਸਫ਼ਲ"
-#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
msgid "True"
msgstr "ਸਹà©à¨"
-#: ../client/pk-console.c:239 ../client/pk-console.c:406
+#: ../client/pk-console.c:242 ../client/pk-console-test.c:151
msgid "False"
msgstr "à¨à¨²à¨¤"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
#. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:241 ../src/pk-polkit-action-lookup.c:327
+#: ../client/pk-console.c:244 ../client/pk-console-test.c:153
+#: ../src/pk-polkit-action-lookup.c:327
msgid "Role"
msgstr "ਰà©à¨²"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
msgid "Duration"
msgstr "à¨
ੰਤਰਾਲ"
-#: ../client/pk-console.c:246
+#: ../client/pk-console.c:249 ../client/pk-console-test.c:158
msgid "(seconds)"
msgstr "(ਸà¨à¨¿à©°à¨)"
#. TRANSLATORS: this is The command line used to do the action
#. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:250 ../src/pk-polkit-action-lookup.c:341
+#: ../client/pk-console.c:253 ../client/pk-console-test.c:162
+#: ../src/pk-polkit-action-lookup.c:341
msgid "Command line"
msgstr "à¨à¨®à¨¾à¨à¨¡ ਲਾà¨à¨¨"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:252
+#: ../client/pk-console.c:255 ../client/pk-console-test.c:164
msgid "User ID"
msgstr "ਯà©à¨à¨¼à¨° ID"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:259
+#: ../client/pk-console.c:262 ../client/pk-console-test.c:171
msgid "Username"
msgstr "ਯà©à¨à¨¼à¨° ਨਾà¨"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:263
+#: ../client/pk-console.c:266 ../client/pk-console-test.c:175
msgid "Real name"
msgstr "à¨
ਸਲ੠ਨਾà¨"
-#: ../client/pk-console.c:271
+#: ../client/pk-console.c:274 ../client/pk-console-test.c:183
msgid "Affected packages:"
msgstr "ਪà©à¨°à¨à¨¾à¨µà¨¿à¨¤ ਪà©à¨à©à¨:"
-#: ../client/pk-console.c:273
+#: ../client/pk-console.c:276 ../client/pk-console-test.c:185
msgid "Affected packages: None"
msgstr "ਪà©à¨°à¨à¨¾à¨µà¨¿à¨¤ ਪà©à¨à©à¨: à¨à©à¨ ਨਹà©à¨"
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:337 ../client/pk-task-text.c:220
+msgid "The following packages have to be removed:"
+msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° ਹà¨à¨¾à¨à¨ à¨à¨¾à¨µà©à¨à¨¾:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:340 ../client/pk-task-text.c:225
+msgid "The following packages have to be installed:"
+msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° à¨à©°à¨¸à¨à¨¾à¨² à¨à©à¨¤à¨¾ à¨à¨¾à¨µà©à¨à¨¾:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:343 ../client/pk-task-text.c:230
+msgid "The following packages have to be updated:"
+msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° à¨
ੱਪਡà©à¨ à¨à©à¨¤à¨¾ à¨à¨¾à¨µà©à¨à¨¾:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:346 ../client/pk-task-text.c:235
+msgid "The following packages have to be reinstalled:"
+msgstr "à¨
ੱà¨à© ਦਿੱਤ੠ਪà©à¨à©à¨à¨¾à¨ ਨà©à©° ਮà©à©-à¨à©°à¨¸à¨à¨¾à¨² à¨à¨¾à¨µà©à¨à¨¾:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:349 ../client/pk-task-text.c:240
+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 ../client/pk-console-test.c:205
msgid "Distribution"
msgstr "ਡਿਸà¨à¨°à©à¨¬à¨¿à¨à¨¸à¨¼à¨¨"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:365 ../client/pk-console-test.c:207
msgid "Type"
msgstr "à¨à¨¾à¨à¨ª"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:367 ../client/pk-console.c:390
+#: ../client/pk-console-test.c:209 ../client/pk-console-test.c:230
msgid "Summary"
msgstr "ਸੰà¨à©à¨ª"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:379 ../client/pk-console-test.c:219
msgid "Category"
msgstr "à¨à©à¨à¨¾à¨à¨°à©"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:381 ../client/pk-console-test.c:221
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:384 ../client/pk-console-test.c:224
msgid "Parent"
msgstr "ਮà©à¨¢à©"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:387 ../client/pk-console-test.c:227
msgid "Name"
msgstr "ਨਾà¨"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:393 ../client/pk-console-test.c:233
msgid "Icon"
msgstr "à¨à¨à¨à¨¾à¨¨"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:408 ../client/pk-console-test.c:247
msgid "Details about the update:"
msgstr "à¨
ੱਪਡà©à¨ ਬਾਰ੠ਵà©à¨°à¨µà¨¾:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:410 ../client/pk-console-test.c:253
+#: ../client/pk-task-text.c:101 ../client/pk-task-text.c:153
+#: ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
msgstr[0] "ਪà©à¨à©à¨"
msgstr[1] "ਪà©à¨à©à¨"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:413 ../client/pk-console-test.c:256
msgid "Updates"
msgstr "à¨
ੱਪਡà©à¨"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:417 ../client/pk-console-test.c:260
msgid "Obsoletes"
msgstr "ਬਰਤਰਫ਼"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:421 ../client/pk-console-test.c:264
+#: ../client/pk-task-text.c:154
msgid "Vendor"
msgstr "ਵà©à¨à¨¡à¨°"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:425 ../client/pk-console-test.c:268
msgid "Bugzilla"
msgstr "ਬੱà¨à¨à¨¼à©à¨²à¨¾"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:364
+#: ../client/pk-console.c:429 ../client/pk-console-test.c:272
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:368
+#: ../client/pk-console.c:433 ../client/pk-console-test.c:276
msgid "Restart"
msgstr "ਮà©à©-à¨à¨¾à¨²à©"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:372
+#: ../client/pk-console.c:437 ../client/pk-console-test.c:280
msgid "Update text"
msgstr "à¨
ੱਪਡà©à¨ à¨à©à¨à¨¸à¨"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:376
+#: ../client/pk-console.c:441 ../client/pk-console-test.c:284
msgid "Changes"
msgstr "ਬਦਲਾà¨
"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:445 ../client/pk-console-test.c:288
msgid "State"
msgstr "ਹਾਲਤ"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:450 ../client/pk-console-test.c:293
msgid "Issued"
msgstr "à¨à¨¾à¨°à© à¨à©à¨¤à¨¾"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:390
+#: ../client/pk-console.c:455 ../client/pk-console-test.c:298
msgid "Updated"
msgstr "à¨
ੱਪਡà©à¨ à¨à©à¨¤à©"
-#: ../client/pk-console.c:477 ../client/pk-console.c:479
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:475 ../client/pk-console-test.c:316
+msgid "Enabled"
+msgstr "ਯà©à¨"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:478 ../client/pk-console-test.c:319
+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 ../client/pk-console-test.c:341
msgid "System restart required by:"
msgstr "ਸਿਸà¨à¨® ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à© ਹà©:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:524
+#: ../client/pk-console.c:602 ../client/pk-console-test.c:344
msgid "Session restart required:"
msgstr "ਸਿਸà¨à¨® ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à©:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:527
-#, fuzzy
+#: ../client/pk-console.c:605 ../client/pk-console-test.c:347
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 ../client/pk-console-test.c:350
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 ../client/pk-console-test.c:353
msgid "Application restart required by:"
msgstr "à¨à¨ªà¨²à©à¨à©à¨¸à¨¼à¨¨ ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à¨¨ ਦ੠ਲà©à© ਹà©:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:588
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
msgid "Please restart the computer to complete the update."
msgstr "à¨
ੱਪਡà©à¨ ਨà©à©° ਪà©à¨°à¨¾ à¨à¨°à¨¨ ਵਾਸਤ੠à¨à©°à¨ªà¨¿à¨à¨à¨° ਮà©à©-à¨à¨¾à¨²à© à¨à¨°à© à¨à©à¥¤"
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:591
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
msgid "Please logout and login to complete the update."
msgstr "à¨
ੱਪਡà©à¨ ਨà©à©° ਪà©à¨°à¨¾ à¨à¨°à¨¨ ਵਾਸਤ੠ਲਾà¨à¨à¨à¨ à¨à¨°à¨à© ਲਾà¨à¨à¨¨ à¨à¨°à© à¨à©à¥¤"
#. 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 ../client/pk-console-test.c:710
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 ../client/pk-console-test.c:713
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
+#. ask the user
+#: ../client/pk-console.c:876 ../client/pk-console.c:948
+#: ../client/pk-console.c:1266 ../client/pk-task-text.c:299
+msgid "Proceed with changes?"
+msgstr "ਤਬਦà©à¨²à©à¨à¨ ਨਾਲ à¨à¨¾à¨°à© à¨à¨°à©?"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c: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 ../client/pk-console-test.c:370
msgid "Package description"
msgstr "ਪà©à¨à©à¨ ਵà©à¨°à¨µà¨¾"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1732 ../client/pk-console-test.c:388
msgid "Message:"
msgstr "ਸà©à¨¨à©à¨¹à¨¾:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1760 ../client/pk-console-test.c:407
msgid "Package files"
msgstr "ਪà©à¨à©à¨ ਫਾà¨à¨²à¨¾à¨"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1768 ../client/pk-console-test.c:402
msgid "No files"
msgstr "à¨à©à¨ ਫਾà¨à¨² ਨਹà©à¨"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c: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
+#. ask the user
+#: ../client/pk-console.c:1801 ../client/pk-task-text.c:113
msgid "Do you accept this signature?"
msgstr "à¨à© ਤà©à¨¸à©à¨ à¨à¨¹ ਦਸਤà¨à¨¤ ਮਨà¨à¨¼à©à¨° à¨à¨°à¨¦à© ਹà©?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1805 ../client/pk-task-text.c:117
msgid "The signature was not accepted."
msgstr "ਦਸਤà¨à¨¤ ਮਨà¨à¨¼à©à¨° ਨਹà©à¨ ਸਨ।"
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c: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 ../client/pk-console-test.c:982
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 ../client/pk-console-test.c:1016
msgid "PackageKit Console Interface"
msgstr "ਪà©à¨à©à¨à¨à¨¿à©±à¨ à¨à¨¨à¨¸à©à¨² à¨à©°à¨à¨°à¨«à©à¨¸"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1018
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-monitor.c:128
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1109
+#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
msgid "Show extra debugging information"
msgstr "ਹà©à¨° ਡà©à¨¬à©±à¨ à¨à¨¾à¨£à¨à¨¾à¨°à© ਵà©à¨à©"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1112
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "ਪਰà©à¨à¨°à¨¾à¨® ਵਰà¨à¨¨ ਵà©à¨à© à¨
ਤ੠ਬੰਦ à¨à¨°à©"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1115
msgid "Set the filter, e.g. installed"
msgstr "ਫਿਲà¨à¨° ਸà©à©±à¨ à¨à¨°à©, à¨à¨¿à¨µà©à¨ à¨à¨¿ à¨à©°à¨¸à¨à¨¾à¨²"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1118
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 ../client/pk-console-test.c:1193
msgid "The filter specified was invalid"
msgstr "ਦਿੱਤਾ ਫਿਲà¨à¨° à¨
ਢà©à©±à¨à¨µà¨¾à¨ ਹà©à¥¤"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1212
msgid "A search type is required, e.g. name"
msgstr "à¨à©à¨ à¨à¨¿à¨¸à¨® à¨à¨¾à¨¹à©à¨¦à© ਹà©, à¨à¨¿à¨µà©à¨ ਨਾà¨"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
+#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
+#: ../client/pk-console-test.c:1219 ../client/pk-console-test.c:1231
+#: ../client/pk-console-test.c:1243 ../client/pk-console-test.c:1255
msgid "A search term is required"
msgstr "à¨à©à¨ ਸ਼ਬਦ ਦ੠ਲà©à© ਹà©"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1265
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 ../client/pk-console-test.c:1292
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 ../client/pk-console-test.c:1303
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 ../client/pk-console-test.c:1312
msgid "A destination directory and the package names to download are required"
-msgstr "ਡਾà¨à¨¨à¨²à©à¨¡ à¨à¨°à¨¨ ਵਾਸਤ੠à¨à¨¿à¨à¨¾à¨£à¨¾ ਡਾà¨à¨°à©à¨à¨à¨°à© à¨
ਤ੠ਤਦ ਪà©à¨à©à¨ ਨਾਠਲਾà¨à¨¼à¨®à© ਹà©"
+msgstr "ਡਾà¨à¨¨à¨²à©à¨¡ à¨à¨°à¨¨ ਵਾਸਤ੠à¨à¨¿à¨à¨¾à¨£à¨¾ ਡਾà¨à¨°à©à¨à¨à¨°à© à¨
ਤ੠ਪà©à¨à©à¨ ਨਾਠਲਾà¨à¨¼à¨®à© ਹà©"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:2010
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1319
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 ../client/pk-console-test.c:1328
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 ../client/pk-console-test.c:1339
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 ../client/pk-console-test.c:1360
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
+#: ../client/pk-console-test.c:1371 ../client/pk-console-test.c:1382
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 ../client/pk-console-test.c:1393
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 ../client/pk-console-test.c:1411
msgid "An action, e.g. 'update-system' is required"
msgstr "à¨à¨¾à¨°à¨µà¨¾à¨, à¨à¨¿à¨µà©à¨ 'à¨
ੱਪਡà©à¨-ਸਿਸà¨à¨®' ਲà©à©à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2093
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1418
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 ../client/pk-console-test.c:1425
msgid "Failed to get the time since this action was last completed"
msgstr "à¨à¨¸ à¨à¨¾à¨°à¨µà¨¾à¨ ਦ੠à¨à¨à¨°à© ਵਾਰ ਪà©à¨°à© ਹà©à¨£ ਤà©à¨ ਬਾà¨
ਦ ਸਮਾਠਲà©à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2110 ../client/pk-console.c:2122
-#: ../client/pk-console.c:2131 ../client/pk-console.c:2149
-#: ../client/pk-console.c:2158 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
+#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1435
+#: ../client/pk-console-test.c:1450 ../client/pk-console-test.c:1459
+#: ../client/pk-console-test.c:1479 ../client/pk-console-test.c:1488
+#: ../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 ../client/pk-console-test.c:1468
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 ../client/pk-console-test.c:1548
#, 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
+#. /* TRANSLATORS: User does not have permission to do this */
+#. g_print ("%s\n", _("Incorrect privileges for this operation"));
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1560
msgid "Command failed"
msgstr "à¨à¨®à¨¾à¨à¨¡ ਫà©à¨²à©à¨¹ ਹà©"
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
+msgid "More than one package matches:"
+msgstr "à¨à©±à¨ ਤà©à¨ ਵੱਧ ਰਲਦ੠ਪà©à¨à©à¨ ਲੱà¨à©:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
+msgid "Please choose the correct package: "
+msgstr "ਠà©à¨ ਪà©à¨à©à¨ à¨à©à¨£à© à¨à©:"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:734, c-format
+msgid "This tool could not find the available package: %s"
+msgstr "à¨à¨¹ à¨à©à¨² à¨à¨ªà¨²à©±à¨¬à¨§ ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:762, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr "à¨à¨¹ à¨à©à¨² à¨à©°à¨¸à¨à¨¾à¨² à¨à©à¨¤à© ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818, c-format
+msgid "This tool could not find the package: %s"
+msgstr "à¨à¨¹ à¨à©à¨² ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:874
+#: ../client/pk-console-test.c:902 ../client/pk-console-test.c:930
+#: ../client/pk-console-test.c:958, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr "à¨à¨¹ à¨à©à¨² ਸਠਪà©à¨à©à¨ ਨਹà©à¨ ਲੱਠਸà¨à¨¿à¨: %s"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1271
+msgid "A package name to install is required"
+msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਲਠਪà©à¨à©à¨ ਨਾਠਲਾà¨à¨¼à¨®à© ਹà©"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console-test.c:1280
+msgid "A filename to install is required"
+msgstr "à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਲਠà¨à©±à¨ ਫਾà¨à¨² ਨਾਠਦ੠ਲà©à© ਹà©"
+
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:101
+#: ../client/pk-generate-pack.c:103
msgid "Downloading"
msgstr "ਡਾà¨à¨¨à¨²à©à¨¡ à¨à©à¨¤à¨¾ à¨à¨¾ ਰਿਹਾ ਹà©"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:121
+#: ../client/pk-generate-pack.c:123
msgid "Downloading packages"
msgstr "ਪà©à¨à©à¨ ਡਾà¨à¨¨à¨²à©à¨¡ à¨à©à¨¤à© à¨à¨¾ ਰਹ੠ਹਨ"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:126
+#: ../client/pk-generate-pack.c:128
msgid "Downloading dependencies"
msgstr "ਨਿਰà¨à¨°à¨¤à¨¾ ਡਾà¨à¨¨à¨²à©à¨¡ à¨à©à¨¤à© à¨à¨¾ ਰਹ੠ਹà©"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:188
+#: ../client/pk-generate-pack.c:190
msgid "Set the file name of dependencies to be excluded"
msgstr "ਨਿਰà¨à¨°à¨¤à¨¾ ਲਠਫਾà¨à¨² ਨਾਠਦਿà¨, à¨à¨¿à¨¸ ਨà©à©° ਵੱਠਰੱà¨à¨¿à¨ à¨à¨¾à¨µà©"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:191
-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."
@@ -752,88 +862,173 @@ msgstr ""
"à¨à¨¿à¨ ਹà©à¥¤"
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:293
msgid "If specifying a file, the service pack name must end with"
msgstr "à¨à© ਫਾà¨à¨² ਦਿੱਤ੠ਤਾਠਸਰਵਿਸ ਪà©à¨ ਨਾਠà¨à¨¤à¨® ਹà©à¨£à¨¾ à¨à¨¾à¨¹à©à¨¦à¨¾ ਹà©"
#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:307
+#: ../client/pk-generate-pack.c:309
msgid "A pack with the same name already exists, do you want to overwrite it?"
msgstr "à¨à¨¸ ਨਾਠਨਾਲ ਪà©à¨ ਪਹਿਲਾਠਹ੠ਮà©à¨à©à¨¦ ਹà©, à¨à© à¨à¨¸ à¨à©±à¨¤à© ਲਿà¨à¨£à¨¾ ਹà©?"
#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:310
+#: ../client/pk-generate-pack.c:312
msgid "The pack was not overwritten."
msgstr "ਪà©à¨ à¨à©±à¨¤à© ਨਹà©à¨ ਲਿà¨à¨¿à¨ à¨à¨¾à¨µà©à¨à¨¾à¥¤"
#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:323
+#: ../client/pk-generate-pack.c:325
msgid "Failed to create directory:"
msgstr "ਡਾà¨à¨°à©à¨à¨à¨°à© ਬਣਾà¨à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©:"
#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:335
msgid "Failed to open package list."
msgstr "ਪà©à¨à©à¨ ਲਿਸਠà¨à©à¨²à©à¨¹à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©à¥¤"
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:346
msgid "Finding package name."
msgstr "ਪà©à¨à©à¨ ਨਾਠਲੱà¨à¨¿à¨ à¨à¨¾ ਰਿਹਾ ਹà©à¥¤"
#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:350
#, c-format
msgid "Failed to find package '%s': %s"
msgstr "'%s' ਪà©à¨à©à¨ à¨à©à¨à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©: %s"
#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:365
+#: ../client/pk-generate-pack.c:367
msgid "Creating service pack..."
msgstr "ਸਰਵਿਸ ਪà©à¨ ਬਣਾà¨à¨ à¨à¨¾ ਰਿਹਾ ਹà©..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:372
+#: ../client/pk-generate-pack.c:374
#, c-format
msgid "Service pack created '%s'"
msgstr "ਸਰਵਿਸ ਪà©à¨ ਬਣਾà¨à¨ '%s'"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:377
+#: ../client/pk-generate-pack.c:379
#, c-format
msgid "Failed to create '%s': %s"
msgstr "'%s' ਬਣਾà¨à¨£ ਲਠਫà©à¨²à©à¨¹: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
msgid "PackageKit Monitor"
msgstr "ਪà©à¨à©à¨à¨à¨¿à©±à¨ ਮਾਨà©à¨à¨°"
#: ../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
-#, c-format
-msgid "The package could not be found"
-msgstr "ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱà¨à¨¿à¨ à¨à¨¾ ਸà¨à¨¿à¨"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "ਸੰà¨à¨¾à¨° ਲਿਸਠà¨à©à¨²à©à¨¹à¨£ ਲਠਫà©à¨²à©à¨¹ ਹà©à¥¤"
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:130
-msgid "More than one package matches:"
-msgstr "à¨à©±à¨ ਤà©à¨ ਵੱਧ ਰਲਦ੠ਪà©à¨à©à¨ ਲੱà¨à©:"
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "ਡà©à¨®à¨¨ ਹਾਲਤ ਪਤਾ à¨à¨°à¨¨ ਲਠਫà©à¨²à©à¨¹ ਹà©à¥¤"
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:137
-msgid "Please choose the correct package: "
-msgstr "ਠà©à¨ ਪà©à¨à©à¨ à¨à©à¨£à© à¨à©:"
+#. ask the user
+#: ../client/pk-task-text.c:64
+msgid "Do you want to allow installing of unsigned software?"
+msgstr "à¨à© ਤà©à¨¸à©à¨ ਨਾ-ਸਾà¨à¨¨ à¨à©à¨¤à© ਸਾਫà¨à¨µà©à¨
ਰ à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨à¨¾ à¨à¨¾à¨¹à©à©°à¨¦à© ਹà©?"
+
+#: ../client/pk-task-text.c:68
+msgid "The unsigned software will not be installed."
+msgstr "ਨਾ-ਸਾà¨à¨¨ à¨à©à¨¤à© ਸਾਫà¨à¨µà©à¨
ਰ à¨à©°à¨¸à¨à¨¾à¨² ਨਹà©à¨ à¨à©à¨¤à¨¾ à¨à¨¾à¨µà©à¨à¨¾à¥¤"
+
+#: ../client/pk-task-text.c:100
+msgid "Software source signature required"
+msgstr "ਸਾਪà¨à¨µà©à¨
ਰ ਸਰà©à¨¤ ਦਸਤà¨à¨¤ ਲà©à©à©à¨à¨¦à©"
+
+#: ../client/pk-task-text.c:102
+msgid "Software source name"
+msgstr "ਸਾਫà¨à¨µà©à¨
ਰ ਸਰà©à¨¤ ਨਾà¨"
+
+#: ../client/pk-task-text.c:103
+msgid "Key URL"
+msgstr "à¨à©à©°à¨à© URL"
+
+#: ../client/pk-task-text.c:104
+msgid "Key user"
+msgstr "à¨à©à©°à¨à© ਯà©à©à¨°"
+
+#: ../client/pk-task-text.c:105
+msgid "Key ID"
+msgstr "à¨à©à©°à¨à© ID"
+
+#: ../client/pk-task-text.c:106
+msgid "Key fingerprint"
+msgstr "à¨à©à©°à¨à© ਫਿੰà¨à¨°à¨ªà©à¨°à¨¿à©°à¨"
+
+#: ../client/pk-task-text.c:107
+msgid "Key Timestamp"
+msgstr "à¨à©à©°à¨à© à¨à¨¾à¨à¨®à¨¸à¨à©à¨à¨ª"
+
+#: ../client/pk-task-text.c:151
+msgid "End user licence agreement required"
+msgstr "à¨
ੰਤਮ ਯà©à¨à¨¼à¨° ਲਾà¨à¨¸à©à¨à¨¸ à¨à¨à¨°à¨¾à¨°à¨¨à¨¾à¨®à¨¾ ਲà©à©à©à¨à¨¦à¨¾"
+
+#: ../client/pk-task-text.c:152
+msgid "EULA ID"
+msgstr "EULA ID"
+
+#: ../client/pk-task-text.c:155
+msgid "Agreement"
+msgstr "à¨à¨à¨°à¨¾à¨°à¨¨à¨¾à¨®à¨¾"
-#: ../client/pk-tools-common.c:162
+#. ask the user
+#: ../client/pk-task-text.c:161
+msgid "Do you accept this agreement?"
+msgstr "à¨à© ਤà©à¨¸à©à¨ à¨à¨¹ à¨à¨à¨°à¨¾à¨°à¨¨à¨¾à¨®à¨¾ ਮਨà¨à¨¼à©à¨° à¨à¨°à¨¦à© ਹà©?"
+
+#: ../client/pk-task-text.c:165
+msgid "The agreement was not accepted."
+msgstr "à¨à¨à¨°à¨¾à¨°à¨¨à¨¾à¨®à¨¾ ਮਨà¨à¨¼à©à¨° ਨਹà©à¨ à¨à©à¨¤à¨¾ ਸà©à¥¤"
+
+#: ../client/pk-task-text.c:194
+msgid "Media change required"
+msgstr "ਮà©à¨¡à©à¨ ਤਬਦà©à¨²à© ਲà©à©à©à¨à¨¦à© ਹà©"
+
+#: ../client/pk-task-text.c:195
+msgid "Media type"
+msgstr "ਮà©à¨¡à©à¨ à¨à¨¿à¨¸à¨®"
+
+#: ../client/pk-task-text.c:196
+msgid "Media ID"
+msgstr "ਮà©à¨¡à©à¨ ID"
+
+#: ../client/pk-task-text.c:197
+msgid "Text"
+msgstr "ਪਾਠ"
+
+#. ask the user
+#: ../client/pk-task-text.c:201
+msgid "Please insert the correct media"
+msgstr "ਠà©à¨ ਮà©à¨¡à©à¨ à¨à©à¨£à© à¨à©"
+
+#: ../client/pk-task-text.c:205
+msgid "The correct media was not inserted."
+msgstr "ਸਹ੠ਮà©à¨¡à©à¨ ਨਹà©à¨ ਪਾà¨à¨à¥¤"
+
+#: ../client/pk-task-text.c:303
+msgid "The transaction did not proceed."
+msgstr "ਸੰà¨à¨¾à¨° à¨
ੱà¨à© ਨਹà©à¨ ਵਧਿà¨à¥¤"
+
+#: ../client/pk-text.c:50
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "੧ ਤà©à¨ %i ਤੱਠਨੰਬਰ ਦਿਠà¨à©:"
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:119
+#, c-format
+msgid "The package could not be found"
+msgstr "ਪà©à¨à©à¨ ਨਹà©à¨ ਲੱà¨à¨¿à¨ à¨à¨¾ ਸà¨à¨¿à¨"
+
#. TRANSLATORS: when we are getting data from the daemon
#: ../contrib/browser-plugin/pk-plugin-install.c:466
msgid "Getting package information..."
@@ -891,24 +1086,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
@@ -981,286 +1174,260 @@ 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
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397, 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 "ਪà©à¨à©à¨à¨à¨¿à©±à¨ à¨à¨¨à¨¸à©à¨² à¨à©°à¨à¨°à¨«à©à¨¸"
+msgstr "ਪà©à¨à©à¨à¨à¨¿à©±à¨ Debuginfo à¨à©°à¨¸à¨à¨¾à¨²à¨°"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
-#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:588, c-format
msgid "ERROR: Specify package names to install."
-msgstr "à¨à©à¨ ਨਵਾਠਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² à¨à¨°à¨¨ ਦ੠ਲà©à© ਨਹà©à¨ ਹà©"
+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 "ਠà©à¨ ਹà©à¥¤"
#. 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 ਰਿਪ੠ਲੱà¨à©à¨à¨ ਹਨ।"
#. 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 "ਫà©à¨² ਹà©à¨à¨à¥¤"
#. 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 "ਡà©à¨¬à©±à¨ ਪà©à¨à©à¨ %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 "ਸਿਮà©à¨²à©à¨ ਮà©à¨¡ ਵਿੱਠਪà©à¨à©à¨ à¨à©°à¨¸à¨à¨¾à¨² ਨਹà©à¨ à¨à©à¨¤à© à¨à¨¾ ਰਹ੠ਹਨ"
#. 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 "ਪà©à¨à©à¨à¨à¨¿à©±à¨ ਸਰਵਿਸ ਪà©à¨"
+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"
@@ -1289,8 +1456,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 +1482,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"
@@ -1393,7 +1558,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
@@ -1514,46 +1679,44 @@ 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 "ਸਿਰਫ à¨à¨°à©à¨¸à©à¨¯à©à¨"
#~ msgid "The action, one of 'create', 'add', or 'remove'"
#~ msgstr "à¨à¨¾à¨°à¨µà¨¾à¨ 'ਬਣਾà¨', 'ਸ਼ਾਮਲ', à¨à¨¾à¨ 'ਹà¨à¨¾à¨'"
commit 6e84dc68d32346d659f9e725570ed783c35f846d
Merge: a37239a... a4ace64...
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 16:31:40 2009 +0100
Merge branch 'master' into glib2-service-pack
commit a4ace6437a60f935e0c4233f2158c49650e61cd9
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 16:19:04 2009 +0100
glib2: Copy the files emitted from DownloadPackages
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index a2b4016..521ae77 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -101,6 +101,7 @@ typedef struct {
PkResults *results;
PkRoleEnum role;
PkSigTypeEnum type;
+ guint refcount;
} PkClientState;
static void pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClientState *state);
@@ -351,6 +352,163 @@ pk_client_state_finish (PkClientState *state, GError *error)
}
/**
+ * pk_client_copy_finished_remove_old_files:
+ *
+ * Removes all the files that do not have the prefix destination path.
+ * This should remove all the old /var/cache/PackageKit/$TMP/powertop-1.8-1.fc8.rpm
+ * and leave the $DESTDIR/powertop-1.8-1.fc8.rpm files.
+ */
+static void
+pk_client_copy_finished_remove_old_files (PkClientState *state)
+{
+ const PkResultItemFiles *item;
+ GPtrArray *array = NULL;
+ guint i;
+
+ /* get the data */
+ array = pk_results_get_files_array (state->results);
+ if (array == NULL)
+ egg_error ("internal error");
+
+ /* remove any without dest path */
+ for (i=0; i < array->len; ) {
+ item = g_ptr_array_index (array, i);
+ if (!g_str_has_prefix (item->files[0], state->directory))
+ g_ptr_array_remove_index_fast (array, i);
+ else
+ i++;
+ }
+
+ /* we're done modifying the data */
+ g_ptr_array_unref (array);
+}
+
+/**
+ * pk_client_copy_finished_cb:
+ */
+static void
+pk_client_copy_finished_cb (GFile *file, GAsyncResult *res, PkClientState *state)
+{
+ gboolean ret;
+ gchar *path;
+ GError *error = NULL;
+
+ /* debug */
+ path = g_file_get_path (file);
+ egg_debug ("finished copy of %s", path);
+
+ /* get the result */
+ ret = g_file_copy_finish (file, res, &error);
+ if (!ret) {
+ pk_client_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* no more copies pending? */
+ if (--state->refcount == 0) {
+ pk_client_copy_finished_remove_old_files (state);
+ pk_client_state_finish (state, error);
+ }
+out:
+ g_free (path);
+}
+
+/**
+ * pk_client_copy_progress_cb:
+ */
+static void
+pk_client_copy_progress_cb (goffset current_num_bytes, goffset total_num_bytes, PkClientState *state)
+{
+ PkStatusEnum status_enum = PK_STATUS_ENUM_REPACKAGING;
+
+ /* save progress */
+ g_object_set (state->progress,
+ "status", status_enum,
+ NULL);
+
+ /* do the callback for GUI programs */
+ if (state->progress_callback != NULL)
+ state->progress_callback (state->progress, PK_PROGRESS_TYPE_STATUS, state->progress_user_data);
+}
+
+/**
+ * pk_client_copy_downloaded_file:
+ */
+static void
+pk_client_copy_downloaded_file (PkClientState *state, const gchar *package_id, const gchar *source_file)
+{
+ gchar *basename;
+ gchar *path;
+ gchar **files;
+ GFile *source;
+ GFile *destination;
+
+ /* generate the destination location */
+ basename = g_path_get_basename (source_file);
+ path = g_build_filename (state->directory, basename, NULL);
+
+ /* copy async */
+ egg_debug ("copy %s to %s", source_file, path);
+ source = g_file_new_for_path (source_file);
+ destination = g_file_new_for_path (path);
+ g_file_copy_async (source, destination, G_FILE_COPY_OVERWRITE, G_PRIORITY_DEFAULT, state->cancellable,
+ (GFileProgressCallback) pk_client_copy_progress_cb, state,
+ (GAsyncReadyCallback) pk_client_copy_finished_cb, state);
+
+ /* Add the result (as a GStrv) to the results set */
+ files = g_strsplit (path, ",", -1);
+ pk_results_add_files (state->results, package_id, files);
+
+ /* free everything we've used */
+ g_object_unref (source);
+ g_object_unref (destination);
+ g_strfreev (files);
+ g_free (basename);
+ g_free (path);
+}
+
+/**
+ * pk_client_copy_downloaded:
+ *
+ * We have to copy the files from the temporary directory into the user-specified
+ * directory. There should only be one file for each package, although this is
+ * not encoded in the spec.
+ */
+static void
+pk_client_copy_downloaded (PkClientState *state)
+{
+ guint i;
+ guint j;
+ guint len;
+ const PkResultItemFiles *item;
+ GPtrArray *array = NULL;
+
+ /* get data */
+ array = pk_results_get_files_array (state->results);
+ if (array == NULL)
+ egg_error ("internal error");
+
+ /* get the number of files to copy */
+ for (i=0; i < array->len; i++) {
+ item = g_ptr_array_index (array, i);
+ state->refcount += g_strv_length (item->files);
+ }
+ egg_debug ("%i files to copy", state->refcount);
+
+ /* get a cached value, as pk_client_copy_downloaded_file() adds items */
+ len = array->len;
+
+ /* do the copies pipelined */
+ for (i=0; i < len; i++) {
+ item = g_ptr_array_index (array, i);
+ for (j=0; item->files[j] != NULL; j++)
+ pk_client_copy_downloaded_file (state, item->package_id, item->files[j]);
+ }
+ g_ptr_array_unref (array);
+}
+
+/**
* pk_client_finished_cb:
*/
static void
@@ -382,6 +540,12 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
return;
}
+ /* do we have to copy results? */
+ if (state->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
+ pk_client_copy_downloaded (state);
+ return;
+ }
+
/* we're done */
pk_client_state_finish (state, error);
}
@@ -3376,17 +3540,17 @@ pk_client_test_download_cb (GObject *object, GAsyncResult *res, EggTest *test)
/* check number */
array = pk_results_get_files_array (results);
- if (array->len != 1)
+ if (array->len != 2)
egg_test_failed (test, "invalid number of files: %i", array->len);
/* check a result */
item = g_ptr_array_index (array, 0);
- if (item->package_id != NULL)
- egg_test_failed (test, "invalid package_id: %s, expecting NULL", item->package_id);
+ if (g_strcmp0 (item->package_id, "powertop-common;1.8-1.fc8;i386;fedora") != 0)
+ egg_test_failed (test, "invalid package_id: %s", item->package_id);
len = g_strv_length (item->files);
- if (len != 2)
+ if (len != 1)
egg_test_failed (test, "invalid number of files: %i", len);
- if (g_strcmp0 (item->files[0], "/tmp/powertop-1.8-1.fc8.rpm") != 0)
+ if (g_strcmp0 (item->files[0], "/tmp/powertop-common-1.8-1.fc8.rpm") != 0)
egg_test_failed (test, "invalid filename: %s, maybe not rewritten", item->files[0]);
out:
g_ptr_array_unref (array);
@@ -3521,6 +3685,8 @@ pk_client_test (gpointer user_data)
egg_test_loop_wait (test, 15000);
egg_test_success (test, "cancelled in %i", egg_test_elapsed (test));
+ g_cancellable_reset (cancellable);
+
/************************************************************/
egg_test_title (test, "do downloads");
package_ids = pk_package_ids_from_id ("powertop;1.8-1.fc8;i386;fedora");
@@ -3529,6 +3695,7 @@ pk_client_test (gpointer user_data)
(GAsyncReadyCallback) pk_client_test_download_cb, test);
g_strfreev (package_ids);
egg_test_loop_wait (test, 15000);
+ egg_test_success (test, "downloaded and copied in %i", egg_test_elapsed (test));
g_object_unref (cancellable);
g_object_unref (client);
commit 4f91de0ba116c2f984bbc9bb5095ec301bf4d5a5
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 16:17:46 2009 +0100
daemon: add a PkTransaction warning if a backend does not download files to the specified directory
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index ce00100..572d1ee 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -527,9 +527,25 @@ static void
pk_transaction_files_cb (PkBackend *backend, const gchar *package_id,
const gchar *filelist, PkTransaction *transaction)
{
+ gchar **files = NULL;
+ guint i;
+
g_return_if_fail (PK_IS_TRANSACTION (transaction));
g_return_if_fail (transaction->priv->tid != NULL);
+ /* ensure the files have the correct prefix */
+ if (transaction->priv->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES) {
+ files = g_strsplit (filelist, ";", -1);
+ for (i=0; files[i] != NULL; i++) {
+ if (!g_str_has_prefix (files[i], transaction->priv->cached_directory)) {
+ pk_backend_message (transaction->priv->backend, PK_MESSAGE_ENUM_BACKEND_ERROR,
+ "%s does not have the correct prefix (%s)",
+ files[i], transaction->priv->cached_directory);
+ }
+ }
+ g_strfreev (files);
+ }
+
egg_debug ("emitting files %s, %s", package_id, filelist);
g_signal_emit (transaction, signals [PK_TRANSACTION_FILES], 0, package_id, filelist);
}
commit 0e26b87be468977a9a0756a7b663f01bf0e57c53
Merge: bf3cb21... 08d0430...
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 14:56:14 2009 +0100
Merge branch 'master' into glib2-download-testing-and-copy
commit 08d043055f5535791885ffa5e6f1b453c14f54af
Author: warrink <warrink at fedoraproject.org>
Date: Mon Sep 7 12:55:10 2009 +0000
Sending translation for Dutch
diff --git a/po/nl.po b/po/nl.po
index 3cf937b..7d327a6 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.nl\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-09-04 14:33+0000\n"
-"PO-Revision-Date: 2009-09-04 20:10+0200\n"
+"POT-Creation-Date: 2009-09-07 08:27+0000\n"
+"PO-Revision-Date: 2009-09-07 14:54+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"
@@ -269,12 +269,12 @@ msgid "Application restart required by:"
msgstr "Herstart vereist door toepassing:"
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:666 ../client/pk-console-test.c:702
+#: ../client/pk-console.c:666 ../client/pk-console-test.c:704
msgid "Please restart the computer to complete the update."
msgstr "Herstart a.u.b de computer om de verneuwing af te maken."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:669 ../client/pk-console-test.c:705
+#: ../client/pk-console.c:669 ../client/pk-console-test.c:707
msgid "Please logout and login to complete the update."
msgstr "Log a.u.b uit en weer in om de vernieuwing af te maken."
@@ -284,7 +284,7 @@ msgid "Please restart the application as it is being used."
msgstr "Herstart a.ub. de toepassing omdat deze in gebruik was."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:675 ../client/pk-console-test.c:708
+#: ../client/pk-console.c:675 ../client/pk-console-test.c:710
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -293,7 +293,7 @@ msgstr ""
"beveiligings vernieuwingen geïnstaleerd zijn."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:678 ../client/pk-console-test.c:711
+#: ../client/pk-console.c:678 ../client/pk-console-test.c:713
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -569,24 +569,25 @@ msgid "The license was refused."
msgstr "De licentie werd geweigerd."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1879 ../client/pk-console-test.c:968
+#: ../client/pk-console.c:1879 ../client/pk-console-test.c:972
msgid "The daemon crashed mid-transaction!"
msgstr "De service is midden in de transactie gecrashed!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1002
+#: ../client/pk-console.c:1932 ../client/pk-console-test.c:1006
msgid "PackageKit Console Interface"
msgstr "PackageKit console-interface"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1004
+#: ../client/pk-console.c:1934 ../client/pk-console-test.c:1008
msgid "Subcommands:"
msgstr "Subopdrachten:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1095
+#: ../client/pk-console.c:2027 ../client/pk-console-test.c:1099
#: ../client/pk-generate-pack.c:187 ../client/pk-monitor.c:128
+#: ../client/pk-monitor-test.c:282
#: ../contrib/command-not-found/pk-command-not-found.c:616
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:549
#: ../contrib/device-rebind/pk-device-rebind.c:293 ../src/pk-main.c:211
@@ -594,18 +595,18 @@ msgid "Show extra debugging information"
msgstr "Extra debuginformatie tonen"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1098
-#: ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2030 ../client/pk-console-test.c:1102
+#: ../client/pk-monitor.c:130 ../client/pk-monitor-test.c:284
msgid "Show the program version and exit"
msgstr "Programmaversie tonen en sluiten"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1101
+#: ../client/pk-console.c:2033 ../client/pk-console-test.c:1105
msgid "Set the filter, e.g. installed"
msgstr "Filter instellen, bijvoorbeeld geïnstalleerd"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1104
+#: ../client/pk-console.c:2036 ../client/pk-console-test.c:1108
msgid "Exit without waiting for actions to complete"
msgstr "Afsluiten zonder te wachten tot de transacties zijn afgerond"
@@ -615,25 +616,25 @@ 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:2153 ../client/pk-console-test.c:1179
+#: ../client/pk-console.c:2153 ../client/pk-console-test.c:1183
msgid "The filter specified was invalid"
msgstr "De opgegeven filter was ongeldig"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1198
+#: ../client/pk-console.c:2172 ../client/pk-console-test.c:1202
msgid "A search type is required, e.g. name"
msgstr "Een zoektype is verplicht, b.v. naam"
#. TRANSLATORS: the user needs to provide a search term
#: ../client/pk-console.c:2179 ../client/pk-console.c:2188
#: ../client/pk-console.c:2197 ../client/pk-console.c:2206
-#: ../client/pk-console-test.c:1205 ../client/pk-console-test.c:1217
-#: ../client/pk-console-test.c:1229 ../client/pk-console-test.c:1241
+#: ../client/pk-console-test.c:1209 ../client/pk-console-test.c:1221
+#: ../client/pk-console-test.c:1233 ../client/pk-console-test.c:1245
msgid "A search term is required"
msgstr "Een zoekterm is vereist"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1251
+#: ../client/pk-console.c:2213 ../client/pk-console-test.c:1255
msgid "Invalid search type"
msgstr "Ongeldig zoektype"
@@ -643,63 +644,63 @@ 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:2228 ../client/pk-console-test.c:1278
+#: ../client/pk-console.c:2228 ../client/pk-console-test.c:1282
msgid "A type, key_id and package_id are required"
msgstr "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:2237 ../client/pk-console-test.c:1289
+#: ../client/pk-console.c:2237 ../client/pk-console-test.c:1293
msgid "A package name to remove is required"
msgstr "Een te verwijderen pakketnaam is vereist"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1298
+#: ../client/pk-console.c:2245 ../client/pk-console-test.c:1302
msgid "A destination directory and the package names to download are required"
msgstr "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:2252 ../client/pk-console-test.c:1305
+#: ../client/pk-console.c:2252 ../client/pk-console-test.c:1309
msgid "Directory not found"
msgstr "Map niet gevonden"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1314
+#: ../client/pk-console.c:2260 ../client/pk-console-test.c:1318
msgid "A licence identifier (eula-id) is required"
msgstr "Een licentie indentificatie (eula-id) is vereis"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1325
+#: ../client/pk-console.c:2270 ../client/pk-console-test.c:1329
msgid "A transaction identifier (tid) is required"
msgstr "Een transactie indentificatie (tid) is vereist"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1346
+#: ../client/pk-console.c:2287 ../client/pk-console-test.c:1350
msgid "A package name to resolve is required"
msgstr "Een pakketnaam om te gebruiken is vereist"
#. TRANSLATORS: The user did not specify a repository (software source) name
#: ../client/pk-console.c:2296 ../client/pk-console.c:2305
-#: ../client/pk-console-test.c:1357 ../client/pk-console-test.c:1368
+#: ../client/pk-console-test.c:1361 ../client/pk-console-test.c:1372
msgid "A repository name is required"
msgstr "Een naam van een repository is vereist"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1379
+#: ../client/pk-console.c:2314 ../client/pk-console-test.c:1383
msgid "A repo name, parameter and value are required"
msgstr "Een repo naam, parameter en waarde zijn vereist"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1397
+#: ../client/pk-console.c:2328 ../client/pk-console-test.c:1401
msgid "An action, e.g. 'update-system' is required"
msgstr "Een actie, b.v. 'update-system' is vereist"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1404
+#: ../client/pk-console.c:2335 ../client/pk-console-test.c:1408
msgid "A correct role is required"
msgstr "Een correcte rol is vereist"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1411
+#: ../client/pk-console.c:2342 ../client/pk-console-test.c:1415
msgid "Failed to get the time since this action was last completed"
msgstr ""
"Verkrijgen van de tijd tussen laatste actie en deze actie is niet gelukt"
@@ -708,15 +709,15 @@ msgstr ""
#. TRANSLATORS: This is when the user fails to supply the package name
#: ../client/pk-console.c:2352 ../client/pk-console.c:2364
#: ../client/pk-console.c:2373 ../client/pk-console.c:2391
-#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1421
-#: ../client/pk-console-test.c:1436 ../client/pk-console-test.c:1445
-#: ../client/pk-console-test.c:1465 ../client/pk-console-test.c:1474
+#: ../client/pk-console.c:2400 ../client/pk-console-test.c:1425
+#: ../client/pk-console-test.c:1440 ../client/pk-console-test.c:1449
+#: ../client/pk-console-test.c:1469 ../client/pk-console-test.c:1478
#: ../client/pk-generate-pack.c:243
msgid "A package name is required"
msgstr "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:2382 ../client/pk-console-test.c:1454
+#: ../client/pk-console.c:2382 ../client/pk-console-test.c:1458
msgid "A package provide string is required"
msgstr "Een pakket geleverde string is vereist"
@@ -731,7 +732,7 @@ 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:2483 ../client/pk-console-test.c:1534
+#: ../client/pk-console.c:2483 ../client/pk-console-test.c:1538
#, c-format
msgid "Option '%s' is not supported"
msgstr "Optie '%s' wordt niet ondersteund"
@@ -745,34 +746,34 @@ msgstr "Onjuiste privileges voor deze operatie"
#. /* TRANSLATORS: User does not have permission to do this */
#. g_print ("%s\n", _("Incorrect privileges for this operation"));
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1546
+#: ../client/pk-console.c:2499 ../client/pk-console-test.c:1550
msgid "Command failed"
msgstr "Opdracht mislukt"
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-console-test.c:521 ../client/pk-tools-common.c:131
+#: ../client/pk-console-test.c:523 ../client/pk-tools-common.c:131
msgid "More than one package matches:"
msgstr "Er zijn meerdere pakketten die overeenkomen:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-console-test.c:530 ../client/pk-tools-common.c:138
+#: ../client/pk-console-test.c:532 ../client/pk-tools-common.c:138
msgid "Please choose the correct package: "
msgstr "Kies alstublieft het juiste pakket: "
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:730
+#: ../client/pk-console-test.c:734
#, c-format
msgid "This tool could not find the available package: %s"
msgstr "Dit programma kon het beschikbare pakket %s niet vinden."
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:758
+#: ../client/pk-console-test.c:762
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "Dit programma kon het geïinstallerde pakket %s niet vinden."
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console-test.c:786 ../client/pk-console-test.c:814
+#: ../client/pk-console-test.c:790 ../client/pk-console-test.c:818
#, c-format
msgid "This tool could not find the package: %s"
msgstr "Dit programma kon het pakket %s niet vinden."
@@ -781,20 +782,20 @@ msgstr "Dit programma kon het pakket %s niet vinden."
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console-test.c:842 ../client/pk-console-test.c:868
-#: ../client/pk-console-test.c:894 ../client/pk-console-test.c:920
-#: ../client/pk-console-test.c:946
+#: ../client/pk-console-test.c:846 ../client/pk-console-test.c:872
+#: ../client/pk-console-test.c:898 ../client/pk-console-test.c:924
+#: ../client/pk-console-test.c:950
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "Dit programma kon niet alle pakketten vinden: %s"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1257
+#: ../client/pk-console-test.c:1261
msgid "A package name to install is required"
msgstr "Een pakketnaam om te installeren is vereist"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console-test.c:1266
+#: ../client/pk-console-test.c:1270
msgid "A filename to install is required"
msgstr "Een bestandsnaam om te installeren is vereist"
@@ -922,7 +923,7 @@ msgid "Failed to create '%s': %s"
msgstr "'%s' aanmaken niet gelukt: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:146
+#: ../client/pk-monitor.c:146 ../client/pk-monitor-test.c:299
msgid "PackageKit Monitor"
msgstr "PackageKit-monitor"
@@ -930,6 +931,14 @@ msgstr "PackageKit-monitor"
msgid "Cannot show the list of transactions"
msgstr "Kan de lijst van transacties niet laten zien"
+#: ../client/pk-monitor-test.c:204
+msgid "Failed to get transaction list"
+msgstr "Transactie lijst verkrijgen mislukte."
+
+#: ../client/pk-monitor-test.c:235
+msgid "Failed to get daemon state"
+msgstr "Daemon toestand verkrijgen mislukte."
+
#. ask the user
#: ../client/pk-task-text.c:64
msgid "Do you want to allow installing of unsigned software?"
commit 900eaa32dd1fcea794d10bc5eb373eb50d5baf99
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 13:40:49 2009 +0100
daemon: Add a check to ensure that ::Files() are sent for DownloadPackages
diff --git a/src/pk-backend.c b/src/pk-backend.c
index ceb0467..5d53098 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -98,6 +98,7 @@ struct _PkBackendPrivate
gboolean simultaneous;
gboolean has_sent_package;
gboolean use_time;
+ guint download_files;
PkNetwork *network;
PkStore *store;
PkPackageObj *last_package;
@@ -1246,7 +1247,7 @@ pk_backend_files (PkBackend *backend, const gchar *package_id, const gchar *file
egg_debug ("emit files %s, %s", package_id, filelist);
g_signal_emit (backend, signals [PK_BACKEND_FILES], 0,
package_id, filelist);
-
+ backend->priv->download_files++;
out:
return ret;
}
@@ -1700,6 +1701,14 @@ pk_backend_finished (PkBackend *backend)
"Backends should send a Package() for %s!", role_text);
}
+ /* ensure the same number of ::Files() were sent as packages for DownloadPackages */
+ if (!backend->priv->set_error &&
+ backend->priv->role == PK_ROLE_ENUM_DOWNLOAD_PACKAGES &&
+ backend->priv->download_files == 0) {
+ pk_backend_message (backend, PK_MESSAGE_ENUM_BACKEND_ERROR,
+ "Backends should send multiple Files() for each package_id!");
+ }
+
/* if we set an error code notifier, clear */
if (backend->priv->signal_error_timeout != 0) {
g_source_remove (backend->priv->signal_error_timeout);
@@ -2102,6 +2111,7 @@ pk_backend_reset (PkBackend *backend)
backend->priv->set_eula = FALSE;
backend->priv->finished = FALSE;
backend->priv->has_sent_package = FALSE;
+ backend->priv->download_files = 0;
backend->priv->thread = NULL;
backend->priv->last_package = NULL;
backend->priv->allow_cancel = PK_BACKEND_TRISTATE_UNSET;
commit 3f0fc22c44bdc04da027c9815fba0a969bad3f66
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 13:40:34 2009 +0100
yum: Match the spec for DownloadPackages
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 903ea26..65d1898 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -862,15 +862,14 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.status(STATUS_DOWNLOAD)
percentage = 0
bump = 100 / len(package_ids)
- files = []
# download each package
- for package in package_ids:
+ for package_id in package_ids:
self.percentage(percentage)
- pkg, inst = self._findPackage(package)
+ pkg, inst = self._findPackage(package_id)
# if we couldn't map package_id -> pkg
if not pkg:
- self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "Could not find the package %s" % package)
+ self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "Could not find the package %s" % package_id)
continue
n, a, e, v, r = pkg.pkgtup
@@ -884,7 +883,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
# if we couldn't map package_id -> pkg
if len(packs) == 0:
- self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "Could not find a match for package %s" % package)
+ self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "Could not find a match for package %s" % package_id)
continue
# should have only one...
@@ -908,16 +907,16 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
pkg_download.localpath = local #Hack:To set the localpath we want
try:
path = repo.getPackage(pkg_download)
- files.append(path)
+
+ # emit the file we downloaded
+ package_id_tmp = self._pkg_to_id(pkg_download)
+ self.files(package_id_tmp, path)
+
except IOError, e:
self.error(ERROR_PACKAGE_DOWNLOAD_FAILED, "Cannot write to file", exit=False)
return
percentage += bump
- # emit the file list we downloaded
- file_list = ";".join(files)
- self.files(package_ids[0], file_list)
-
# in case we don't sum to 100
self.percentage(100)
commit 7c8c3539317fb463a975322dcf7fdf0b5932d961
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 13:40:20 2009 +0100
dummy: match the spec for DownloadPackages
diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index e5d8425..a8089be 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -1163,28 +1163,25 @@ backend_get_packages (PkBackend *backend, PkBitfield filters)
static void
backend_download_packages (PkBackend *backend, gchar **package_ids, const gchar *directory)
{
- gchar *filename1;
- gchar *filename2;
- gchar *filelist;
+ gchar *filename;
+
pk_backend_set_status (backend, PK_STATUS_ENUM_DOWNLOAD);
- filename1 = g_build_filename (directory, "powertop-1.8-1.fc8.rpm", NULL);
- g_file_set_contents (filename1, "hello dave", -1, NULL);
+ /* first package */
+ filename = g_build_filename (directory, "powertop-1.8-1.fc8.rpm", NULL);
+ g_file_set_contents (filename, "powertop data", -1, NULL);
pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
"powertop;1.8-1.fc8;i386;fedora", "Power consumption monitor");
+ pk_backend_files (backend, "powertop;1.8-1.fc8;i386;fedora", filename);
+ g_free (filename);
- filename2 = g_build_filename (directory, "gtk2-2.11.6-6.fc8.rpm", NULL);
- g_file_set_contents (filename2, "hello brian", -1, NULL);
+ /* second package */
+ filename = g_build_filename (directory, "powertop-common-1.8-1.fc8.rpm", NULL);
+ g_file_set_contents (filename, "powertop-common data", -1, NULL);
pk_backend_package (backend, PK_INFO_ENUM_DOWNLOADING,
- "gtk2;2.11.6-6.fc8;i386;fedora", "GTK+ Libraries for GIMP");
-
- /* send the filelist */
- filelist = g_strjoin (";", filename1, filename2, NULL);
- pk_backend_files (backend, NULL, filelist);
-
- g_free (filename1);
- g_free (filename2);
- g_free (filelist);
+ "powertop-common;1.8-1.fc8;i386;fedora", "Power consumption monitor");
+ pk_backend_files (backend, "powertop-common;1.8-1.fc8;i386;fedora", filename);
+ g_free (filename);
pk_backend_finished (backend);
}
commit 1fdda578d7274b4785588cf513cd77ac13d5bfaf
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 13:40:06 2009 +0100
spec: mandate that ::Files() from DownloadPackages must be one per package, with the package_id set correctly
diff --git a/src/org.freedesktop.PackageKit.Transaction.xml b/src/org.freedesktop.PackageKit.Transaction.xml
index aafc394..f905c65 100644
--- a/src/org.freedesktop.PackageKit.Transaction.xml
+++ b/src/org.freedesktop.PackageKit.Transaction.xml
@@ -160,6 +160,19 @@
<doc:para>
This method downloads packages into a temporary directory.
</doc:para>
+ <doc:para>
+ This method should emit one
+ <doc:tt>Files</doc:tt> signal for each package that is downloaded,
+ with the file list set as the name of the complete downloaded file
+ and directory, so for example:
+ </doc:para>
+ <doc:para>
+ <doc:tt>DownloadPackages('hal;0.1.2;i386;fedora','hal-info;2009-09-07;no-arch;updates')</doc:tt>
+ should send two signals, e.g.
+ <doc:tt>Files('hal;0.1.2;i386;fedora', '/tmp/hal-0.1.2.i386.rpm')</doc:tt>
+ and
+ <doc:tt>Files('hal-info;2009-09-07;no-arch;updates', '/tmp/hal-info-2009-09-07.noarch.rpm')</doc:tt>.
+ </doc:para>
</doc:description>
</doc:doc>
<arg type="as" name="package_ids" direction="in">
diff --git a/src/pk-backend.c b/src/pk-backend.c
index b7f656a..ceb0467 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -1224,6 +1224,8 @@ out:
gboolean
pk_backend_files (PkBackend *backend, const gchar *package_id, const gchar *filelist)
{
+ gboolean ret;
+
g_return_val_if_fail (PK_IS_BACKEND (backend), FALSE);
g_return_val_if_fail (filelist != NULL, FALSE);
g_return_val_if_fail (backend->priv->locked != FALSE, FALSE);
@@ -1234,11 +1236,19 @@ pk_backend_files (PkBackend *backend, const gchar *package_id, const gchar *file
return FALSE;
}
+ /* check we are valid */
+ ret = pk_package_id_check (package_id);
+ if (!ret) {
+ egg_warning ("package_id invalid and cannot be processed: %s", package_id);
+ goto out;
+ }
+
egg_debug ("emit files %s, %s", package_id, filelist);
g_signal_emit (backend, signals [PK_BACKEND_FILES], 0,
package_id, filelist);
- return TRUE;
+out:
+ return ret;
}
/**
commit 4fa7d82ce644c14fe928bf3cd109c20ca2d54ff2
Author: shanky <shanky at fedoraproject.org>
Date: Mon Sep 7 12:16:26 2009 +0000
Sending translation for Kannada
diff --git a/po/kn.po b/po/kn.po
index b0cd4bb..081ac30 100644
--- a/po/kn.po
+++ b/po/kn.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.kn\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-24 11:06+0100\n"
-"PO-Revision-Date: 2009-06-15 14:37+0530\n"
+"POT-Creation-Date: 2009-09-01 02:36+0000\n"
+"PO-Revision-Date: 2009-09-07 17:40+0530\n"
"Last-Translator: Shankar Prasad <svenkate at redhat.com>\n"
"Language-Team: Kannada <en at li.org>\n"
"MIME-Version: 1.0\n"
@@ -32,12 +32,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 "à²
ಸತà³à²¯"
@@ -85,453 +84,499 @@ msgstr "ಪರಿಣಾಮ ಬà³à²°à²²à³à²ªà²¡à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à
msgid "Affected packages: None"
msgstr "ಪರಿಣಾಮ ಬà³à²°à²²à³à²ªà²¡à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²à²³à³: ಯಾವà³à²¦à³ à²à²²à³à²²"
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../client/pk-console.c:334
+msgid "The following packages have to be removed:"
+msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ತà³à²à³à²¦à³ ಹಾà²à²¬à³à²à³:"
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../client/pk-console.c:337
+msgid "The following packages have to be installed:"
+msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²à³:"
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../client/pk-console.c:340
+msgid "The following packages have to be updated:"
+msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ಪà³âಡà³à²à³ ಮಾಡಬà³à²à³:"
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../client/pk-console.c:343
+msgid "The following packages have to be reinstalled:"
+msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಮರಳಿ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²à³:"
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../client/pk-console.c:346
+msgid "The following packages have to be downgraded:"
+msgstr "ಠà²à³à²³à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à³à²à²³ à²à²µà³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ à²à³à²³à²à³à²à³ à²à²³à²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¦à³:"
+
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:298
+#: ../client/pk-console.c:360
msgid "Distribution"
msgstr "ವಿತರಣà³"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:300
+#: ../client/pk-console.c:362
msgid "Type"
msgstr "ಬà²à³"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:302 ../client/pk-console.c:325
+#: ../client/pk-console.c:364 ../client/pk-console.c:387
msgid "Summary"
msgstr "ಸಾರಾà²à²¶"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:376
msgid "Category"
msgstr "ಪà²à²à²¡"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:316
+#: ../client/pk-console.c:378
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:319
+#: ../client/pk-console.c:381
msgid "Parent"
msgstr "ಮà³à²²"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:384
msgid "Name"
msgstr "ಹà³à²¸à²°à³"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:328
+#: ../client/pk-console.c:390
msgid "Icon"
msgstr "à²à²¿à²¹à³à²¨à³"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:405
msgid "Details about the update:"
msgstr "à²
ಪà³âಡà³à²à³â ಬà²à³à²à²¿à²¨ ವಿವರಣà³à²à²³à³:"
#. TRANSLATORS: details about the update, package name and version
#. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:345 ../src/pk-polkit-action-lookup.c:352
-#, fuzzy
+#: ../client/pk-console.c:407 ../src/pk-polkit-action-lookup.c:352
msgid "Package"
msgid_plural "Packages"
msgstr[0] "ಪà³à²¯à²¾à²à³à²à³"
-msgstr[1] "ಪà³à²¯à²¾à²à³à²à³"
+msgstr[1] "ಪà³à²¯à²¾à²à³à²à³à²à²³à³"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:348
+#: ../client/pk-console.c:410
msgid "Updates"
msgstr "à²
ಪà³âಡà³à²à³âà²à²³à³"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:352
+#: ../client/pk-console.c:414
msgid "Obsoletes"
msgstr "ಪà³à²°à²à²²à²¿à²¤à²µà²¿à²²à³à²²à²¦à²µà³"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:356
+#: ../client/pk-console.c:418
msgid "Vendor"
msgstr "à²à²¦à²à²¿à²¸à²¿à²¦à²µà²°à³"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:360
+#: ../client/pk-console.c:422
msgid "Bugzilla"
msgstr "ಬà²à³âà²à²¿à²²à³à²²à²¾"
#. 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 à²
ನà³à²¨à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²² à²à²à³à²à²¦à²°à³ à²
ದೠà²à²à²¡à³ ಬà²à²¦à²¿à²²à³à²²"
+msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²² à²à²à³à²à²¦à²°à³ à²
ದೠà²à²à²¡à³ ಬà²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:1178
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1031 ../client/pk-console.c:1040
+#: ../client/pk-console.c:1210 ../client/pk-console.c:1222
+#: ../client/pk-console.c:1277
#, c-format
msgid "This tool could not update %s: %s"
msgstr "%s à²
ನà³à²¨à³ à²
ಪà³âಡà³à²à³ ಮಾಡಲೠಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:1268
+msgid "The package update was canceled!"
+msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ à²
ಪà³âಡà³à²à³ ಮಾಡà³à²µà²¿à²à³à²¯à²¨à³à²¨à³ ರದà³à²¦à³à²à³à²³à²¿à²¸à²²à²¾à²à²¿à²¦à³!"
+
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1062 ../client/pk-console.c:1070
+#: ../client/pk-console.c:1301 ../client/pk-console.c:1309
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ವಶà³à²¯à²à²¤à³à²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1092 ../client/pk-console.c:1100
+#: ../client/pk-console.c:1331 ../client/pk-console.c:1339
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ವಲà²à²¬à²¨à³à²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1122 ../client/pk-console.c:1130
+#: ../client/pk-console.c:1361 ../client/pk-console.c:1369
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ವಿವರà²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1152
+#: ../client/pk-console.c:1391
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²à²¡à²¤à²¦ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ à²à²à²¡à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1160
+#: ../client/pk-console.c:1399
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²à²¡à²¤à²¦ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1182
+#: ../client/pk-console.c:1421
#, c-format
msgid "File already exists: %s"
msgstr "à²à²¡à²¤à²µà³ à²à²à²¾à²à²²à³ à²
ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²¦à³: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1187 ../client/pk-console.c:1243
-#: ../client/pk-console.c:1318
+#: ../client/pk-console.c:1426 ../client/pk-console.c:1482
+#: ../client/pk-console.c:1557
msgid "Getting package list"
msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1193 ../client/pk-console.c:1249
-#: ../client/pk-console.c:1324
+#: ../client/pk-console.c:1432 ../client/pk-console.c:1488
+#: ../client/pk-console.c:1563
#, c-format
msgid "This tool could not get package list: %s"
msgstr "ಪà³à²¯à²¾à²à³à²à³ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à³à²µà²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1204
+#: ../client/pk-console.c:1443
#, c-format
msgid "Failed to save to disk"
msgstr "ಡಿಸà³à²à²¿à²à³ à²à²³à²¿à²¸à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1238 ../client/pk-console.c:1313
+#: ../client/pk-console.c:1477 ../client/pk-console.c:1552
#, c-format
msgid "File does not exist: %s"
msgstr "à²à²¡à²¤à²µà³ à²
ಸà³à²¤à²¿à²¤à³à²µà²¦à²²à³à²²à²¿à²²à³à²²: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1509
msgid "Packages to add"
msgstr "ಸà³à²°à²¿à²¸à²¬à³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à³à²à²³à³"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1278
+#: ../client/pk-console.c:1517
msgid "Packages to remove"
msgstr "ತà³à²à³à²¦à³ ಹಾà²à²¬à³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à³à²à²³à³"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1346
+#: ../client/pk-console.c:1585
#, c-format
msgid "No new packages need to be installed"
msgstr "ಯಾವà³à²¦à³ ಹà³à²¸ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²µà³à²¦à²¿à²²à³à²²"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1352
+#: ../client/pk-console.c:1591
msgid "To install"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1603
msgid "Searching for package: "
msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²à²¾à²à²¿ ಹà³à²¡à³à²à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1368
+#: ../client/pk-console.c:1607
msgid "not found."
msgstr "à²à²à²¡à³à²¬à²à²¦à²¿à²²à³à²²."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1379
+#: ../client/pk-console.c:1618
#, c-format
msgid "No packages can be found to install"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಯಾವà³à²¦à³ ಪà³à²¯à²¾à²à³à²à³à²à²³à³ à²à²à²¡à³à²¬à²à²¦à²¿à²²à³à²²"
#. TRANSLATORS: installing new packages from package list
#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
-#: ../client/pk-console.c:1385
+#: ../client/pk-console.c:1624
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
#, c-format
msgid "Installing packages"
msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1421
+#: ../client/pk-console.c:1660
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ಪà³âಡà³à²à³ ವಿವರà²à²³à²¨à³à²¨à³ à²à²à²¡à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1429
+#: ../client/pk-console.c:1668
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "%s à²à²¾à²à²¿à²¨ à²
ಪà³âಡà³à²à³ ವಿವರà²à²³à²¨à³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à²²à³ ಠà²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1460
+#: ../client/pk-console.c:1699
msgid "Error:"
msgstr "ದà³à²·:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1713
msgid "Package description"
msgstr "ಪà³à²¯à²¾à²à³à²à³ ವಿವರಣà³"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1490
+#: ../client/pk-console.c:1729
msgid "Message:"
msgstr "ಸà²à²¦à³à²¶:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1757
msgid "Package files"
msgstr "ಪà³à²¯à²¾à²à³à²à³ à²à²¡à²¤à²à²³à³"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1526
+#: ../client/pk-console.c:1765
msgid "No files"
msgstr "ಯಾವà³à²¦à³ à²à²¡à²¤à²à²³à²¿à²²à³à²²"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1788
msgid "Repository signature required"
msgstr "ರà³à²ªà³à²¸à²¿à²à²°à²¿ ಸಹಿಯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1559
+#: ../client/pk-console.c:1798
msgid "Do you accept this signature?"
msgstr "ಸಹಿಯನà³à²¨à³ ನà³à²µà³ à²à²ªà³à²ªà²¿à²à³à²³à³à²³à³à²¤à³à²¤à³à²°à³?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1802
msgid "The signature was not accepted."
msgstr "ಸಹಿಯನà³à²¨à³ à²à²ªà³à²ªà²¿à²à³à²³à³à²³à²²à²¾à²à²¿à²²à³à²²."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1597
+#: ../client/pk-console.c:1836
msgid "End user license agreement required"
msgstr "à²à²à²¡à³ ಯà³à²¸à²°à³ ಪರವಾನà²à²¿ à²à²ªà³à²ªà²à²¦à²¦ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1604
+#: ../client/pk-console.c:1843
msgid "Do you agree to this license?"
msgstr "ನà³à²µà³ ಠಪರವಾನà²à²¿à²¯à²¨à³à²¨à³ à²à²ªà³à²ªà³à²¤à³à²¤à³à²°à³?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1847
msgid "The license was refused."
msgstr "ಪರವಾನà²à²¿à²¯à²¨à³à²¨à³ ತಿರಸà³à²à²°à²¿à²¸à²²à²¾à²à²¿à²¦à³."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1637
+#: ../client/pk-console.c:1876
msgid "The daemon crashed mid-transaction!"
msgstr "ವà³à²¯à²µà²¹à²¾à²°à²¦ ಮಧà³à²¯à²¦à²²à³à²²à²¿ ಡà³à²®à²¨à³ à²à³à²¸à²¿à²¦à³ ಹà³à²à²¿à²¦à³!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1690
+#: ../client/pk-console.c:1929
msgid "PackageKit Console Interface"
msgstr "PackageKit à²à²¨à³à²¸à³à²²à³ ಸà²à²ªà²°à³à²à²¸à²¾à²§à²¨"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1692
+#: ../client/pk-console.c:1931
msgid "Subcommands:"
msgstr "à²à²ªà²à²à³à²à³à²à²³à³:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1785 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:2024 ../client/pk-generate-pack.c:185
#: ../client/pk-monitor.c:128
#: ../contrib/command-not-found/pk-command-not-found.c:616
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
@@ -540,149 +585,147 @@ msgid "Show extra debugging information"
msgstr "ಹà³à²à³à²à²¿à²¨ ದà³à²· ನಿವಾರಣಾ ಮಾಹಿತಿಯನà³à²¨à³ ತà³à²°à²¿à²¸à³"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1788 ../client/pk-monitor.c:130
+#: ../client/pk-console.c:2027 ../client/pk-monitor.c:130
msgid "Show the program version and exit"
msgstr "ಪà³à²°à³à²à³à²°à²¾à² à²à²µà³à²¤à³à²¤à²¿à²¯à²¨à³à²¨à³ ತà³à²°à²¿à²¸à²¿ ನಿರà³à²à²®à²¿à²¸à³"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1791
+#: ../client/pk-console.c:2030
msgid "Set the filter, e.g. installed"
msgstr "ಫಿಲà³à²à²°à²¨à³à²¨à³ ಸಿದà³à²§à²à³à²³à²¿à²¸à²¿, à²à²¦à²¾. à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²¦"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1794
+#: ../client/pk-console.c:2033
msgid "Exit without waiting for actions to complete"
msgstr "à²à³à²°à²¿à²¯à³à²à²³à³ ಪà³à²°à³à²£à²à³à²³à³à²³à³à²µà²µà²°à³à²à³ à²à²¾à²¯à²¦à³ ನಿರà³à²à²®à²¿à²¸à³"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1821
+#: ../client/pk-console.c:2060
msgid "This tool could not connect to system DBUS."
msgstr "ವà³à²¯à²µà²¸à³à²¥à³à²¯ DBUS ನà³à²à²¦à²¿à²à³ ಸà²à²ªà²°à³à²à²¸à²¾à²§à²¿à²¸à²²à³à² à²à²ªà²à²°à²£à²¦à²¿à²à²¦ ಸಾಧà³à²¯à²µà²¾à²à²¿à²²à³à²²."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1911
+#: ../client/pk-console.c:2150
msgid "The filter specified was invalid"
msgstr "ಸà³à²à²¿à²¸à²²à²¾à²¦ ಫಿಲà³à²à²°à³ à²
ಮಾನà³à²¯à²µà²¾à²à²¿à²¦à³"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1930
+#: ../client/pk-console.c:2169
msgid "A search type is required, e.g. name"
msgstr "à²à²à²¦à³ ಹà³à²¡à³à²à³ ಬà²à³à²¯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³, à²à²¦à²¾. ಹà³à²¸à²°à³"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1937 ../client/pk-console.c:1946
-#: ../client/pk-console.c:1955 ../client/pk-console.c:1964
+#: ../client/pk-console.c:2176 ../client/pk-console.c:2185
+#: ../client/pk-console.c:2194 ../client/pk-console.c:2203
msgid "A search term is required"
msgstr "à²à²à²¦à³ ಹà³à²¡à³à²à³ ಪದದ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:2210
msgid "Invalid search type"
msgstr "à²
ಮಾನà³à²¯à²µà²¾à²¦ ಹà³à²¡à³à²à³ ಬà²à³"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1977
+#: ../client/pk-console.c:2216
msgid "A package name or filename to install is required"
msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ à²à²à²¦à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à³ à²
ಥವ à²à²¡à²¤à²¦ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1986
+#: ../client/pk-console.c:2225
msgid "A type, key_id and package_id are required"
msgstr "ಬà²à³, key_id ಹಾà²à³ package_id ಯ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1995
+#: ../client/pk-console.c:2234
msgid "A package name to remove is required"
msgstr "ತà³à²à³à²¦à³ ಹಾà²à²¬à³à²à²¿à²°à³à²µ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¿à²¨ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:2003
-#, fuzzy
+#: ../client/pk-console.c:2242
msgid "A destination directory and the package names to download are required"
msgstr "à²à²à²¦à³ ನಿರà³à²¦à³à²¶à²¿à²¤ à²à³à²¶ ಹಾà²à³ ಡà³à²¨à³âಲà³à²¡à³ ಮಾಡಲೠಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à³à²à²³ à²
à²à²¤à³à²¯à²µà²¿à²¦à³"
#. 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 ""
-"ಠà²à²¾à²°à³à²¯à²µà²¨à³à²¨à³ à²à³à²¨à³à²¯ ಬಾರಿà²à³ ಪà³à²°à³à²£à²à³à²³à²¿à²¸à²¦ ನà²à²¤à²° ಸಮಯವನà³à²¨à³ ಪಡà³à²¦à³à²à³à²³à³à²³à³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
+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 "à²à²à³à²à³à²¯à³ ವಿಫಲà²à³à²à²¡à²¿à²¦à³"
@@ -708,8 +751,7 @@ msgstr "ಹà³à²°à²¤à³ ಪಡಿಸಲೠà²
ವಲà²à²¬à²¨à³à²à²³ à²à²¡à²¤
#. TRANSLATORS: the output location
#: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
+msgid "The output file or directory (the current directory is used if ommitted)"
msgstr "à²à²à³âಪà³à²à³ à²à²¡à²¤ à²
ಥವ à²à³à²¶ (ಹà³à²°à²¤à³à²ªà²¡à²¿à²¸à²¿à²¦à²°à³ ಪà³à²°à²¸à²à³à²¤ à²à³à²¶à²µà²¨à³à²¨à³ ಬಳಸಲಾà²à³à²µà³à²¦à³)"
#. TRANSLATORS: put a list of packages in the pack
@@ -812,7 +854,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 +934,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 +1022,46 @@ msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ದಯವಿà²à³à²à³ à²à²à²¦à
#. TRANSLATORS: we are starting to install the packages
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
-#, fuzzy
msgid "Starting install"
-msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³"
+msgstr "à²
ನà³à²¸à³à²¥à²¾à²ªà²¨à³à²¯à²¨à³à²¨à³ à²à²°à²à²à²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: we couldn't find the package name, non-fatal
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
-#, fuzzy, c-format
+#, c-format
msgid "Failed to find the package %s, or already installed: %s"
-msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ à²à²à²¾à²à²²à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²¦à³"
+msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ ಹà³à²¡à³à²à²²à³ ವಿಫಲà²à³à²à²¡à²¿à²¦à³, à²
ಥವ à²à²à²¾à²à²²à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à²¿à²¦à³: %s"
#. command line argument, simulate what would be done, but don't actually do it
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ನಿà²à²µà²¾à²à²¿à²¯à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡, à²à²¨à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¦à³ à²à²¨à³à²¨à³à²µà³à²¦à²¨à³à²¨à³ ತà³à²°à²¿à²¸à³"
#. command line argument, do we skip packages that depend on the ones specified
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "ಪà³à²°à²®à³à² ಪà³à²¯à²¾à²à³à²à³à²à²³ à²
ವಲà²à²à²¨à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²¬à³à²¡"
#. command line argument, do we operate quietly
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
msgid "Do not display information or progress"
-msgstr ""
+msgstr "ಮಾಹಿತಿಯನà³à²¨à³ à²
ಥವ ಪà³à²°à²à²¤à²¿à²¯à²¨à³à²¨à³ ತà³à²°à²¿à²¸à²¬à³à²¡"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
-#, fuzzy
msgid "PackageKit Debuginfo Installer"
-msgstr "PackageKit à²à²¨à³à²¸à³à²²à³ ಸà²à²ªà²°à³à²à²¸à²¾à²§à²¨"
+msgstr "PackageKit Debuginfo à²
ನà³à²¸à³à²¥à²¾à²ªà²"
#. TRANSLATORS: the use needs to specify a list of package names on the command line
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
-#, fuzzy, c-format
+#, c-format
msgid "ERROR: Specify package names to install."
-msgstr "ಯಾವà³à²¦à³ ಹà³à²¸ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à²¾à²à³à²µà³à²¦à²¿à²²à³à²²"
+msgstr "ERROR: à²
ನà³à²¸à³à²¥à²¾à²ªà²¿à²¸à²²à³ ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à³à²à²³à²¨à³à²¨à³ ಸà³à²à²¿à²¸à²¿."
#. TRANSLATORS: we are getting the list of repositories
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
-#, fuzzy, c-format
+#, c-format
msgid "Getting sources list"
-msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
+msgstr "à²à²à²°à²à²³ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: all completed 100%
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
@@ -1036,31 +1073,31 @@ msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಪà²à³à²à²¿à²¯à²¨à³à²¨à³ ಪಡà³à²¯à
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
#, c-format
msgid "OK."
-msgstr ""
+msgstr "ಸರಿ."
#. TRANSLATORS: tell the user what we found
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
#, c-format
msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "%i ಶà²à³à²¤à²à³à²à²¡ ಹಾà²à³ %i à²
ಶà²à³à²¤à²à³à²à²¡ à²à²à²°à²à²³à³ à²à²à²¡à³à²¬à²à²¦à²¿à²µà³."
#. TRANSLATORS: we're finding repositories that match out pattern
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
#, c-format
msgid "Finding debugging sources"
-msgstr ""
+msgstr "ದà³à²· ನಿವಾರಣಾ à²à²à²°à²à²³à³ à²à²à²¡à³à²¬à²à²¦à²¿à²µà³"
#. TRANSLATORS: tell the user what we found
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
#, c-format
msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "%i à²
ಶà²à³à²¤à²à³à²à²¡ debuginfo ರà³à²ªà³à²à²³à³ à²à²à²¡à³à²¬à²à²¦à²¿à²µà³."
#. TRANSLATORS: we're now enabling all the debug sources we found
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:691
#, c-format
msgid "Enabling debugging sources"
-msgstr ""
+msgstr "ದà³à²· ನಿವಾರಣಾ à²à²à²°à²à²³à²¨à³à²¨à³ ಶà²à³à²¤à²à³à²³à²¿à²¸à²²à²¾à²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: operation was not successful
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
@@ -1069,199 +1106,189 @@ msgstr ""
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
msgid "FAILED."
-msgstr ""
+msgstr "FAILED."
#. TRANSLATORS: tell the user how many we enabled
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
#, c-format
msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "%i ದà³à²·à²¨à²¿à²µà²¾à²°à²£à²¾ à²à²à²°à²à²³à²¨à³à²¨à³ ಶà²à³à²¤à²à³à²³à²¿à²¸à²²à²¾à²à²¿à²¦à³."
#. TRANSLATORS: we're now finding packages that match in all the repos
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
-#, fuzzy, c-format
+#, c-format
msgid "Finding debugging packages"
-msgstr "ಪà³à²¯à²¾à²à³à²à²¿à²¨ ಹà³à²¸à²°à²¨à³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲಾà²à³à²¤à³à²¤à²¿à²¦à³."
+msgstr "ದà³à²·à²¨à²¿à²µà²¾à²°à²£à²¾ ಪà³à²¯à²¾à²à³à²à³à²à²³à²¨à³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲಾà²à³à²¤à³à²¤à²¿à²¦à³"
#. TRANSLATORS: we couldn't find the package name, non-fatal
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
-#, fuzzy, c-format
+#, c-format
msgid "Failed to find the package %s: %s"
-msgstr "ಪà³à²¯à²¾à²à³à²à³ '%s' à²
ನà³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲಾà²à²²à²¿à²²à³à²²: %s"
+msgstr "ಪà³à²¯à²¾à²à³à²à³ %s à²
ನà³à²¨à³ ಪತà³à²¤à³ ಮಾಡà³à²µà²²à³à²²à²¿ ವಿಫಲà²à³à²à²¡à²¿à²¦à³: %s"
#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
-#, fuzzy, c-format
+#, c-format
msgid "Failed to find the debuginfo package %s: %s"
-msgstr "ಪà³à²¯à²¾à²à³à²à³ '%s' à²
ನà³à²¨à³ ಪತà³à²¤à³ ಮಾಡಲಾà²à²²à²¿à²²à³à²²: %s"
+msgstr "debuginfo ಪà³à²¯à²¾à²à³à²à³ %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,8 +1317,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
@@ -1302,8 +1328,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"
@@ -1318,9 +1343,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"
@@ -1334,8 +1358,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"
@@ -1396,7 +1419,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
@@ -1469,8 +1492,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
@@ -1518,43 +1540,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 ea634443f4c349fed5e398b443b71b34dee736ef
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 12:52:53 2009 +0100
trivial: post release version bump
diff --git a/configure.ac b/configure.ac
index 9973a36..79e6d83 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ(2.52)
m4_define([pk_major_version], [0])
m4_define([pk_minor_version], [5])
-m4_define([pk_micro_version], [2])
+m4_define([pk_micro_version], [3])
m4_define([pk_version],
[pk_major_version.pk_minor_version.pk_micro_version])
commit bf3cb21bed18af102d30011c63459c2c6e03c823
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 11:19:48 2009 +0100
glib2: Add some self tests that fail for downloading
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 8906ce3..a2b4016 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -3351,6 +3351,50 @@ pk_client_test_cancel (GCancellable *cancellable)
return FALSE;
}
+static void
+pk_client_test_download_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+ PkClient *client = PK_CLIENT (object);
+ GError *error = NULL;
+ PkResults *results = NULL;
+ PkExitEnum exit_enum;
+ const PkResultItemFiles *item;
+ GPtrArray *array = NULL;
+ guint len;
+
+ /* get the results */
+ results = pk_client_generic_finish (client, res, &error);
+ if (results == NULL) {
+ egg_test_failed (test, "failed to download: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+ egg_test_failed (test, "failed to download: %s", pk_exit_enum_to_text (exit_enum));
+
+ /* check number */
+ array = pk_results_get_files_array (results);
+ if (array->len != 1)
+ egg_test_failed (test, "invalid number of files: %i", array->len);
+
+ /* check a result */
+ item = g_ptr_array_index (array, 0);
+ if (item->package_id != NULL)
+ egg_test_failed (test, "invalid package_id: %s, expecting NULL", item->package_id);
+ len = g_strv_length (item->files);
+ if (len != 2)
+ egg_test_failed (test, "invalid number of files: %i", len);
+ if (g_strcmp0 (item->files[0], "/tmp/powertop-1.8-1.fc8.rpm") != 0)
+ egg_test_failed (test, "invalid filename: %s, maybe not rewritten", item->files[0]);
+out:
+ g_ptr_array_unref (array);
+ if (results != NULL)
+ g_object_unref (results);
+ egg_test_loop_quit (test);
+}
+
void
pk_client_test (gpointer user_data)
{
@@ -3477,6 +3521,15 @@ pk_client_test (gpointer user_data)
egg_test_loop_wait (test, 15000);
egg_test_success (test, "cancelled in %i", egg_test_elapsed (test));
+ /************************************************************/
+ egg_test_title (test, "do downloads");
+ package_ids = pk_package_ids_from_id ("powertop;1.8-1.fc8;i386;fedora");
+ pk_client_download_packages_async (client, package_ids, "/tmp", cancellable,
+ (PkProgressCallback) pk_client_test_progress_cb, test,
+ (GAsyncReadyCallback) pk_client_test_download_cb, test);
+ g_strfreev (package_ids);
+ egg_test_loop_wait (test, 15000);
+
g_object_unref (cancellable);
g_object_unref (client);
commit a37239a57cb6e27d9d562f4e20fd91340350e717
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Sep 7 11:01:18 2009 +0100
glib2: start to convert PkServicePack to using glib2 async methods
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index b2296cd..800ac3d 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -41,6 +41,7 @@ libpackagekit_glib2_include_HEADERS = \
pk-package-ids.h \
pk-package-sack.h \
pk-progress.h \
+ pk-service-pack.h \
pk-results.h \
pk-task.h \
$(NULL)
@@ -75,6 +76,8 @@ libpackagekit_glib2_la_SOURCES = \
pk-package-sack.h \
pk-progress.c \
pk-progress.h \
+ pk-service-pack.c \
+ pk-service-pack.h \
pk-results.c \
pk-results.h \
pk-task.c \
diff --git a/lib/packagekit-glib2/packagekit.h b/lib/packagekit-glib2/packagekit.h
index 36c2a14..23c72e5 100644
--- a/lib/packagekit-glib2/packagekit.h
+++ b/lib/packagekit-glib2/packagekit.h
@@ -33,6 +33,7 @@
#include <packagekit-glib2/pk-package-ids.h>
#include <packagekit-glib2/pk-package-sack.h>
#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-service-pack.h>
#include <packagekit-glib2/pk-task.h>
#include <packagekit-glib2/pk-version.h>
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
new file mode 100644
index 0000000..52203f2
--- /dev/null
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -0,0 +1,1231 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ * Copyright (C) 2008 Shishir Goel <crazyontheedge at gmail.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.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <fcntl.h>
+
+#ifdef HAVE_ARCHIVE_H
+#include <archive.h>
+#include <archive_entry.h>
+#endif /* HAVE_ARCHIVE_H */
+
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <gio/gio.h>
+
+#include <packagekit-glib2/pk-service-pack.h>
+#include <packagekit-glib2/pk-common.h>
+#include <packagekit-glib2/pk-enum.h>
+#include <packagekit-glib2/pk-results.h>
+#include <packagekit-glib2/pk-client.h>
+#include <packagekit-glib2/pk-package-ids.h>
+
+#include "egg-debug.h"
+#include "egg-string.h"
+
+#define PK_SERVICE_PACK_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_SERVICE_PACK, PkServicePackPrivate))
+
+typedef enum {
+ PK_SERVICE_PACK_TYPE_UPDATE,
+ PK_SERVICE_PACK_TYPE_INSTALL,
+ PK_SERVICE_PACK_TYPE_UNKNOWN
+} PkServicePackType;
+
+/**
+ * PkServicePackState:
+ *
+ * For use in the async methods
+ **/
+typedef struct {
+ gboolean ret;
+ gchar *filename;
+ gchar **package_ids;
+ gchar **package_ids_exclude;
+ gpointer progress_user_data;
+ guint request;
+ GCancellable *cancellable;
+ GSimpleAsyncResult *res;
+ PkProgressCallback progress_callback;
+ PkServicePack *pack;
+ PkServicePackType type;
+} PkServicePackState;
+
+struct PkServicePackPrivate
+{
+ gchar *directory;
+ PkClient *client;
+};
+
+G_DEFINE_TYPE (PkServicePack, pk_service_pack, G_TYPE_OBJECT)
+
+/**
+ * pk_service_pack_error_quark:
+ *
+ * Return value: Our personal error quark.
+ **/
+GQuark
+pk_service_pack_error_quark (void)
+{
+ static GQuark quark = 0;
+ if (!quark)
+ quark = g_quark_from_static_string ("pk_service_pack_error");
+ return quark;
+}
+
+/**
+ * pk_service_pack_error_get_type:
+ **/
+#define ENUM_ENTRY(NAME, DESC) { NAME, "" #NAME "", DESC }
+GType
+pk_service_pack_error_get_type (void)
+{
+ static GType etype = 0;
+
+ if (etype == 0) {
+ static const GEnumValue values[] =
+ {
+ ENUM_ENTRY (PK_SERVICE_PACK_ERROR_FAILED_SETUP, "FailedSetup"),
+ ENUM_ENTRY (PK_SERVICE_PACK_ERROR_FAILED_DOWNLOAD, "FailedDownload"),
+ ENUM_ENTRY (PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION, "FailedExtraction"),
+ ENUM_ENTRY (PK_SERVICE_PACK_ERROR_FAILED_CREATE, "FailedCreate"),
+ ENUM_ENTRY (PK_SERVICE_PACK_ERROR_NOTHING_TO_DO, "NothingToDo"),
+ ENUM_ENTRY (PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE, "NotCompatible"),
+ { 0, NULL, NULL }
+ };
+ etype = g_enum_register_static ("PkServicePackError", values);
+ }
+ return etype;
+}
+
+/**
+ * pk_service_pack_check_metadata_file:
+ **/
+static gboolean
+pk_service_pack_check_metadata_file (const gchar *full_path, GError **error)
+{
+ GKeyFile *file;
+ gboolean ret;
+ GError *error_local = NULL;
+ gchar *type = NULL;
+ gchar *distro_id = NULL;
+ gchar *distro_id_us = NULL;
+
+ /* load the file */
+ file = g_key_file_new ();
+ ret = g_key_file_load_from_file (file, full_path, G_KEY_FILE_NONE, &error_local);
+ if (!ret) {
+ *error = g_error_new (1, 0, "failed to load file: %s", error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ /* read the value */
+ distro_id = g_key_file_get_string (file, PK_SERVICE_PACK_GROUP_NAME, "distro_id", &error_local);
+ if (distro_id == NULL) {
+ *error = g_error_new (1, 0, "failed to get value: %s", error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* read the value */
+ type = g_key_file_get_string (file, PK_SERVICE_PACK_GROUP_NAME, "type", &error_local);
+ if (type == NULL) {
+ *error = g_error_new (1, 0, "failed to get type: %s", error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* check the types we support */
+ if (g_strcmp0 (type, "update") != 0 && g_strcmp0 (type, "install") != 0) {
+ *error = g_error_new (1, 0, "does not have correct type key: %s", type);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* get this system id */
+ distro_id_us = pk_get_distro_id ();
+
+ /* do we match? */
+ ret = (g_strcmp0 (distro_id_us, distro_id) == 0);
+ if (!ret)
+ *error = g_error_new (1, 0, "distro id did not match %s == %s", distro_id_us, distro_id);
+
+out:
+ g_key_file_free (file);
+ g_free (type);
+ g_free (distro_id);
+ g_free (distro_id_us);
+ return ret;
+}
+
+/**
+ * pk_service_pack_extract:
+ * @directory: the directory to unpack into
+ * @error: a valid %GError
+ *
+ * Decompress a tar file
+ *
+ * Return value: %TRUE if the file was decompressed
+ **/
+#ifdef HAVE_ARCHIVE_H
+static gboolean
+pk_service_pack_extract (const gchar *filename, const gchar *directory, GError **error)
+{
+ gboolean ret = FALSE;
+ struct archive *arch = NULL;
+ struct archive_entry *entry;
+ int r;
+ int retval;
+ gchar *retcwd;
+ gchar buf[PATH_MAX];
+
+ /* save the PWD as we chdir to extract */
+ retcwd = getcwd (buf, PATH_MAX);
+ if (retcwd == NULL) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+ "failed to get cwd");
+ goto out;
+ }
+
+ /* we can only read tar achives */
+ arch = archive_read_new ();
+ archive_read_support_format_tar (arch);
+
+ /* open the tar file */
+ r = archive_read_open_file (arch, filename, 10240);
+ if (r) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+ "cannot open: %s", archive_error_string (arch));
+ goto out;
+ }
+
+ /* switch to our destination directory */
+ retval = chdir (directory);
+ if (retval != 0) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+ "failed chdir to %s", directory);
+ goto out;
+ }
+
+ /* decompress each file */
+ for (;;) {
+ r = archive_read_next_header (arch, &entry);
+ if (r == ARCHIVE_EOF)
+ break;
+ if (r != ARCHIVE_OK) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+ "cannot read header: %s", archive_error_string (arch));
+ goto out;
+ }
+ r = archive_read_extract (arch, entry, 0);
+ if (r != ARCHIVE_OK) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+ "cannot extract: %s", archive_error_string (arch));
+ goto out;
+ }
+ }
+
+ /* completed all okay */
+ ret = TRUE;
+out:
+ /* close the archive */
+ if (arch != NULL) {
+ archive_read_close (arch);
+ archive_read_finish (arch);
+ }
+
+ /* switch back to PWD */
+ retval = chdir (buf);
+ if (retval != 0)
+ egg_warning ("cannot chdir back!");
+
+ return ret;
+}
+#else /* HAVE_ARCHIVE_H */
+static gboolean
+pk_service_pack_extract (const gchar *filename, const gchar *directory, GError **error)
+{
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+ "The service pack %s cannot be extracted as PackageKit was not built with libarchive support", filename);
+ return FALSE;
+}
+#endif /* HAVE_ARCHIVE_H */
+
+/**
+ * pk_service_pack_get_random:
+ **/
+static gchar *
+pk_service_pack_get_random (const gchar *prefix, guint length)
+{
+ guint32 n;
+ gchar *str;
+ guint i;
+ guint prefix_len;
+
+ /* make a string to hold both parts */
+ prefix_len = egg_strlen (prefix, 28);
+ str = g_strnfill (length + prefix_len, 'X');
+
+ /* copy over prefix */
+ for (i=0; i<prefix_len; i++)
+ str[i] = prefix[i];
+
+ /* use random string */
+ for (i=prefix_len; i<length+prefix_len; i++) {
+ n = g_random_int_range (97, 122);
+ str[i] = (gchar) n;
+ }
+ return str;
+}
+
+/**
+ * pk_service_pack_create_temporary_directory:
+ **/
+static gchar *
+pk_service_pack_create_temporary_directory (const gchar *prefix)
+{
+ gboolean ret;
+ gchar *random;
+ gchar *directory = NULL;
+
+ /* ensure path does not already exist */
+ do {
+ /* last iter results, or NULL */
+ g_free (directory);
+
+ /* get a random path */
+ random = pk_service_pack_get_random (prefix, 8);
+
+ /* ITS4: ignore, the user has no control over the daemon envp */
+ directory = g_build_filename (g_get_tmp_dir (), random, NULL);
+ g_free (random);
+ ret = g_file_test (directory, G_FILE_TEST_IS_DIR);
+ } while (ret);
+
+ /* create so only user (root) has rwx access */
+ g_mkdir (directory, 0700);
+
+ return directory;
+}
+
+/**
+ * pk_service_pack_check_valid:
+ * @pack: a valid #PkServicePack instance
+ * @error: a %GError to put the error code and message in, or %NULL
+ *
+ * Checks to see if a service pack file is valid, and usable with this system.
+ *
+ * Return value: %TRUE if the service pack is valid
+ **/
+gboolean
+pk_service_pack_check_valid (PkServicePack *pack, const gchar *filename, GError **error)
+{
+ gboolean ret = TRUE;
+ gchar *directory = NULL;
+ gchar *metafile = NULL;
+ GDir *dir = NULL;
+ const gchar *filename_entry;
+ GError *error_local = NULL;
+
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
+ g_return_val_if_fail (filename != NULL, FALSE);
+
+ /* create a random directory */
+ directory = pk_service_pack_create_temporary_directory ("PackageKit-");
+ ret = pk_service_pack_extract (filename, directory, &error_local);
+ if (!ret) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, error_local->code,
+ "failed to check %s: %s", filename, error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+ /* get the files */
+ dir = g_dir_open (directory, 0, NULL);
+ if (dir == NULL) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+ "failed to get directory for %s", directory);
+ ret = FALSE;
+ goto out;
+ }
+
+ /* find the file, and check the metadata */
+ while ((filename_entry = g_dir_read_name (dir))) {
+ metafile = g_build_filename (directory, filename_entry, NULL);
+ if (g_strcmp0 (filename_entry, "metadata.conf") == 0) {
+ ret = pk_service_pack_check_metadata_file (metafile, &error_local);
+ if (!ret) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE,
+ "Service Pack %s not compatible with your distro: %s", filename, error_local->message);
+ g_error_free (error_local);
+ ret = FALSE;
+ goto out;
+ }
+ }
+ g_free (metafile);
+ }
+out:
+ g_rmdir (directory);
+ g_free (directory);
+ if (dir != NULL)
+ g_dir_close (dir);
+ return ret;
+}
+
+/**
+ * pk_service_pack_set_temp_directory:
+ * @pack: a valid #PkServicePack instance
+ * @directory: the directory to use, or %NULL to use the default
+ *
+ * Sets the directory to use when decompressing the service pack
+ *
+ * Return value: %TRUE if the directory was set
+ **/
+gboolean
+pk_service_pack_set_temp_directory (PkServicePack *pack, const gchar *directory)
+{
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
+ g_free (pack->priv->directory);
+
+ /* use default */
+ if (directory == NULL)
+ directory = pk_service_pack_create_temporary_directory ("PackageKit-");
+
+ pack->priv->directory = g_strdup (directory);
+ return TRUE;
+}
+
+#if 0
+/**
+ * pk_service_pack_download_package_ids:
+ **/
+static gboolean
+pk_service_pack_download_package_ids (PkServicePack *pack, gchar **package_ids, GError **error)
+{
+ gboolean ret;
+ GError *error_local = NULL;
+
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
+ g_return_val_if_fail (package_ids != NULL, FALSE);
+ g_return_val_if_fail (pack->priv->directory != NULL, FALSE);
+
+ egg_debug ("download+ %s", package_ids[0]);
+ ret = pk_client_download_packages (pack->priv->client, package_ids, pack->priv->directory, &error_local);
+ if (!ret) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_DOWNLOAD,
+ "failed to download: %s", error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+out:
+ return ret;
+}
+#endif
+
+#if 0
+/**
+ * pk_service_pack_exclude_packages:
+ **/
+static gboolean
+pk_service_pack_exclude_packages (PkServicePack *pack, gchar **package_ids)
+{
+ guint i;
+ guint length;
+ gboolean found;
+
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
+ g_return_val_if_fail (package_ids != NULL, FALSE);
+
+ /* do not just download everything, uselessly */
+ length = pk_package_list_get_size (package_ids);
+ for (i=0; i<length; i++) {
+ obj = pk_package_list_get_obj (package_ids, i);
+ /* will just ignore if the obj is not there */
+ found = pk_obj_list_remove (PK_OBJ_LIST(list), obj);
+ if (found)
+ egg_debug ("removed %s", obj->id->name);
+ }
+ return TRUE;
+}
+#endif
+
+#ifdef HAVE_ARCHIVE_H
+/**
+ * pk_service_pack_create_metadata_file:
+ **/
+static gboolean
+pk_service_pack_create_metadata_file (PkServicePackState *state)
+{
+ gboolean ret = FALSE;
+ gchar *distro_id = NULL;
+ gchar *iso_time = NULL;
+ GError *error = NULL;
+ GKeyFile *file = NULL;
+ gchar *data = NULL;
+
+ g_return_val_if_fail (state->filename != NULL, FALSE);
+ g_return_val_if_fail (state->type != PK_SERVICE_PACK_TYPE_UNKNOWN, FALSE);
+
+ file = g_key_file_new ();
+
+ /* get needed data */
+ distro_id = pk_get_distro_id ();
+ if (distro_id == NULL)
+ goto out;
+ iso_time = pk_iso8601_present ();
+ if (iso_time == NULL)
+ goto out;
+
+ g_key_file_set_string (file, PK_SERVICE_PACK_GROUP_NAME, "distro_id", distro_id);
+ g_key_file_set_string (file, PK_SERVICE_PACK_GROUP_NAME, "created", iso_time);
+
+ if (state->type == PK_SERVICE_PACK_TYPE_INSTALL)
+ g_key_file_set_string (file, PK_SERVICE_PACK_GROUP_NAME, "type", "install");
+ else if (state->type == PK_SERVICE_PACK_TYPE_UPDATE)
+ g_key_file_set_string (file, PK_SERVICE_PACK_GROUP_NAME, "type", "update");
+
+ /* convert to text */
+ data = g_key_file_to_data (file, NULL, &error);
+ if (data == NULL) {
+ egg_warning ("failed to convert to text: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* save contents */
+ ret = g_file_set_contents (state->filename, data, -1, &error);
+ if (!ret) {
+ egg_warning ("failed to save file: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+
+out:
+ g_key_file_free (file);
+ g_free (data);
+ g_free (distro_id);
+ g_free (iso_time);
+ return ret;
+}
+
+/**
+ * pk_service_pack_archive_add_file:
+ **/
+static gboolean
+pk_service_pack_archive_add_file (struct archive *arch, const gchar *filename, GError **error)
+{
+ int retval;
+ int len;
+ int fd = -1;
+ int wrote;
+ gboolean ret = FALSE;
+ gchar *filename_basename = NULL;
+ struct archive_entry *entry = NULL;
+ struct stat st;
+ gchar buff[8192];
+
+ /* stat file */
+ retval = stat (filename, &st);
+ if (retval != 0) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+ "file not found %s", filename);
+ goto out;
+ }
+ egg_debug ("stat(%s), size=%lu bytes\n", filename, (glong) st.st_size);
+
+ /* create new entry */
+ entry = archive_entry_new ();
+ archive_entry_copy_stat (entry, &st);
+ filename_basename = g_path_get_basename (filename);
+ archive_entry_set_pathname (entry, filename_basename);
+
+ /* ._BIG FAT BUG_. We should not have to do this, as it should be
+ * set from archive_entry_copy_stat() */
+ archive_entry_set_size (entry, st.st_size);
+
+ /* write header */
+ retval = archive_write_header (arch, entry);
+ if (retval != ARCHIVE_OK) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+ "failed to write header: %s\n", archive_error_string (arch));
+ goto out;
+ }
+
+ /* open file to copy */
+ fd = open (filename, O_RDONLY);
+ if (fd < 0) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+ "failed to get fd for %s", filename);
+ goto out;
+ }
+
+ /* ITS4: ignore, buffer statically preallocated */
+ len = read (fd, buff, sizeof (buff));
+ /* write data to archive -- how come no convenience function? */
+ while (len > 0) {
+ wrote = archive_write_data (arch, buff, len);
+ if (wrote != len)
+ egg_warning("wrote %i instead of %i\n", wrote, len);
+ /* ITS4: ignore, buffer statically preallocated */
+ len = read (fd, buff, sizeof (buff));
+ }
+ ret = TRUE;
+out:
+ if (fd >= 0)
+ close (fd);
+ if (entry != NULL)
+ archive_entry_free (entry);
+ g_free (filename_basename);
+ return ret;
+}
+
+/**
+ * pk_service_pack_create_from_files:
+ **/
+static gboolean
+pk_service_pack_create_from_files (PkServicePackState *state, gchar **file_array, GError **error)
+{
+ struct archive *arch = NULL;
+ gboolean ret = FALSE;
+ guint i;
+ gchar *filename;
+ gchar **files_and_metadata = NULL;
+
+ g_return_val_if_fail (file_array != NULL, FALSE);
+ g_return_val_if_fail (error != NULL, FALSE);
+
+ /* create a file with metadata in it */
+ filename = g_build_filename (g_get_tmp_dir (), "metadata.conf", NULL);
+ ret = pk_service_pack_create_metadata_file (state);
+ if (!ret) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+ "failed to generate metadata file %s", filename);
+ goto out;
+ }
+ files_and_metadata = pk_package_ids_add_id (file_array, filename);
+
+ /* we can only write tar achives */
+ arch = archive_write_new ();
+ archive_write_set_compression_none (arch);
+ archive_write_set_format_ustar (arch);
+ archive_write_open_filename (arch, state->filename);
+
+ /* for each filename */
+ for (i=0; files_and_metadata[i] != NULL; i++) {
+ /* try to add to archive */
+ ret = pk_service_pack_archive_add_file (arch, files_and_metadata[i], error);
+ if (!ret)
+ goto out;
+ }
+
+ /* completed all okay */
+ ret = TRUE;
+out:
+ g_strfreev (files_and_metadata);
+ g_free (filename);
+ /* delete each filename */
+ for (i=0; file_array[i] != NULL; i++)
+ g_remove (file_array[i]);
+
+ /* close the archive */
+ if (arch != NULL) {
+ archive_write_close (arch);
+ archive_write_finish (arch);
+ }
+ return ret;
+}
+#else
+/**
+ * pk_service_pack_create_from_files:
+ **/
+static gboolean
+pk_service_pack_create_from_files (PkServicePackState *state, GPtrArray *file_array, GError **error)
+{
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+ "The service pack %s cannot be created as PackageKit was not built with libarchive support", pack->priv->filename);
+ return FALSE;
+}
+#endif
+
+#if 0
+/**
+ * pk_service_pack_scan_files_in_directory:
+ **/
+static GPtrArray *
+pk_service_pack_scan_files_in_directory (PkServicePack *pack)
+{
+ gchar *src;
+ GPtrArray *file_array = NULL;
+ GDir *dir;
+ const gchar *filename;
+
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), NULL);
+ g_return_val_if_fail (pack->priv->directory != NULL, NULL);
+
+ /* try and open the directory */
+ dir = g_dir_open (pack->priv->directory, 0, NULL);
+ if (dir == NULL) {
+ egg_warning ("failed to get directory for %s", pack->priv->directory);
+ goto out;
+ }
+
+ /* add each file to an array */
+ file_array = g_ptr_array_new ();
+ while ((filename = g_dir_read_name (dir))) {
+ src = g_build_filename (pack->priv->directory, filename, NULL);
+ g_ptr_array_add (file_array, src);
+ }
+ g_dir_close (dir);
+out:
+ return file_array;
+}
+#endif
+
+#if 0
+/**
+ * pk_service_pack_package_cb:
+ **/
+static void
+pk_service_pack_package_cb (PkClient *client, const PkPackageObj *obj, PkServicePack *pack)
+{
+ g_return_if_fail (PK_IS_SERVICE_PACK (pack));
+
+ /* only shown downloading */
+ if (obj->info != PK_INFO_ENUM_DOWNLOADING)
+ return;
+}
+
+/**
+ * pk_service_pack_create_for_package_ids_internal:
+ **/
+static gboolean
+pk_service_pack_create_for_package_ids_internal (PkServicePack *pack, gchar **package_ids, GError **error)
+{
+ gchar **package_ids_deps = NULL;
+ PkPackageList *list = NULL;
+ guint length;
+ GPtrArray *file_array = NULL;
+ GError *error_local = NULL;
+ gboolean ret = FALSE;
+
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), FALSE);
+ g_return_val_if_fail (package_ids != NULL, FALSE);
+ g_return_val_if_fail (error != NULL, FALSE);
+ g_return_val_if_fail (state->filename != NULL, FALSE);
+ g_return_val_if_fail (pack->priv->directory != NULL, FALSE);
+
+ /* remove some deps */
+ pk_package_list_set_fuzzy_arch (list, TRUE);
+ pk_service_pack_exclude_packages (pack, list);
+
+ /* get the deps */
+ length = pk_package_list_get_size (list);
+ if (length != 0) {
+ /* download additional package_ids */
+ package_ids_deps = pk_package_list_to_strv (list);
+ pk_service_pack_status_changed (pack, PK_SERVICE_PACK_STATUS_DOWNLOAD_DEPENDENCIES);
+ ret = pk_service_pack_download_package_ids (pack, package_ids_deps, &error_local);
+ g_strfreev (package_ids_deps);
+
+ /* failed to get deps */
+ if (!ret) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, error_local->code,
+ "failed to download deps of package: %s", error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+ }
+
+ /* find packages that were downloaded */
+ file_array = pk_service_pack_scan_files_in_directory (pack);
+ if (file_array == NULL) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+ "failed to scan directory: %s", pack->priv->directory);
+ goto out;
+ }
+
+ /* generate pack file */
+ ret = pk_service_pack_create_from_files (pack, file_array, &error_local);
+ if (!ret) {
+ *error = g_error_new (PK_SERVICE_PACK_ERROR, error_local->code,
+ "failed to create archive: %s", error_local->message);
+ g_error_free (error_local);
+ goto out;
+ }
+
+out:
+ if (list != NULL)
+ g_object_unref (list);
+ if (file_array != NULL) {
+ g_ptr_array_foreach (file_array, (GFunc) g_free, NULL);
+ g_ptr_array_free (file_array, TRUE);
+ }
+ return ret;
+}
+#endif
+
+/**
+ * pk_service_pack_generic_state_finish:
+ **/
+static void
+pk_service_pack_generic_state_finish (PkServicePackState *state, const GError *error)
+{
+ /* remove weak ref */
+ if (state->pack != NULL)
+ g_object_remove_weak_pointer (G_OBJECT (state->pack), (gpointer) &state->pack);
+
+ /* get result */
+ if (state->ret) {
+ g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
+ } 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);
+
+ /* deallocate */
+ if (state->cancellable != NULL)
+ g_object_unref (state->cancellable);
+ g_strfreev (state->package_ids);
+ g_strfreev (state->package_ids_exclude);
+ g_free (state->filename);
+ g_object_unref (state->res);
+ g_slice_free (PkServicePackState, state);
+}
+
+/**
+ * pk_service_pack_download_ready_cb:
+ **/
+static void
+pk_service_pack_download_ready_cb (GObject *source_object, GAsyncResult *res, PkServicePackState *state)
+{
+ PkServicePack *pack = PK_SERVICE_PACK (source_object);
+ GError *error = NULL;
+ PkResults *results;
+ PkExitEnum exit_enum;
+ gboolean ret;
+ gchar **files = NULL;
+
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(pack), res, &error);
+ if (results == NULL) {
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ error = g_error_new (1, 0, "failed to download");
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* now create pack */
+ egg_error ("todo");
+ ret = pk_service_pack_create_from_files (state, files, &error);
+ if (!ret) {
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* we can't handle this, just finish the async method */
+ state->ret = TRUE;
+
+ /* we're done */
+ pk_service_pack_generic_state_finish (state, error);
+out:
+ g_strfreev (files);
+ if (results != NULL)
+ g_object_unref (results);
+ return;
+}
+
+/**
+ * pk_service_pack_get_depends_ready_cb:
+ **/
+static void
+pk_service_pack_get_depends_ready_cb (GObject *source_object, GAsyncResult *res, PkServicePackState *state)
+{
+ PkServicePack *pack = PK_SERVICE_PACK (source_object);
+ GError *error = NULL;
+ PkResults *results;
+ PkExitEnum exit_enum;
+ GPtrArray *array = NULL;
+ guint i;
+ const PkResultItemPackage *package;
+ gchar **package_ids = NULL;
+ gchar **package_ids_to_download = NULL;
+
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(pack), res, &error);
+ if (results == NULL) {
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ error = g_error_new (1, 0, "failed to download");
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* add all the results to the existing list */
+ array = pk_results_get_package_array (results);
+ package_ids = g_new0 (gchar *, array->len + 1);
+ for (i=0; i<array->len; i++) {
+ package = g_ptr_array_index (array, i);
+ package_ids[i] = g_strdup (package->package_id);
+ }
+ package_ids_to_download = pk_package_ids_add_ids (state->package_ids, package_ids);
+
+ /* now download */
+ pk_client_download_packages_async (PK_CLIENT(state->pack), package_ids_to_download, pack->priv->directory,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_service_pack_download_ready_cb, state);
+out:
+ g_strfreev (package_ids);
+ g_strfreev (package_ids_to_download);
+ if (array != NULL)
+ g_ptr_array_unref (array);
+ if (results != NULL)
+ g_object_unref (results);
+ return;
+}
+
+/**
+ * pk_service_pack_create_for_package_ids_async:
+ * @pack: a valid #PkServicePack instance
+ * @filename: the filename of the service pack
+ * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @package_ids_exclude: An array of packages to exclude
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @user_data: the data to pass to @callback
+ *
+ * Create a service pack for the specified Package IDs
+ **/
+void
+pk_service_pack_create_for_package_ids_async (PkServicePack *pack, const gchar *filename, gchar **package_ids,
+ gchar **package_ids_exclude, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkServicePackState *state;
+
+ g_return_if_fail (PK_IS_SERVICE_PACK (pack));
+ g_return_if_fail (callback != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (pack), callback, user_data, pk_service_pack_create_for_package_ids_async);
+
+ /* save state */
+ state = g_slice_new0 (PkServicePackState);
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->pack = pack;
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->filename = g_strdup (filename);
+ state->package_ids = g_strdupv (package_ids);
+ state->package_ids_exclude = g_strdupv (package_ids_exclude);
+ state->type = PK_SERVICE_PACK_TYPE_INSTALL;
+ g_object_add_weak_pointer (G_OBJECT (state->pack), (gpointer) &state->pack);
+
+ /* get deps, TODO: use NEWEST? */
+ pk_client_get_depends_async (PK_CLIENT(state->pack), PK_FILTER_ENUM_NONE, state->package_ids, TRUE,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_service_pack_get_depends_ready_cb, state);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_service_pack_get_updates_ready_cb:
+ **/
+static void
+pk_service_pack_get_updates_ready_cb (GObject *source_object, GAsyncResult *res, PkServicePackState *state)
+{
+ PkServicePack *pack = PK_SERVICE_PACK (source_object);
+ GError *error = NULL;
+ PkResults *results;
+ PkExitEnum exit_enum;
+ GPtrArray *array = NULL;
+ guint i;
+ const PkResultItemPackage *package;
+
+ /* get the results */
+ results = pk_client_generic_finish (PK_CLIENT(pack), res, &error);
+ if (results == NULL) {
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* get exit code */
+ exit_enum = pk_results_get_exit_code (results);
+ if (exit_enum != PK_EXIT_ENUM_SUCCESS) {
+ error = g_error_new (1, 0, "failed to get updates");
+ pk_service_pack_generic_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* add all the results to the existing list */
+ array = pk_results_get_package_array (results);
+ state->package_ids = g_new0 (gchar *, array->len + 1);
+ for (i=0; i<array->len; i++) {
+ package = g_ptr_array_index (array, i);
+ state->package_ids[i] = g_strdup (package->package_id);
+ }
+
+ /* get deps, TODO: use NEWEST? */
+ pk_client_get_depends_async (PK_CLIENT(state->pack), PK_FILTER_ENUM_NONE, state->package_ids, TRUE,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_service_pack_get_depends_ready_cb, state);
+out:
+ if (array != NULL)
+ g_ptr_array_unref (array);
+ if (results != NULL)
+ g_object_unref (results);
+ return;
+}
+
+/**
+ * pk_service_pack_create_for_updates_async:
+ * @pack: a valid #PkServicePack instance
+ * @filename: the filename of the service pack
+ * @package_ids_exclude: An array of packages to exclude
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @progress_callback: the function to run when the progress changes
+ * @progress_user_data: data to pass to @progress_callback
+ * @user_data: the data to pass to @callback
+ *
+ * Create a service pack for the specified Package IDs
+ **/
+void
+pk_service_pack_create_for_updates_async (PkServicePack *pack, const gchar *filename,
+ gchar **package_ids_exclude, GCancellable *cancellable,
+ PkProgressCallback progress_callback, gpointer progress_user_data,
+ GAsyncReadyCallback callback, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkServicePackState *state;
+
+ g_return_if_fail (PK_IS_SERVICE_PACK (pack));
+ g_return_if_fail (callback != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (pack), callback, user_data, pk_service_pack_create_for_updates_async);
+
+ /* save state */
+ state = g_slice_new0 (PkServicePackState);
+ state->res = g_object_ref (res);
+ if (cancellable != NULL)
+ state->cancellable = g_object_ref (cancellable);
+ state->pack = pack;
+ state->type = PK_SERVICE_PACK_TYPE_UPDATE;
+ state->progress_callback = progress_callback;
+ state->progress_user_data = progress_user_data;
+ state->filename = g_strdup (filename);
+ state->package_ids_exclude = g_strdupv (package_ids_exclude);
+ g_object_add_weak_pointer (G_OBJECT (state->pack), (gpointer) &state->pack);
+
+ /* get deps, TODO: use NEWEST? */
+ pk_client_get_updates_async (PK_CLIENT(state->pack), PK_FILTER_ENUM_NONE,
+ state->cancellable, state->progress_callback, state->progress_user_data,
+ (GAsyncReadyCallback) pk_service_pack_get_updates_ready_cb, state);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_service_pack_generic_finish:
+ * @pack: a valid #PkServicePack instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE for success
+ **/
+gboolean
+pk_service_pack_generic_finish (PkServicePack *pack, GAsyncResult *res, GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (PK_IS_SERVICE_PACK (pack), 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_gboolean (simple);
+}
+
+/**
+ * pk_service_pack_finalize:
+ **/
+static void
+pk_service_pack_finalize (GObject *object)
+{
+ PkServicePack *pack;
+
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (PK_IS_SERVICE_PACK (object));
+ pack = PK_SERVICE_PACK (object);
+
+ g_object_unref (pack->priv->client);
+ g_free (pack->priv->directory);
+
+ G_OBJECT_CLASS (pk_service_pack_parent_class)->finalize (object);
+}
+
+/**
+ * pk_service_pack_class_init:
+ **/
+static void
+pk_service_pack_class_init (PkServicePackClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->finalize = pk_service_pack_finalize;
+
+ g_type_class_add_private (klass, sizeof (PkServicePackPrivate));
+}
+
+/**
+ * pk_service_pack_init:
+ **/
+static void
+pk_service_pack_init (PkServicePack *pack)
+{
+ pack->priv = PK_SERVICE_PACK_GET_PRIVATE (pack);
+ pack->priv->client = pk_client_new ();
+ pack->priv->directory = NULL;
+}
+
+/**
+ * pk_service_pack_new:
+ *
+ * Return value: A new service_pack class instance.
+ **/
+PkServicePack *
+pk_service_pack_new (void)
+{
+ PkServicePack *pack;
+ pack = g_object_new (PK_TYPE_SERVICE_PACK, NULL);
+ return PK_SERVICE_PACK (pack);
+}
+
+/***************************************************************************
+ *** MAKE CHECK TESTS ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+static void
+pk_service_pack_test_create_cb (GObject *object, GAsyncResult *res, EggTest *test)
+{
+ PkServicePack *pack = PK_SERVICE_PACK (object);
+ GError *error = NULL;
+ gboolean ret;
+
+ /* get the results */
+ ret = pk_service_pack_generic_finish (pack, res, &error);
+ if (!ret) {
+ egg_test_failed (test, "failed to create pack: %s", error->message);
+ g_error_free (error);
+ goto out;
+ }
+out:
+ egg_test_loop_quit (test);
+}
+
+static void
+pk_service_pack_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_service_pack_test (gpointer user_data)
+{
+ EggTest *test = (EggTest *) user_data;
+ PkServicePack *pack;
+ gchar **package_ids;
+
+ if (!egg_test_start (test, "PkServicePack"))
+ return;
+
+ /************************************************************/
+ egg_test_title (test, "get an instance");
+ pack = pk_service_pack_new ();
+ egg_test_assert (test, pack != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "get service_pack");
+ pack = pk_service_pack_new ();
+ egg_test_assert (test, pack != NULL);
+
+ /************************************************************/
+ egg_test_title (test, "install package");
+ package_ids = g_strsplit ("glib2;2.14.0;i386;fedora", ",", -1);
+ pk_service_pack_create_for_package_ids_async (pack, "dave.servicepack", package_ids, NULL, NULL,
+ (PkProgressCallback) pk_service_pack_test_progress_cb, test,
+ (GAsyncReadyCallback) pk_service_pack_test_create_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 (pack);
+
+ egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib2/pk-service-pack.h b/lib/packagekit-glib2/pk-service-pack.h
new file mode 100644
index 0000000..836795a
--- /dev/null
+++ b/lib/packagekit-glib2/pk-service-pack.h
@@ -0,0 +1,117 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008-2009 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_SERVICE_PACK_H
+#define __PK_SERVICE_PACK_H
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+#include <packagekit-glib2/pk-service-pack.h>
+#include <packagekit-glib2/pk-progress.h>
+
+G_BEGIN_DECLS
+
+#define PK_TYPE_SERVICE_PACK (pk_service_pack_get_type ())
+#define PK_SERVICE_PACK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_SERVICE_PACK, PkServicePack))
+#define PK_SERVICE_PACK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_SERVICE_PACK, PkServicePackClass))
+#define PK_IS_SERVICE_PACK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_SERVICE_PACK))
+#define PK_IS_SERVICE_PACK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_SERVICE_PACK))
+#define PK_SERVICE_PACK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_SERVICE_PACK, PkServicePackClass))
+#define PK_SERVICE_PACK_ERROR (pk_service_pack_error_quark ())
+#define PK_SERVICE_PACK_TYPE_ERROR (pk_service_pack_error_get_type ())
+
+/* the file extension to a servicepack */
+#define PK_SERVICE_PACK_FILE_EXTENSION "servicepack"
+
+typedef struct PkServicePackPrivate PkServicePackPrivate;
+
+typedef enum
+{
+ PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+ PK_SERVICE_PACK_ERROR_FAILED_DOWNLOAD,
+ PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+ PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+ PK_SERVICE_PACK_ERROR_NOTHING_TO_DO,
+ PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE
+} PkServicePackError;
+
+typedef struct
+{
+ GObject parent;
+ PkServicePackPrivate *priv;
+} PkServicePack;
+
+typedef struct
+{
+ GObjectClass parent_class;
+ /* Padding for future expansion */
+ void (*_pk_reserved1) (void);
+ void (*_pk_reserved2) (void);
+ void (*_pk_reserved3) (void);
+ void (*_pk_reserved4) (void);
+} PkServicePackClass;
+
+GQuark pk_service_pack_error_quark (void);
+GType pk_service_pack_error_get_type (void);
+GType pk_service_pack_get_type (void);
+PkServicePack *pk_service_pack_new (void);
+void pk_service_pack_test (gpointer user_data);
+
+/* used by the server */
+gboolean pk_service_pack_check_valid (PkServicePack *pack,
+ const gchar *filename,
+ GError **error);
+
+/* used by clients */
+gboolean pk_service_pack_set_temp_directory (PkServicePack *pack,
+ const gchar *directory);
+
+gboolean pk_service_pack_generic_finish (PkServicePack *pack,
+ GAsyncResult *res,
+ GError **error);
+
+void pk_service_pack_create_for_package_ids_async (PkServicePack *pack,
+ const gchar *filename,
+ gchar **package_ids,
+ gchar **package_ids_exclude,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+void pk_service_pack_create_for_updates_async (PkServicePack *pack,
+ const gchar *filename,
+ gchar **package_ids_exclude,
+ GCancellable *cancellable,
+ PkProgressCallback progress_callback,
+ gpointer progress_user_data,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+
+G_END_DECLS
+
+#endif /* __PK_SERVICE_PACK_H */
+
More information about the PackageKit-commit
mailing list