[PackageKit-commit] packagekit: Branch 'master' - 53 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Tue Jul 28 04:18:14 PDT 2009
autogen.sh | 2
backends/apt/aptBackend.py | 3
backends/apt/pk-backend-apt.c | 2
backends/conary/conaryBackend.py | 3
backends/conary/pk-backend-conary.c | 2
backends/pisi/pisiBackend.py | 3
backends/pisi/pk-backend-pisi.c | 2
backends/portage/pk-backend-portage.c | 3
backends/portage/portageBackend.py | 318 +++--
backends/smart/pk-backend-smart.c | 3
backends/smart/smartBackend.py | 3
backends/yum/pk-backend-yum.c | 3
backends/yum/yumBackend.py | 48
backends/yum/yumFilter.py | 19
client/pkcon.xml | 2
client/pkmon.xml | 2
configure.ac | 34
contrib/PackageKit.catalog | 2
contrib/PackageKit.spec.in | 6
contrib/command-not-found/CommandNotFound.conf | 25
contrib/command-not-found/pk-command-not-found.c | 148 ++
contrib/debuginfo-install/Makefile.am | 2
contrib/debuginfo-install/pk-debuginfo-install.c | 38
etc/PackageKit.conf.in | 4
lib/packagekit-glib/pk-client.c | 57 -
lib/packagekit-glib/pk-enum.c | 1
lib/packagekit-glib/pk-enum.h | 1
lib/packagekit-qt/src/client.h | 1
lib/python/packagekit/backend.py | 9
lib/python/packagekit/filter.py | 18
po/de.po | 1167 +++++++++++++--------
po/es.po | 112 +-
po/pl.po | 211 ++-
po/sv.po | 1274 ++++++++++++++++++-----
src/pk-main.c | 9
src/pk-network-stack-unix.c | 119 +-
src/pk-polkit-action-lookup.c | 58 +
src/pk-transaction-extra.c | 414 +++----
src/pk-transaction-extra.h | 13
src/pk-transaction.c | 39
40 files changed, 2924 insertions(+), 1256 deletions(-)
New commits:
commit 1806afffc91fedac59e2785ba589a97f465ca2a1
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 28 11:47:51 2009 +0100
Don't emit the RequireRestart security signals until the transaction completes with success. Fixes rh#513856
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index f29c40e..30fb179 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -54,6 +54,7 @@ struct PkTransactionExtraPrivate
guint package_id;
GHashTable *hash;
GPtrArray *files_list;
+ GPtrArray *pids;
};
enum {
@@ -849,10 +850,10 @@ out:
}
/**
- * pk_transaction_extra_check_library_restart_emit:
+ * pk_transaction_extra_check_library_restart:
**/
-static gboolean
-pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *extra, GPtrArray *pids)
+gboolean
+pk_transaction_extra_check_library_restart (PkTransactionExtra *extra)
{
gint uid;
guint i;
@@ -864,11 +865,22 @@ pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *extra, GPtr
GPtrArray *files_session;
GPtrArray *files_system;
const PkPackageObj *obj;
+ GPtrArray *pids;
+
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
/* create arrays */
files_session = g_ptr_array_new ();
files_system = g_ptr_array_new ();
+ /* get local array */
+ pids = extra->priv->pids;
+ if (pids == NULL)
+ goto out;
+
+ /* set status */
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_CHECK_LIBRARIES);
+
/* find the package name of each pid */
for (i=0; i<pids->len; i++) {
pid = GPOINTER_TO_INT (g_ptr_array_index (pids, i));
@@ -942,7 +954,7 @@ out:
}
/**
- * pk_transaction_extra_check_library_restart:
+ * pk_transaction_extra_check_library_restart_pre:
* @package_ids: the list of security updates
*
* This function does the following things:
@@ -954,13 +966,12 @@ out:
* 6) For each package, emit a RequireRestart of the correct type (according to the UID)
**/
gboolean
-pk_transaction_extra_check_library_restart (PkTransactionExtra *extra, gchar **package_ids)
+pk_transaction_extra_check_library_restart_pre (PkTransactionExtra *extra, gchar **package_ids)
{
PkStore *store;
guint signal_files = 0;
gboolean ret = TRUE;
gchar **files = NULL;
- GPtrArray *pids;
g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
@@ -973,6 +984,11 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *extra, gchar **p
g_ptr_array_foreach (extra->priv->files_list, (GFunc) g_free, NULL);
g_ptr_array_set_size (extra->priv->files_list, 0);
+ if (extra->priv->pids != NULL) {
+ g_ptr_array_free (extra->priv->pids, TRUE);
+ extra->priv->pids = NULL;
+ }
+
/* set status */
pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_SCAN_PROCESS_LIST);
pk_transaction_extra_set_progress_changed (extra, 101);
@@ -1007,23 +1023,21 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *extra, gchar **p
/* get the list of PIDs */
files = pk_ptr_array_to_strv (extra->priv->files_list);
- pids = pk_lsof_get_pids_for_filenames (extra->priv->lsof, files);
+ extra->priv->pids = pk_lsof_get_pids_for_filenames (extra->priv->lsof, files);
/* nothing depends on these libraries */
- if (pids == NULL) {
+ if (extra->priv->pids == NULL) {
egg_warning ("failed to get process list");
goto out;
}
/* nothing depends on these libraries */
- if (pids->len == 0) {
+ if (extra->priv->pids->len == 0) {
egg_warning ("no processes depend on these libraries");
goto out;
}
- /* emit */
- pk_transaction_extra_check_library_restart_emit (extra, pids);
- g_ptr_array_free (pids, TRUE);
+ /* don't emit until we've run the transaction and it's success */
out:
pk_transaction_extra_set_progress_changed (extra, 100);
if (signal_files > 0)
@@ -1047,6 +1061,8 @@ pk_transaction_extra_finalize (GObject *object)
g_signal_handler_disconnect (extra->priv->backend, extra->priv->finished_id);
g_signal_handler_disconnect (extra->priv->backend, extra->priv->package_id);
+ if (extra->priv->pids != NULL)
+ g_ptr_array_free (extra->priv->pids, TRUE);
if (g_main_loop_is_running (extra->priv->loop))
g_main_loop_quit (extra->priv->loop);
g_main_loop_unref (extra->priv->loop);
@@ -1111,6 +1127,7 @@ pk_transaction_extra_init (PkTransactionExtra *extra)
extra->priv->backend = pk_backend_new ();
extra->priv->lsof = pk_lsof_new ();
extra->priv->db = NULL;
+ extra->priv->pids = NULL;
extra->priv->hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
extra->priv->files_list = g_ptr_array_new ();
diff --git a/src/pk-transaction-extra.h b/src/pk-transaction-extra.h
index e7e6cb6..b42cd55 100644
--- a/src/pk-transaction-extra.h
+++ b/src/pk-transaction-extra.h
@@ -56,7 +56,8 @@ gboolean pk_transaction_extra_check_running_process (PkTransactionExtra *extra,
gchar **package_ids);
gboolean pk_transaction_extra_check_desktop_files (PkTransactionExtra *extra,
gchar **package_ids);
-gboolean pk_transaction_extra_check_library_restart (PkTransactionExtra *extra,
+gboolean pk_transaction_extra_check_library_restart (PkTransactionExtra *extra);
+gboolean pk_transaction_extra_check_library_restart_pre (PkTransactionExtra *extra,
gchar **package_ids);
G_END_DECLS
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index ce98f28..7dad87b 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -657,6 +657,15 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransact
}
}
+ /* look for library restarts */
+ if (exit_enum == PK_EXIT_ENUM_SUCCESS) {
+ ret = pk_conf_get_bool (transaction->priv->conf, "CheckSharedLibrariesInUse");
+ if (ret) {
+ /* now emit what we found ealier */
+ pk_transaction_extra_check_library_restart (transaction->priv->transaction_extra);
+ }
+ }
+
/* signals we are not allowed to send from the second phase post transaction */
g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_allow_cancel);
g_signal_handler_disconnect (transaction->priv->backend, transaction->priv->signal_message);
@@ -1149,7 +1158,7 @@ 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 (transaction->priv->transaction_extra, package_ids_security);
+ ret = pk_transaction_extra_check_library_restart_pre (transaction->priv->transaction_extra, package_ids_security);
out:
g_strfreev (package_ids_security);
if (list != NULL) {
commit 001a1d1d0d2aeb894a5151e46d3844ebd8f5acc8
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 28 11:21:28 2009 +0100
Fix a small memory leak in PkTransactionExtra
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index 4eada5a..f29c40e 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -595,6 +595,7 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *extra)
pk_obj_list_clear (PK_OBJ_LIST(extra->priv->running_exec_list));
while (name != NULL) {
contents = NULL;
+ exec = NULL;
uid_file = g_build_filename ("/proc", name, "loginuid", NULL);
/* is a process file */
@@ -635,6 +636,7 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *extra)
egg_debug ("uid=%i, pid=%i, exec=%s", uid, pid, exec);
pk_obj_list_add (PK_OBJ_LIST(extra->priv->running_exec_list), exec);
out:
+ g_free (exec);
g_free (uid_file);
g_free (contents);
name = g_dir_read_name (dir);
commit ab196b1551af7d000e8473cf623e63edcce6ed98
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 28 11:11:03 2009 +0100
bugfix: Fix a small memory leak in PkNetworkStackUnix
diff --git a/src/pk-network-stack-unix.c b/src/pk-network-stack-unix.c
index 3b961c3..5d5fd8f 100644
--- a/src/pk-network-stack-unix.c
+++ b/src/pk-network-stack-unix.c
@@ -58,6 +58,60 @@ G_DEFINE_TYPE (PkNetworkStackUnix, pk_network_stack_unix, PK_TYPE_NETWORK_STACK)
#define PK_NETWORK_PROC_ROUTE "/proc/net/route"
/**
+ * pk_network_stack_unix_is_valid:
+ **/
+static gboolean
+pk_network_stack_unix_is_valid (const gchar *line)
+{
+ gchar **sections = NULL;
+ gboolean online = FALSE;
+ guint number_sections;
+
+ /* empty line */
+ if (egg_strzero (line))
+ goto out;
+
+ /* tab delimited */
+ sections = g_strsplit (line, "\t", 0);
+ if (sections == NULL) {
+ egg_warning ("unable to split %s", PK_NETWORK_PROC_ROUTE);
+ goto out;
+ }
+
+ /* is header? */
+ if (egg_strequal (sections[0], "Iface"))
+ goto out;
+
+ /* is loopback? */
+ if (egg_strequal (sections[0], "lo"))
+ goto out;
+
+ /* is correct parameters? */
+ number_sections = g_strv_length (sections);
+ if (number_sections != 11) {
+ egg_warning ("invalid line '%s' (%i)", line, number_sections);
+ goto out;
+ }
+
+ /* is destination zero (default route)? */
+ if (egg_strequal (sections[1], "00000000")) {
+ egg_debug ("destination %s is valid", sections[0]);
+ online = TRUE;
+ goto out;
+ }
+
+ /* is gateway nonzero? */
+ if (!egg_strequal (sections[2], "00000000")) {
+ egg_debug ("interface %s is valid", sections[0]);
+ online = TRUE;
+ goto out;
+ }
+out:
+ g_strfreev (sections);
+ return online;
+}
+
+/**
* pk_network_stack_unix_get_state:
**/
static PkNetworkEnum
@@ -66,12 +120,11 @@ pk_network_stack_unix_get_state (PkNetworkStack *nstack)
gchar *contents = NULL;
gboolean ret;
GError *error = NULL;
- gchar **lines;
- gchar **sections;
+ gchar **lines = NULL;
guint number_lines;
- guint number_sections;
guint i;
gboolean online = FALSE;
+ PkNetworkEnum state = PK_NETWORK_ENUM_ONLINE;
/* hack, because netlink is teh suck */
ret = g_file_get_contents (PK_NETWORK_PROC_ROUTE, &contents, NULL, &error);
@@ -79,73 +132,37 @@ pk_network_stack_unix_get_state (PkNetworkStack *nstack)
egg_warning ("could not open %s: %s", PK_NETWORK_PROC_ROUTE, error->message);
g_error_free (error);
/* no idea whatsoever! */
- return PK_NETWORK_ENUM_ONLINE;
+ goto out;
}
/* something insane */
if (contents == NULL) {
egg_warning ("insane contents of %s", PK_NETWORK_PROC_ROUTE);
- return PK_NETWORK_ENUM_ONLINE;
+ goto out;
}
/* one line per interface */
lines = g_strsplit (contents, "\n", 0);
if (lines == NULL) {
egg_warning ("unable to split %s", PK_NETWORK_PROC_ROUTE);
- return PK_NETWORK_ENUM_ONLINE;
+ goto out;
}
number_lines = g_strv_length (lines);
for (i=0; i<number_lines; i++) {
- /* empty line */
- if (egg_strzero (lines[i])) {
- continue;
- }
-
- /* tab delimited */
- sections = g_strsplit (lines[i], "\t", 0);
- if (sections == NULL) {
- egg_warning ("unable to split %s", PK_NETWORK_PROC_ROUTE);
- continue;
- }
-
- /* is header? */
- if (egg_strequal (sections[0], "Iface")) {
- continue;
- }
-
- /* is loopback? */
- if (egg_strequal (sections[0], "lo")) {
- continue;
- }
-
- /* is correct parameters? */
- number_sections = g_strv_length (sections);
- if (number_sections != 11) {
- egg_warning ("invalid line '%s' (%i)", lines[i], number_sections);
- continue;
- }
-
- /* is destination zero (default route)? */
- if (egg_strequal (sections[1], "00000000")) {
- egg_debug ("destination %s is valid", sections[0]);
- online = TRUE;
- }
- /* is gateway nonzero? */
- if (!egg_strequal (sections[2], "00000000")) {
- egg_debug ("interface %s is valid", sections[0]);
+ /* is valid interface */
+ ret = pk_network_stack_unix_is_valid (lines[i]);
+ if (ret)
online = TRUE;
- }
- g_strfreev (sections);
- }
- g_strfreev (lines);
-
- if (online) {
- return PK_NETWORK_ENUM_ONLINE;
}
- return PK_NETWORK_ENUM_OFFLINE;
+ if (!online)
+ state = PK_NETWORK_ENUM_OFFLINE;
+out:
+ g_free (contents);
+ g_strfreev (lines);
+ return state;
}
/**
commit fc8511bb4a918b7b0b20ba273d12189837321e80
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 28 10:56:04 2009 +0100
Fix up a tiny problem with setting a NULL environment
diff --git a/src/pk-main.c b/src/pk-main.c
index 7e446db..8c245f3 100644
--- a/src/pk-main.c
+++ b/src/pk-main.c
@@ -284,9 +284,12 @@ main (int argc, char *argv[])
env_pk_console = g_getenv (EGG_CONSOLE);
env_pk_logging = g_getenv (EGG_LOGGING);
clearenv ();
- g_setenv (EGG_VERBOSE, env_pk_verbose, FALSE);
- g_setenv (EGG_CONSOLE, env_pk_console, FALSE);
- g_setenv (EGG_LOGGING, env_pk_logging, FALSE);
+ if (env_pk_verbose != NULL)
+ g_setenv (EGG_VERBOSE, env_pk_verbose, FALSE);
+ if (env_pk_console != NULL)
+ g_setenv (EGG_CONSOLE, env_pk_console, FALSE);
+ if (env_pk_logging != NULL)
+ g_setenv (EGG_LOGGING, env_pk_logging, FALSE);
#endif
/* get values from the config file */
commit 5afb59da148a9730b469e8a825ae05d4c5c933f9
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 28 10:25:30 2009 +0100
Add some trivial docs
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index 4b8cc14..4eada5a 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -941,6 +941,15 @@ out:
/**
* pk_transaction_extra_check_library_restart:
+ * @package_ids: the list of security updates
+ *
+ * This function does the following things:
+ * 1) Refreshes the list of open files
+ * 2) Gets the list of library files from the security updates
+ * 3) Gets a list of pids that are using the libraries
+ * 4) The list of pids are converted to a list of files
+ * 5) The list of files is converted to a list of packages
+ * 6) For each package, emit a RequireRestart of the correct type (according to the UID)
**/
gboolean
pk_transaction_extra_check_library_restart (PkTransactionExtra *extra, gchar **package_ids)
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 43b53ef..ce98f28 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1067,6 +1067,9 @@ pk_transaction_update_detail_cb (PkBackend *backend, const PkUpdateDetailObj *de
/**
* pk_transaction_pre_transaction_checks:
+ * @package_ids: the list of packages to process
+ *
+ * This function does any pre-transaction checks
*/
static gboolean
pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **package_ids)
commit 69a6bb5f575636438fb4c9c6fdee1eda436afc79
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 28 09:28:48 2009 +0100
Rename a object prefix
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index d69b2c3..4b8cc14 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -70,81 +70,81 @@ G_DEFINE_TYPE (PkTransactionExtra, pk_transaction_extra, G_TYPE_OBJECT)
* pk_transaction_extra_finished_cb:
**/
static void
-pk_transaction_extra_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransactionExtra *post)
+pk_transaction_extra_finished_cb (PkBackend *backend, PkExitEnum exit_enum, PkTransactionExtra *extra)
{
- if (g_main_loop_is_running (post->priv->loop))
- g_main_loop_quit (post->priv->loop);
+ if (g_main_loop_is_running (extra->priv->loop))
+ g_main_loop_quit (extra->priv->loop);
}
/**
* pk_transaction_extra_package_cb:
**/
static void
-pk_transaction_extra_package_cb (PkBackend *backend, const PkPackageObj *obj, PkTransactionExtra *post)
+pk_transaction_extra_package_cb (PkBackend *backend, const PkPackageObj *obj, PkTransactionExtra *extra)
{
- pk_obj_list_add (PK_OBJ_LIST(post->priv->list), obj);
+ pk_obj_list_add (PK_OBJ_LIST(extra->priv->list), obj);
}
/**
* pk_transaction_extra_set_require_restart:
**/
static void
-pk_transaction_extra_set_require_restart (PkTransactionExtra *post, PkRestartEnum restart, const gchar *package_id)
+pk_transaction_extra_set_require_restart (PkTransactionExtra *extra, PkRestartEnum restart, const gchar *package_id)
{
egg_debug ("emit require-restart %s, %s", pk_restart_enum_to_text (restart), package_id);
- g_signal_emit (post, signals [PK_POST_TRANS_REQUIRE_RESTART], 0, restart, package_id);
+ g_signal_emit (extra, signals [PK_POST_TRANS_REQUIRE_RESTART], 0, restart, package_id);
}
/**
* pk_transaction_extra_set_status_changed:
**/
static void
-pk_transaction_extra_set_status_changed (PkTransactionExtra *post, PkStatusEnum status)
+pk_transaction_extra_set_status_changed (PkTransactionExtra *extra, PkStatusEnum status)
{
egg_debug ("emiting status-changed %s", pk_status_enum_to_text (status));
- g_signal_emit (post, signals [PK_POST_TRANS_STATUS_CHANGED], 0, status);
+ g_signal_emit (extra, signals [PK_POST_TRANS_STATUS_CHANGED], 0, status);
}
/**
* pk_transaction_extra_set_progress_changed:
**/
static void
-pk_transaction_extra_set_progress_changed (PkTransactionExtra *post, guint percentage)
+pk_transaction_extra_set_progress_changed (PkTransactionExtra *extra, guint percentage)
{
egg_debug ("emiting progress-changed %i", percentage);
- g_signal_emit (post, signals [PK_POST_TRANS_PROGRESS_CHANGED], 0, percentage, 0, 0, 0);
+ g_signal_emit (extra, signals [PK_POST_TRANS_PROGRESS_CHANGED], 0, percentage, 0, 0, 0);
}
/**
* pk_transaction_extra_get_installed_package_for_file:
**/
static const PkPackageObj *
-pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *post, const gchar *filename)
+pk_transaction_extra_get_installed_package_for_file (PkTransactionExtra *extra, const gchar *filename)
{
guint size;
const PkPackageObj *obj = NULL;
PkStore *store;
/* use PK to find the correct package */
- pk_obj_list_clear (PK_OBJ_LIST(post->priv->list));
- pk_backend_reset (post->priv->backend);
- store = pk_backend_get_store (post->priv->backend);
+ pk_obj_list_clear (PK_OBJ_LIST(extra->priv->list));
+ 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));
pk_store_set_string (store, "search", filename);
- post->priv->backend->desc->search_file (post->priv->backend, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), filename);
+ extra->priv->backend->desc->search_file (extra->priv->backend, pk_bitfield_value (PK_FILTER_ENUM_INSTALLED), filename);
/* wait for finished */
- g_main_loop_run (post->priv->loop);
+ g_main_loop_run (extra->priv->loop);
/* check that we only matched one package */
- size = pk_package_list_get_size (post->priv->list);
+ size = pk_package_list_get_size (extra->priv->list);
if (size != 1) {
egg_warning ("not correct size, %i", size);
goto out;
}
/* get the obj */
- obj = pk_package_list_get_obj (post->priv->list, 0);
+ obj = pk_package_list_get_obj (extra->priv->list, 0);
if (obj == NULL) {
egg_warning ("cannot get obj");
goto out;
@@ -205,13 +205,13 @@ out:
* pk_transaction_extra_sqlite_remove_filename:
**/
static gint
-pk_transaction_extra_sqlite_remove_filename (PkTransactionExtra *post, const gchar *filename)
+pk_transaction_extra_sqlite_remove_filename (PkTransactionExtra *extra, const gchar *filename)
{
gchar *statement;
gint rc;
statement = g_strdup_printf ("DELETE FROM cache WHERE filename = '%s'", filename);
- rc = sqlite3_exec (post->priv->db, statement, NULL, NULL, NULL);
+ rc = sqlite3_exec (extra->priv->db, statement, NULL, NULL, NULL);
g_free (statement);
return rc;
}
@@ -220,7 +220,7 @@ pk_transaction_extra_sqlite_remove_filename (PkTransactionExtra *post, const gch
* pk_transaction_extra_sqlite_add_filename_details:
**/
static gint
-pk_transaction_extra_sqlite_add_filename_details (PkTransactionExtra *post, const gchar *filename, const gchar *package, const gchar *md5)
+pk_transaction_extra_sqlite_add_filename_details (PkTransactionExtra *extra, const gchar *filename, const gchar *package, const gchar *md5)
{
gchar *statement;
gchar *error_msg = NULL;
@@ -242,13 +242,13 @@ pk_transaction_extra_sqlite_add_filename_details (PkTransactionExtra *post, cons
/* the row might already exist */
statement = g_strdup_printf ("DELETE FROM cache WHERE filename = '%s'", filename);
- sqlite3_exec (post->priv->db, statement, NULL, NULL, NULL);
+ sqlite3_exec (extra->priv->db, statement, NULL, NULL, NULL);
g_free (statement);
/* prepare the query, as we don't escape it */
- rc = sqlite3_prepare_v2 (post->priv->db, "INSERT INTO cache (filename, package, show, md5) VALUES (?, ?, ?, ?)", -1, &sql_statement, NULL);
+ rc = sqlite3_prepare_v2 (extra->priv->db, "INSERT INTO cache (filename, package, show, md5) VALUES (?, ?, ?, ?)", -1, &sql_statement, NULL);
if (rc != SQLITE_OK) {
- egg_warning ("SQL failed to prepare: %s", sqlite3_errmsg (post->priv->db));
+ egg_warning ("SQL failed to prepare: %s", sqlite3_errmsg (extra->priv->db));
goto out;
}
@@ -275,7 +275,7 @@ out:
* pk_transaction_extra_sqlite_add_filename:
**/
static gint
-pk_transaction_extra_sqlite_add_filename (PkTransactionExtra *post, const gchar *filename, const gchar *md5_opt)
+pk_transaction_extra_sqlite_add_filename (PkTransactionExtra *extra, const gchar *filename, const gchar *md5_opt)
{
gchar *md5 = NULL;
gchar *package = NULL;
@@ -289,14 +289,14 @@ pk_transaction_extra_sqlite_add_filename (PkTransactionExtra *post, const gchar
md5 = pk_transaction_extra_get_filename_md5 (filename);
/* resolve */
- obj = pk_transaction_extra_get_installed_package_for_file (post, filename);
+ obj = pk_transaction_extra_get_installed_package_for_file (extra, filename);
if (obj == NULL) {
egg_warning ("failed to get list");
goto out;
}
/* add */
- rc = pk_transaction_extra_sqlite_add_filename_details (post, filename, obj->id->name, md5);
+ rc = pk_transaction_extra_sqlite_add_filename_details (extra, filename, obj->id->name, md5);
out:
g_free (md5);
g_free (package);
@@ -309,7 +309,7 @@ out:
static gint
pk_transaction_extra_sqlite_cache_rescan_cb (void *data, gint argc, gchar **argv, gchar **col_name)
{
- PkTransactionExtra *post = PK_POST_TRANS (data);
+ PkTransactionExtra *extra = PK_POST_TRANS (data);
const gchar *filename = NULL;
const gchar *md5 = NULL;
gchar *md5_calc = NULL;
@@ -333,17 +333,17 @@ pk_transaction_extra_sqlite_cache_rescan_cb (void *data, gint argc, gchar **argv
md5_calc = pk_transaction_extra_get_filename_md5 (filename);
if (md5_calc == NULL) {
egg_debug ("remove of %s as no longer found", filename);
- pk_transaction_extra_sqlite_remove_filename (post, filename);
+ pk_transaction_extra_sqlite_remove_filename (extra, filename);
goto out;
}
/* we've checked the file */
- g_hash_table_insert (post->priv->hash, g_strdup (filename), GUINT_TO_POINTER (1));
+ g_hash_table_insert (extra->priv->hash, g_strdup (filename), GUINT_TO_POINTER (1));
/* check md5 is same */
if (g_strcmp0 (md5, md5_calc) != 0) {
egg_debug ("add of %s as md5 invalid (%s vs %s)", filename, md5, md5_calc);
- pk_transaction_extra_sqlite_add_filename (post, filename, md5_calc);
+ pk_transaction_extra_sqlite_add_filename (extra, filename, md5_calc);
}
egg_debug ("existing filename %s valid, md5=%s", filename, md5);
@@ -356,7 +356,7 @@ out:
* pk_transaction_extra_import_desktop_files:
**/
gboolean
-pk_transaction_extra_import_desktop_files (PkTransactionExtra *post)
+pk_transaction_extra_import_desktop_files (PkTransactionExtra *extra)
{
gchar *statement;
gchar *error_msg = NULL;
@@ -370,25 +370,25 @@ pk_transaction_extra_import_desktop_files (PkTransactionExtra *post)
gfloat step;
guint i;
- g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
- g_return_val_if_fail (post->priv->db != NULL, FALSE);
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
+ g_return_val_if_fail (extra->priv->db != NULL, FALSE);
- if (post->priv->backend->desc->search_file == NULL) {
+ if (extra->priv->backend->desc->search_file == NULL) {
egg_debug ("cannot search files");
return FALSE;
}
/* use a local backend instance */
- pk_backend_reset (post->priv->backend);
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_SCAN_APPLICATIONS);
+ pk_backend_reset (extra->priv->backend);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_SCAN_APPLICATIONS);
/* reset hash */
- g_hash_table_remove_all (post->priv->hash);
- pk_transaction_extra_set_progress_changed (post, 101);
+ g_hash_table_remove_all (extra->priv->hash);
+ pk_transaction_extra_set_progress_changed (extra, 101);
/* first go through the existing data, and look for modifications and removals */
statement = g_strdup ("SELECT filename, md5 FROM cache");
- rc = sqlite3_exec (post->priv->db, statement, pk_transaction_extra_sqlite_cache_rescan_cb, post, &error_msg);
+ rc = sqlite3_exec (extra->priv->db, statement, pk_transaction_extra_sqlite_cache_rescan_cb, extra, &error_msg);
g_free (statement);
if (rc != SQLITE_OK) {
egg_warning ("SQL error: %s\n", error_msg);
@@ -409,7 +409,7 @@ pk_transaction_extra_import_desktop_files (PkTransactionExtra *post)
while (filename != NULL) {
if (g_str_has_suffix (filename, ".desktop")) {
path = g_build_filename (PK_DESKTOP_DEFAULT_APPLICATION_DIR, filename, NULL);
- data = g_hash_table_lookup (post->priv->hash, path);
+ data = g_hash_table_lookup (extra->priv->hash, path);
if (data == NULL) {
egg_debug ("add of %s as not present in db", path);
g_ptr_array_add (array, g_strdup (path));
@@ -421,20 +421,20 @@ pk_transaction_extra_import_desktop_files (PkTransactionExtra *post)
g_dir_close (dir);
step = 100.0f / array->len;
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_GENERATE_PACKAGE_LIST);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_GENERATE_PACKAGE_LIST);
/* process files in an array */
for (i=0; i<array->len; i++) {
- pk_transaction_extra_set_progress_changed (post, i * step);
+ pk_transaction_extra_set_progress_changed (extra, i * step);
path = g_ptr_array_index (array, i);
- pk_transaction_extra_sqlite_add_filename (post, path, NULL);
+ pk_transaction_extra_sqlite_add_filename (extra, path, NULL);
}
g_ptr_array_foreach (array, (GFunc) g_free, NULL);
g_ptr_array_free (array, TRUE);
out:
- pk_transaction_extra_set_progress_changed (post, 100);
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_FINISHED);
+ pk_transaction_extra_set_progress_changed (extra, 100);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_FINISHED);
return TRUE;
}
@@ -442,13 +442,13 @@ out:
* pk_transaction_extra_update_package_list:
**/
gboolean
-pk_transaction_extra_update_package_list (PkTransactionExtra *post)
+pk_transaction_extra_update_package_list (PkTransactionExtra *extra)
{
gboolean ret;
- g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
- if (post->priv->backend->desc->get_packages == NULL) {
+ if (extra->priv->backend->desc->get_packages == NULL) {
egg_debug ("cannot get packages");
return FALSE;
}
@@ -456,31 +456,31 @@ pk_transaction_extra_update_package_list (PkTransactionExtra *post)
egg_debug ("updating package lists");
/* clear old list */
- pk_obj_list_clear (PK_OBJ_LIST(post->priv->list));
+ pk_obj_list_clear (PK_OBJ_LIST(extra->priv->list));
/* update UI */
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_GENERATE_PACKAGE_LIST);
- pk_transaction_extra_set_progress_changed (post, 101);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_GENERATE_PACKAGE_LIST);
+ pk_transaction_extra_set_progress_changed (extra, 101);
/* get the new package list */
- pk_backend_reset (post->priv->backend);
- pk_store_set_uint (pk_backend_get_store (post->priv->backend), "filters", pk_bitfield_value (PK_FILTER_ENUM_NONE));
- post->priv->backend->desc->get_packages (post->priv->backend, PK_FILTER_ENUM_NONE);
+ pk_backend_reset (extra->priv->backend);
+ pk_store_set_uint (pk_backend_get_store (extra->priv->backend), "filters", pk_bitfield_value (PK_FILTER_ENUM_NONE));
+ extra->priv->backend->desc->get_packages (extra->priv->backend, PK_FILTER_ENUM_NONE);
/* wait for finished */
- g_main_loop_run (post->priv->loop);
+ g_main_loop_run (extra->priv->loop);
/* update UI */
- pk_transaction_extra_set_progress_changed (post, 90);
+ pk_transaction_extra_set_progress_changed (extra, 90);
/* convert to a file */
- ret = pk_obj_list_to_file (PK_OBJ_LIST(post->priv->list), PK_SYSTEM_PACKAGE_LIST_FILENAME);
+ 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");
/* update UI */
- pk_transaction_extra_set_progress_changed (post, 100);
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_FINISHED);
+ pk_transaction_extra_set_progress_changed (extra, 100);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_FINISHED);
return ret;
}
@@ -489,12 +489,12 @@ pk_transaction_extra_update_package_list (PkTransactionExtra *post)
* pk_transaction_extra_clear_firmware_requests:
**/
gboolean
-pk_transaction_extra_clear_firmware_requests (PkTransactionExtra *post)
+pk_transaction_extra_clear_firmware_requests (PkTransactionExtra *extra)
{
gboolean ret;
gchar *filename;
- g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
/* clear the firmware requests directory */
filename = g_build_filename (LOCALSTATEDIR, "run", "PackageKit", "udev", NULL);
@@ -512,7 +512,7 @@ pk_transaction_extra_clear_firmware_requests (PkTransactionExtra *post)
**/
static void
pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gchar *package_id,
- const gchar *filelist, PkTransactionExtra *post)
+ const gchar *filelist, PkTransactionExtra *extra)
{
guint i;
guint len;
@@ -532,7 +532,7 @@ pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gc
continue;
/* running? */
- ret = pk_obj_list_exists (PK_OBJ_LIST(post->priv->running_exec_list), files[i]);
+ ret = pk_obj_list_exists (PK_OBJ_LIST(extra->priv->running_exec_list), files[i]);
if (!ret)
continue;
@@ -541,7 +541,7 @@ pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gc
/* send signal about session restart */
egg_debug ("package %s updated, and %s is running", id->name, files[i]);
- pk_backend_require_restart (post->priv->backend, PK_RESTART_ENUM_SESSION, package_id);
+ pk_backend_require_restart (extra->priv->backend, PK_RESTART_ENUM_SESSION, package_id);
}
g_strfreev (files);
pk_package_id_free (id);
@@ -549,10 +549,10 @@ pk_transaction_extra_update_files_check_running_cb (PkBackend *backend, const gc
#ifdef USE_SECURITY_POLKIT
/**
- * dkp_post_trans_get_cmdline:
+ * dkp_extra_trans_get_cmdline:
**/
static gchar *
-dkp_post_trans_get_cmdline (guint pid)
+dkp_extra_trans_get_cmdline (guint pid)
{
gboolean ret;
gchar *filename = NULL;
@@ -577,7 +577,7 @@ out:
* pk_transaction_extra_update_process_list:
**/
static gboolean
-pk_transaction_extra_update_process_list (PkTransactionExtra *post)
+pk_transaction_extra_update_process_list (PkTransactionExtra *extra)
{
GDir *dir;
const gchar *name;
@@ -592,7 +592,7 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *post)
uid = getuid ();
dir = g_dir_open ("/proc", 0, NULL);
name = g_dir_read_name (dir);
- pk_obj_list_clear (PK_OBJ_LIST(post->priv->running_exec_list));
+ pk_obj_list_clear (PK_OBJ_LIST(extra->priv->running_exec_list));
while (name != NULL) {
contents = NULL;
uid_file = g_build_filename ("/proc", name, "loginuid", NULL);
@@ -621,7 +621,7 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *post)
}
#ifdef USE_SECURITY_POLKIT
- exec = dkp_post_trans_get_cmdline (pid);
+ exec = dkp_extra_trans_get_cmdline (pid);
if (exec == NULL)
goto out;
#else
@@ -633,7 +633,7 @@ pk_transaction_extra_update_process_list (PkTransactionExtra *post)
if (offset != NULL)
*(offset) = '\0';
egg_debug ("uid=%i, pid=%i, exec=%s", uid, pid, exec);
- pk_obj_list_add (PK_OBJ_LIST(post->priv->running_exec_list), exec);
+ pk_obj_list_add (PK_OBJ_LIST(extra->priv->running_exec_list), exec);
out:
g_free (uid_file);
g_free (contents);
@@ -647,37 +647,37 @@ out:
* pk_transaction_extra_check_running_process:
**/
gboolean
-pk_transaction_extra_check_running_process (PkTransactionExtra *post, gchar **package_ids)
+pk_transaction_extra_check_running_process (PkTransactionExtra *extra, gchar **package_ids)
{
PkStore *store;
guint signal_files = 0;
- g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
- if (post->priv->backend->desc->get_files == NULL) {
+ if (extra->priv->backend->desc->get_files == NULL) {
egg_debug ("cannot get files");
return FALSE;
}
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_CHECK_EXECUTABLE_FILES);
- pk_transaction_extra_set_progress_changed (post, 101);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_CHECK_EXECUTABLE_FILES);
+ pk_transaction_extra_set_progress_changed (extra, 101);
- store = pk_backend_get_store (post->priv->backend);
- pk_transaction_extra_update_process_list (post);
+ store = pk_backend_get_store (extra->priv->backend);
+ pk_transaction_extra_update_process_list (extra);
- signal_files = g_signal_connect (post->priv->backend, "files",
- G_CALLBACK (pk_transaction_extra_update_files_check_running_cb), post);
+ signal_files = g_signal_connect (extra->priv->backend, "files",
+ G_CALLBACK (pk_transaction_extra_update_files_check_running_cb), extra);
/* get all the files touched in the packages we just updated */
- pk_backend_reset (post->priv->backend);
+ pk_backend_reset (extra->priv->backend);
pk_store_set_strv (store, "package_ids", package_ids);
- post->priv->backend->desc->get_files (post->priv->backend, package_ids);
+ extra->priv->backend->desc->get_files (extra->priv->backend, package_ids);
/* wait for finished */
- g_main_loop_run (post->priv->loop);
+ g_main_loop_run (extra->priv->loop);
- g_signal_handler_disconnect (post->priv->backend, signal_files);
- pk_transaction_extra_set_progress_changed (post, 100);
+ g_signal_handler_disconnect (extra->priv->backend, signal_files);
+ pk_transaction_extra_set_progress_changed (extra, 100);
return TRUE;
}
@@ -686,7 +686,7 @@ pk_transaction_extra_check_running_process (PkTransactionExtra *post, gchar **pa
**/
static void
pk_transaction_extra_update_files_check_desktop_cb (PkBackend *backend, const gchar *package_id,
- const gchar *filelist, PkTransactionExtra *post)
+ const gchar *filelist, PkTransactionExtra *extra)
{
guint i;
guint len;
@@ -715,7 +715,7 @@ pk_transaction_extra_update_files_check_desktop_cb (PkBackend *backend, const gc
egg_debug ("adding filename %s", files[i]);
md5 = pk_transaction_extra_get_filename_md5 (files[i]);
- pk_transaction_extra_sqlite_add_filename_details (post, files[i], package[0], md5);
+ pk_transaction_extra_sqlite_add_filename_details (extra, files[i], package[0], md5);
g_free (md5);
}
g_strfreev (files);
@@ -727,35 +727,35 @@ pk_transaction_extra_update_files_check_desktop_cb (PkBackend *backend, const gc
* pk_transaction_extra_check_desktop_files:
**/
gboolean
-pk_transaction_extra_check_desktop_files (PkTransactionExtra *post, gchar **package_ids)
+pk_transaction_extra_check_desktop_files (PkTransactionExtra *extra, gchar **package_ids)
{
PkStore *store;
guint signal_files = 0;
- g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
- if (post->priv->backend->desc->get_files == NULL) {
+ if (extra->priv->backend->desc->get_files == NULL) {
egg_debug ("cannot get files");
return FALSE;
}
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_SCAN_APPLICATIONS);
- pk_transaction_extra_set_progress_changed (post, 101);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_SCAN_APPLICATIONS);
+ pk_transaction_extra_set_progress_changed (extra, 101);
- store = pk_backend_get_store (post->priv->backend);
- signal_files = g_signal_connect (post->priv->backend, "files",
- G_CALLBACK (pk_transaction_extra_update_files_check_desktop_cb), post);
+ store = pk_backend_get_store (extra->priv->backend);
+ signal_files = g_signal_connect (extra->priv->backend, "files",
+ G_CALLBACK (pk_transaction_extra_update_files_check_desktop_cb), extra);
/* get all the files touched in the packages we just updated */
- pk_backend_reset (post->priv->backend);
+ pk_backend_reset (extra->priv->backend);
pk_store_set_strv (store, "package_ids", package_ids);
- post->priv->backend->desc->get_files (post->priv->backend, package_ids);
+ extra->priv->backend->desc->get_files (extra->priv->backend, package_ids);
/* wait for finished */
- g_main_loop_run (post->priv->loop);
+ g_main_loop_run (extra->priv->loop);
- g_signal_handler_disconnect (post->priv->backend, signal_files);
- pk_transaction_extra_set_progress_changed (post, 100);
+ g_signal_handler_disconnect (extra->priv->backend, signal_files);
+ pk_transaction_extra_set_progress_changed (extra, 100);
return TRUE;
}
@@ -764,7 +764,7 @@ pk_transaction_extra_check_desktop_files (PkTransactionExtra *post, gchar **pack
**/
static void
pk_transaction_extra_files_check_library_restart_cb (PkBackend *backend, const gchar *package_id,
- const gchar *filelist, PkTransactionExtra *post)
+ const gchar *filelist, PkTransactionExtra *extra)
{
guint i;
guint len;
@@ -785,7 +785,7 @@ pk_transaction_extra_files_check_library_restart_cb (PkBackend *backend, const g
/* add as it matches the criteria */
egg_debug ("adding filename %s", files[i]);
- g_ptr_array_add (post->priv->files_list, g_strdup (files[i]));
+ g_ptr_array_add (extra->priv->files_list, g_strdup (files[i]));
}
}
@@ -793,7 +793,7 @@ pk_transaction_extra_files_check_library_restart_cb (PkBackend *backend, const g
* pk_transaction_extra_get_cmdline:
**/
static gchar *
-pk_transaction_extra_get_cmdline (PkTransactionExtra *post, guint pid)
+pk_transaction_extra_get_cmdline (PkTransactionExtra *extra, guint pid)
{
gboolean ret;
gchar *filename = NULL;
@@ -817,7 +817,7 @@ out:
* pk_transaction_extra_get_uid:
**/
static gint
-pk_transaction_extra_get_uid (PkTransactionExtra *post, guint pid)
+pk_transaction_extra_get_uid (PkTransactionExtra *extra, guint pid)
{
gboolean ret;
gint uid = -1;
@@ -850,7 +850,7 @@ out:
* pk_transaction_extra_check_library_restart_emit:
**/
static gboolean
-pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *post, GPtrArray *pids)
+pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *extra, GPtrArray *pids)
{
gint uid;
guint i;
@@ -872,12 +872,12 @@ pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *post, GPtrA
pid = GPOINTER_TO_INT (g_ptr_array_index (pids, i));
/* get user */
- uid = pk_transaction_extra_get_uid (post, pid);
+ uid = pk_transaction_extra_get_uid (extra, pid);
if (uid < 0)
continue;
/* get command line */
- cmdline = pk_transaction_extra_get_cmdline (post, pid);
+ cmdline = pk_transaction_extra_get_cmdline (extra, pid);
if (cmdline == NULL)
continue;
@@ -905,14 +905,14 @@ pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *post, GPtrA
for (i=0; i<files_session->len; i++) {
filename = g_ptr_array_index (files_session, i);
- obj = pk_transaction_extra_get_installed_package_for_file (post, filename);
+ obj = pk_transaction_extra_get_installed_package_for_file (extra, filename);
if (obj == NULL) {
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 (post, PK_RESTART_ENUM_SECURITY_SESSION, package_id);
+ pk_transaction_extra_set_require_restart (extra, PK_RESTART_ENUM_SECURITY_SESSION, package_id);
g_free (package_id);
}
@@ -920,14 +920,14 @@ pk_transaction_extra_check_library_restart_emit (PkTransactionExtra *post, GPtrA
for (i=0; i<files_system->len; i++) {
filename = g_ptr_array_index (files_system, i);
- obj = pk_transaction_extra_get_installed_package_for_file (post, filename);
+ obj = pk_transaction_extra_get_installed_package_for_file (extra, filename);
if (obj == NULL) {
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 (post, PK_RESTART_ENUM_SECURITY_SYSTEM, package_id);
+ pk_transaction_extra_set_require_restart (extra, PK_RESTART_ENUM_SECURITY_SYSTEM, package_id);
g_free (package_id);
}
@@ -943,7 +943,7 @@ out:
* pk_transaction_extra_check_library_restart:
**/
gboolean
-pk_transaction_extra_check_library_restart (PkTransactionExtra *post, gchar **package_ids)
+pk_transaction_extra_check_library_restart (PkTransactionExtra *extra, gchar **package_ids)
{
PkStore *store;
guint signal_files = 0;
@@ -951,52 +951,52 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *post, gchar **pa
gchar **files = NULL;
GPtrArray *pids;
- g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
+ g_return_val_if_fail (PK_IS_POST_TRANS (extra), FALSE);
- if (post->priv->backend->desc->get_files == NULL) {
+ if (extra->priv->backend->desc->get_files == NULL) {
egg_debug ("cannot get files");
return FALSE;
}
/* reset */
- g_ptr_array_foreach (post->priv->files_list, (GFunc) g_free, NULL);
- g_ptr_array_set_size (post->priv->files_list, 0);
+ g_ptr_array_foreach (extra->priv->files_list, (GFunc) g_free, NULL);
+ g_ptr_array_set_size (extra->priv->files_list, 0);
/* set status */
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_SCAN_PROCESS_LIST);
- pk_transaction_extra_set_progress_changed (post, 101);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_SCAN_PROCESS_LIST);
+ pk_transaction_extra_set_progress_changed (extra, 101);
/* get list from lsof */
- ret = pk_lsof_refresh (post->priv->lsof);
+ ret = pk_lsof_refresh (extra->priv->lsof);
if (!ret) {
egg_warning ("failed to refresh");
goto out;
}
/* set status */
- pk_transaction_extra_set_status_changed (post, PK_STATUS_ENUM_CHECK_LIBRARIES);
+ pk_transaction_extra_set_status_changed (extra, PK_STATUS_ENUM_CHECK_LIBRARIES);
- store = pk_backend_get_store (post->priv->backend);
- signal_files = g_signal_connect (post->priv->backend, "files",
- G_CALLBACK (pk_transaction_extra_files_check_library_restart_cb), post);
+ store = pk_backend_get_store (extra->priv->backend);
+ signal_files = g_signal_connect (extra->priv->backend, "files",
+ G_CALLBACK (pk_transaction_extra_files_check_library_restart_cb), extra);
/* get all the files touched in the packages we just updated */
- pk_backend_reset (post->priv->backend);
+ pk_backend_reset (extra->priv->backend);
pk_store_set_strv (store, "package_ids", package_ids);
- post->priv->backend->desc->get_files (post->priv->backend, package_ids);
+ extra->priv->backend->desc->get_files (extra->priv->backend, package_ids);
/* wait for finished */
- g_main_loop_run (post->priv->loop);
+ g_main_loop_run (extra->priv->loop);
/* nothing to do */
- if (post->priv->files_list->len == 0) {
+ if (extra->priv->files_list->len == 0) {
egg_warning ("no files");
goto out;
}
/* get the list of PIDs */
- files = pk_ptr_array_to_strv (post->priv->files_list);
- pids = pk_lsof_get_pids_for_filenames (post->priv->lsof, files);
+ files = pk_ptr_array_to_strv (extra->priv->files_list);
+ pids = pk_lsof_get_pids_for_filenames (extra->priv->lsof, files);
/* nothing depends on these libraries */
if (pids == NULL) {
@@ -1011,12 +1011,12 @@ pk_transaction_extra_check_library_restart (PkTransactionExtra *post, gchar **pa
}
/* emit */
- pk_transaction_extra_check_library_restart_emit (post, pids);
+ pk_transaction_extra_check_library_restart_emit (extra, pids);
g_ptr_array_free (pids, TRUE);
out:
- pk_transaction_extra_set_progress_changed (post, 100);
+ pk_transaction_extra_set_progress_changed (extra, 100);
if (signal_files > 0)
- g_signal_handler_disconnect (post->priv->backend, signal_files);
+ g_signal_handler_disconnect (extra->priv->backend, signal_files);
g_strfreev (files);
return ret;
}
@@ -1027,27 +1027,27 @@ out:
static void
pk_transaction_extra_finalize (GObject *object)
{
- PkTransactionExtra *post;
+ PkTransactionExtra *extra;
g_return_if_fail (object != NULL);
g_return_if_fail (PK_IS_POST_TRANS (object));
- post = PK_POST_TRANS (object);
+ extra = PK_POST_TRANS (object);
- g_signal_handler_disconnect (post->priv->backend, post->priv->finished_id);
- g_signal_handler_disconnect (post->priv->backend, post->priv->package_id);
+ g_signal_handler_disconnect (extra->priv->backend, extra->priv->finished_id);
+ g_signal_handler_disconnect (extra->priv->backend, extra->priv->package_id);
- if (g_main_loop_is_running (post->priv->loop))
- g_main_loop_quit (post->priv->loop);
- g_main_loop_unref (post->priv->loop);
- sqlite3_close (post->priv->db);
- g_hash_table_unref (post->priv->hash);
- g_ptr_array_foreach (post->priv->files_list, (GFunc) g_free, NULL);
- g_ptr_array_free (post->priv->files_list, TRUE);
+ if (g_main_loop_is_running (extra->priv->loop))
+ g_main_loop_quit (extra->priv->loop);
+ g_main_loop_unref (extra->priv->loop);
+ sqlite3_close (extra->priv->db);
+ g_hash_table_unref (extra->priv->hash);
+ g_ptr_array_foreach (extra->priv->files_list, (GFunc) g_free, NULL);
+ g_ptr_array_free (extra->priv->files_list, TRUE);
- g_object_unref (post->priv->backend);
- g_object_unref (post->priv->lsof);
- g_object_unref (post->priv->list);
- g_object_unref (post->priv->running_exec_list);
+ 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_OBJECT_CLASS (pk_transaction_extra_parent_class)->finalize (object);
}
@@ -1081,44 +1081,44 @@ pk_transaction_extra_class_init (PkTransactionExtraClass *klass)
/**
* pk_transaction_extra_init:
*
- * initializes the post_trans class. NOTE: We expect post_trans objects
+ * initializes the extra_trans class. NOTE: We expect extra_trans objects
* to *NOT* be removed or added during the session.
- * We only control the first post_trans object if there are more than one.
+ * We only control the first extra_trans object if there are more than one.
**/
static void
-pk_transaction_extra_init (PkTransactionExtra *post)
+pk_transaction_extra_init (PkTransactionExtra *extra)
{
gboolean ret;
const gchar *statement;
gchar *error_msg = NULL;
gint rc;
- post->priv = PK_POST_TRANS_GET_PRIVATE (post);
- post->priv->running_exec_list = pk_transaction_extra_string_list_new ();
- post->priv->loop = g_main_loop_new (NULL, FALSE);
- post->priv->list = pk_package_list_new ();
- post->priv->backend = pk_backend_new ();
- post->priv->lsof = pk_lsof_new ();
- post->priv->db = NULL;
- post->priv->hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- post->priv->files_list = g_ptr_array_new ();
-
- post->priv->finished_id =
- g_signal_connect (post->priv->backend, "finished",
- G_CALLBACK (pk_transaction_extra_finished_cb), post);
- post->priv->package_id =
- g_signal_connect (post->priv->backend, "package",
- G_CALLBACK (pk_transaction_extra_package_cb), post);
+ 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->backend = pk_backend_new ();
+ extra->priv->lsof = pk_lsof_new ();
+ extra->priv->db = NULL;
+ extra->priv->hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ extra->priv->files_list = g_ptr_array_new ();
+
+ extra->priv->finished_id =
+ g_signal_connect (extra->priv->backend, "finished",
+ G_CALLBACK (pk_transaction_extra_finished_cb), extra);
+ extra->priv->package_id =
+ g_signal_connect (extra->priv->backend, "package",
+ G_CALLBACK (pk_transaction_extra_package_cb), extra);
/* check if exists */
ret = g_file_test (PK_DESKTOP_DEFAULT_DATABASE, G_FILE_TEST_EXISTS);
egg_debug ("trying to open database '%s'", PK_DESKTOP_DEFAULT_DATABASE);
- rc = sqlite3_open (PK_DESKTOP_DEFAULT_DATABASE, &post->priv->db);
+ rc = sqlite3_open (PK_DESKTOP_DEFAULT_DATABASE, &extra->priv->db);
if (rc != 0) {
- egg_warning ("Can't open database: %s\n", sqlite3_errmsg (post->priv->db));
- sqlite3_close (post->priv->db);
- post->priv->db = NULL;
+ egg_warning ("Can't open database: %s\n", sqlite3_errmsg (extra->priv->db));
+ sqlite3_close (extra->priv->db);
+ extra->priv->db = NULL;
return;
}
@@ -1130,7 +1130,7 @@ pk_transaction_extra_init (PkTransactionExtra *post)
"package TEXT,"
"show INTEGER,"
"md5 TEXT);";
- rc = sqlite3_exec (post->priv->db, statement, NULL, NULL, &error_msg);
+ rc = sqlite3_exec (extra->priv->db, statement, NULL, NULL, &error_msg);
if (rc != SQLITE_OK) {
egg_warning ("SQL error: %s\n", error_msg);
sqlite3_free (error_msg);
@@ -1138,19 +1138,19 @@ pk_transaction_extra_init (PkTransactionExtra *post)
}
/* we don't need to keep syncing */
- sqlite3_exec (post->priv->db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
+ sqlite3_exec (extra->priv->db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
}
/**
* pk_transaction_extra_new:
- * Return value: A new post_trans class instance.
+ * Return value: A new extra_trans class instance.
**/
PkTransactionExtra *
pk_transaction_extra_new (void)
{
- PkTransactionExtra *post;
- post = g_object_new (PK_TYPE_POST_TRANS, NULL);
- return PK_POST_TRANS (post);
+ PkTransactionExtra *extra;
+ extra = g_object_new (PK_TYPE_POST_TRANS, NULL);
+ return PK_POST_TRANS (extra);
}
/***************************************************************************
@@ -1160,19 +1160,19 @@ pk_transaction_extra_new (void)
#include "egg-test.h"
void
-egg_test_post_trans (EggTest *test)
+egg_test_extra_trans (EggTest *test)
{
- PkTransactionExtra *post;
+ PkTransactionExtra *extra;
if (!egg_test_start (test, "PkTransactionExtra"))
return;
/************************************************************/
egg_test_title (test, "get an instance");
- post = pk_transaction_extra_new ();
- egg_test_assert (test, post != NULL);
+ extra = pk_transaction_extra_new ();
+ egg_test_assert (test, extra != NULL);
- g_object_unref (post);
+ g_object_unref (extra);
egg_test_end (test);
}
diff --git a/src/pk-transaction-extra.h b/src/pk-transaction-extra.h
index 8a4160c..e7e6cb6 100644
--- a/src/pk-transaction-extra.h
+++ b/src/pk-transaction-extra.h
@@ -49,14 +49,14 @@ typedef struct
GType pk_transaction_extra_get_type (void);
PkTransactionExtra *pk_transaction_extra_new (void);
-gboolean pk_transaction_extra_clear_firmware_requests (PkTransactionExtra *post);
-gboolean pk_transaction_extra_update_package_list (PkTransactionExtra *post);
-gboolean pk_transaction_extra_import_desktop_files (PkTransactionExtra *post);
-gboolean pk_transaction_extra_check_running_process (PkTransactionExtra *post,
+gboolean pk_transaction_extra_clear_firmware_requests (PkTransactionExtra *extra);
+gboolean pk_transaction_extra_update_package_list (PkTransactionExtra *extra);
+gboolean pk_transaction_extra_import_desktop_files (PkTransactionExtra *extra);
+gboolean pk_transaction_extra_check_running_process (PkTransactionExtra *extra,
gchar **package_ids);
-gboolean pk_transaction_extra_check_desktop_files (PkTransactionExtra *post,
+gboolean pk_transaction_extra_check_desktop_files (PkTransactionExtra *extra,
gchar **package_ids);
-gboolean pk_transaction_extra_check_library_restart (PkTransactionExtra *post,
+gboolean pk_transaction_extra_check_library_restart (PkTransactionExtra *extra,
gchar **package_ids);
G_END_DECLS
commit 87c8185afb6fedb77456d692e69f19900516dba3
Author: yeager <yeager at fedoraproject.org>
Date: Mon Jul 27 22:15:22 2009 +0000
Sending translation for Swedish
diff --git a/po/sv.po b/po/sv.po
index c8bb864..5b03edb 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-24 01:31+0000\n"
-"PO-Revision-Date: 2009-02-11 11:39+0100\n"
+"POT-Creation-Date: 2009-07-27 19:56+0000\n"
+"PO-Revision-Date: 2009-07-28 00:12+0100\n"
"Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
"Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
@@ -16,704 +16,1448 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:231
+msgid "Transaction"
+msgstr "Transaktion"
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:233
+msgid "System time"
+msgstr "Systemtid"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:235
+msgid "Succeeded"
+msgstr "Lyckades"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:235
+#: ../client/pk-console.c:402
+msgid "True"
+msgstr "Sant"
+
+#: ../client/pk-console.c:235
+#: ../client/pk-console.c:402
+msgid "False"
+msgstr "Falskt"
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:237
+#: ../src/pk-polkit-action-lookup.c:297
+msgid "Role"
+msgstr "Roll"
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:242
+msgid "Duration"
+msgstr "Längd"
+
+#: ../client/pk-console.c:242
+msgid "(seconds)"
+msgstr "(sekunder)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:246
+#: ../src/pk-polkit-action-lookup.c:311
+msgid "Command line"
+msgstr "Kommandorad"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:248
+msgid "User ID"
+msgstr "Användar-id"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:255
+msgid "Username"
+msgstr "Användarnamn"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:259
+msgid "Real name"
+msgstr "Verkligt namn"
+
+#: ../client/pk-console.c:267
+msgid "Affected packages:"
+msgstr "PÃ¥verkade paket:"
+
+#: ../client/pk-console.c:269
+msgid "Affected packages: None"
+msgstr "PÃ¥verkade paket: Inga"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:294
+msgid "Distribution"
+msgstr "Distribution"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:296
+msgid "Type"
+msgstr "Typ"
+
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:298
+#: ../client/pk-console.c:321
+msgid "Summary"
+msgstr "Sammandrag"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:310
+msgid "Category"
+msgstr "Kategori"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:312
+msgid "ID"
+msgstr "ID"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:315
+msgid "Parent"
+msgstr "Förälder"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:318
+msgid "Name"
+msgstr "Namn"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:324
+msgid "Icon"
+msgstr "Ikon"
+
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:287
+#: ../client/pk-console.c:339
msgid "Details about the update:"
msgstr "Detaljer om uppdateringen:"
-#: ../client/pk-console.c:480
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:341
+#: ../src/pk-polkit-action-lookup.c:322
+msgid "Package"
+msgid_plural "Packages"
+msgstr[0] "Paket"
+msgstr[1] "Paket"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:344
+msgid "Updates"
+msgstr "Uppdaterar"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:348
+msgid "Obsoletes"
+msgstr "Föräldrar"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:352
+msgid "Vendor"
+msgstr "Leverantör"
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:356
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:360
+msgid "CVE"
+msgstr "CVE"
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:364
+msgid "Restart"
+msgstr "Omstart"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:368
+msgid "Update text"
+msgstr "Uppdateringstext"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:372
+msgid "Changes"
+msgstr "Ãndringar"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:376
+msgid "State"
+msgstr "Tillstånd"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:381
+msgid "Issued"
+msgstr "Utfärdad"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:386
+msgid "Updated"
+msgstr "Uppdaterad"
+
+#: ../client/pk-console.c:473
+#: ../client/pk-console.c:475
+msgid "Percentage"
+msgstr "Procentandel"
+
+#: ../client/pk-console.c:475
+msgid "Unknown"
+msgstr "Okänt"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:517
+msgid "System restart required by:"
+msgstr "Omstart av systemet krävs:"
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:520
+msgid "Session restart required:"
+msgstr "Omstart av sessionen krävs:"
+
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:523
+msgid "System restart (security) required by:"
+msgstr "Omstart av systemet (säkerhet) krävs av:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:526
+msgid "Session restart (security) required:"
+msgstr "Omstart av sessionen (säkerhet) krävs:"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:529
+msgid "Application restart required by:"
+msgstr "Omstart av program krävs av:"
+
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:584
msgid "Please restart the computer to complete the update."
msgstr "Starta om datorn för att färdigställa uppdateringen."
-#: ../client/pk-console.c:482
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:587
msgid "Please logout and login to complete the update."
msgstr "Logga ut och logga in igen för att färdigställa uppdateringen."
-#: ../client/pk-console.c:484
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:590
msgid "Please restart the application as it is being used."
msgstr "Starta om programmet eftersom det används för tillfället."
-#. TRANSLATORS: The package is already installed on the system
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:593
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Starta om datorn för att färdigställa uppdateringen eftersom viktiga säkerhetsuppdateringar har installerats."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
#: ../client/pk-console.c:596
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Logga ut och logga in igen för att färdigställa uppdateringen eftersom viktiga säkerhetsuppdateringar har installerats."
+
+#. TRANSLATORS: The package is already installed on the system
+#: ../client/pk-console.c:723
#, c-format
msgid "The package %s is already installed"
msgstr "Paketet %s är redan installerat"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:604
+#: ../client/pk-console.c:731
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "Paketet %s kunde inte installeras: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:629
-#: ../client/pk-console.c:656
-#: ../client/pk-console.c:752
-#: ../client/pk-console.c:869
-#: ../client/pk-tools-common.c:61
-#: ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:756
+#: ../client/pk-console.c:779
+#: ../client/pk-console.c:875
+#: ../client/pk-console.c:992
+#: ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
#, c-format
msgid "Internal error: %s"
msgstr "Internt fel: %s"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:637
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:764
+#: ../client/pk-console.c:1388
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "Detta verktyg kunde inte installera paketen: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:664
+#: ../client/pk-console.c:787
#, c-format
msgid "This tool could not install the files: %s"
msgstr "Detta verktyg kunde inte installera filerna: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:720
+#: ../client/pk-console.c:843
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "Detta verktyg kunde inte ta bort %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:743
-#: ../client/pk-console.c:781
-#: ../client/pk-console.c:814
+#: ../client/pk-console.c:866
+#: ../client/pk-console.c:904
+#: ../client/pk-console.c:937
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "Detta verktyg kunde inte ta bort paketen: %s"
#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:793
+#: ../client/pk-console.c:916
msgid "The following packages have to be removed:"
msgstr "Följande paket måste tas bort:"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:800
+#: ../client/pk-console.c:923
msgid "Proceed removing additional packages?"
msgstr "Fortsätt med att ta bort ytterligare paket?"
#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:805
+#: ../client/pk-console.c:928
msgid "The package removal was canceled!"
msgstr "Paketborttagningen avbröts!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:846
+#: ../client/pk-console.c:969
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "Detta verktyg kunde inte hämta paketet %s eftersom det inte hittades"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:1000
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "Detta verktyg kunde inte hämta paketen: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:904
-#: ../client/pk-console.c:913
+#: ../client/pk-console.c:1027
+#: ../client/pk-console.c:1036
#, c-format
msgid "This tool could not update %s: %s"
msgstr "Detta verktyg kunde inte uppdatera %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:935
-#: ../client/pk-console.c:943
+#: ../client/pk-console.c:1058
+#: ../client/pk-console.c:1066
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "Detta verktyg kunde inte få tag på kraven för %s: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:965
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1096
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "Detta verktyg kunde inte få tag på beroenden för detta %s: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:995
-#: ../client/pk-console.c:1003
+#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1126
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "Detta verktyg kunde inte få tag på paketdetaljerna för %s: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1148
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "Detta verktyg kunde inte hitta filerna för %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1033
+#: ../client/pk-console.c:1156
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "Detta verktyg kunde inte få tag på fillistan för %s: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1055
+#: ../client/pk-console.c:1178
#, c-format
msgid "File already exists: %s"
msgstr "Filen finns redan: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1060
-#: ../client/pk-console.c:1116
-#: ../client/pk-console.c:1191
+#: ../client/pk-console.c:1183
+#: ../client/pk-console.c:1239
+#: ../client/pk-console.c:1314
msgid "Getting package list"
msgstr "Hämtar paketlista"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1066
-#: ../client/pk-console.c:1122
-#: ../client/pk-console.c:1197
+#: ../client/pk-console.c:1189
+#: ../client/pk-console.c:1245
+#: ../client/pk-console.c:1320
#, c-format
msgid "This tool could not get package list: %s"
msgstr "Detta verktyg kunde inte få tag på paketlistan: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1077
+#: ../client/pk-console.c:1200
+#, c-format
msgid "Failed to save to disk"
msgstr "Misslyckades med att spara till disk"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1111
-#: ../client/pk-console.c:1186
+#: ../client/pk-console.c:1234
+#: ../client/pk-console.c:1309
#, c-format
msgid "File does not exist: %s"
msgstr "Filen finns inte: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1143
+#: ../client/pk-console.c:1266
msgid "Packages to add"
msgstr "Paket att lägga till"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1151
+#: ../client/pk-console.c:1274
msgid "Packages to remove"
msgstr "Paket att ta bort"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1219
+#: ../client/pk-console.c:1342
+#, c-format
msgid "No new packages need to be installed"
msgstr "Inga nya paket behöver installeras"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1348
msgid "To install"
msgstr "Att installera"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1236
+#: ../client/pk-console.c:1360
msgid "Searching for package: "
msgstr "Söker efter paket: "
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1240
+#: ../client/pk-console.c:1364
msgid "not found."
msgstr "hittades inte."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1251
+#: ../client/pk-console.c:1375
+#, c-format
msgid "No packages can be found to install"
msgstr "Inga paket hittades för installation"
#. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1257
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1381
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:886
+#, c-format
msgid "Installing packages"
msgstr "Installerar paket"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1293
+#: ../client/pk-console.c:1417
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "Detta verktyg kunde inte hitta uppdateringsdetaljer för %s: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1425
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "Detta verktyg kunde inte få tag på uppdateringsdetaljer för %s: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1456
msgid "Error:"
msgstr "Fel:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1361
+#: ../client/pk-console.c:1470
msgid "Package description"
msgstr "Paketbeskrivning"
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:1486
+msgid "Message:"
+msgstr "Meddelande:"
+
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1514
msgid "Package files"
msgstr "Paketfiler"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1403
+#: ../client/pk-console.c:1522
msgid "No files"
msgstr "Inga filer"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1545
msgid "Repository signature required"
msgstr "Förrådssignatur krävs"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1436
+#: ../client/pk-console.c:1555
msgid "Do you accept this signature?"
msgstr "Godkänner du denna signatur?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1440
+#: ../client/pk-console.c:1559
msgid "The signature was not accepted."
msgstr "Signaturen godkändes inte."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1593
msgid "End user license agreement required"
msgstr "Godkännande av slutanvändaravtal krävs"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1481
+#: ../client/pk-console.c:1600
msgid "Do you agree to this license?"
msgstr "Godkänner du denna licens?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1604
msgid "The license was refused."
msgstr "Licensen nekades."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1633
msgid "The daemon crashed mid-transaction!"
msgstr "Demonen kraschade mitt under transaktionen!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1567
+#: ../client/pk-console.c:1686
msgid "PackageKit Console Interface"
msgstr "Konsollgränssnitt för PackageKit"
-#: ../client/pk-console.c:1567
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1688
msgid "Subcommands:"
msgstr "Underkommandon:"
-#: ../client/pk-console.c:1658
-#: ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115
-#: ../src/pk-main.c:191
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1781
+#: ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:610
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:550
+#: ../src/pk-main.c:211
msgid "Show extra debugging information"
msgstr "Visa extra felsökningsinformation"
-#: ../client/pk-console.c:1660
-#: ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1784
+#: ../client/pk-monitor.c:130
msgid "Show the program version and exit"
msgstr "Visa programversion och avsluta"
-#: ../client/pk-console.c:1662
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1787
msgid "Set the filter, e.g. installed"
msgstr "Ange filtret, t.ex. installed"
-#: ../client/pk-console.c:1664
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1790
msgid "Exit without waiting for actions to complete"
msgstr "Avsluta utan att vänta på att åtgärder ska färdigställas"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1691
+#: ../client/pk-console.c:1817
msgid "This tool could not connect to system DBUS."
msgstr "Detta verktyg kunde inte ansluta till systemets DBUS."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1907
msgid "The filter specified was invalid"
msgstr "Angivet filter var ogiltigt"
-#: ../client/pk-console.c:1793
-msgid "You need to specify a search type, e.g. name"
-msgstr "Du måste ange en söktyp, t.ex. name"
-
-#: ../client/pk-console.c:1798
-#: ../client/pk-console.c:1805
-#: ../client/pk-console.c:1812
-#: ../client/pk-console.c:1819
-#: ../client/pk-console.c:1930
-#: ../client/pk-console.c:1940
-#: ../client/pk-console.c:1947
-#: ../client/pk-console.c:1954
-msgid "You need to specify a search term"
-msgstr "Du måste ange en sökterm"
-
-#: ../client/pk-console.c:1824
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1926
+msgid "A search type is required, e.g. name"
+msgstr "En söktyp krävs, t.ex. namn"
+
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1933
+#: ../client/pk-console.c:1942
+#: ../client/pk-console.c:1951
+#: ../client/pk-console.c:1960
+msgid "A search term is required"
+msgstr "Ett sökvillkor krävs"
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1967
msgid "Invalid search type"
msgstr "Ogiltig söktyp"
-#: ../client/pk-console.c:1829
-msgid "You need to specify a package or file to install"
-msgstr "Du måste ange ett paket eller fil att installera"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1973
+msgid "A package name or filename to install is required"
+msgstr "Ett paketnamn eller filnamn att installera krävs"
-#: ../client/pk-console.c:1836
-msgid "You need to specify a type, key_id and package_id"
-msgstr "Du måste ange en type, key_id och package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1982
+msgid "A type, key_id and package_id are required"
+msgstr "En type, key_id och package_id krävs"
-#: ../client/pk-console.c:1843
-msgid "You need to specify a package to remove"
-msgstr "Du måste ange ett paket att ta bort"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1991
+msgid "A package name to remove is required"
+msgstr "Ett paketnamn att ta bort krävs"
-#: ../client/pk-console.c:1849
-msgid "You need to specify the destination directory and then the packages to download"
-msgstr "Du måste ange målkatalogen och sedan paketen som ska hämtas"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:1999
+msgid "A destination directory and the package names to download are required"
+msgstr "En målkatalog och paketnamn att hämta ner krävs"
-#: ../client/pk-console.c:1854
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:2006
msgid "Directory not found"
msgstr "Katalogen hittades inte"
-#: ../client/pk-console.c:1860
-msgid "You need to specify a licence identifier (eula-id)"
-msgstr "Du måste ange en licensidentifierare (eula-id)"
-
-#: ../client/pk-console.c:1876
-msgid "You need to specify a package name to resolve"
-msgstr "Du måste ange ett paketnamn att lösa"
-
-#: ../client/pk-console.c:1885
-#: ../client/pk-console.c:1892
-msgid "You need to specify a repository name"
-msgstr "Du måste ange ett förrådsnamn"
-
-#: ../client/pk-console.c:1899
-msgid "You need to specify a repo name/parameter and value"
-msgstr "Du måste ange ett förrådsnamn/parameter och värde"
-
-#: ../client/pk-console.c:1912
-msgid "You need to specify an action, e.g. 'update-system'"
-msgstr "Du måste ange en åtgärd, t.ex. \"update-system\""
-
-#: ../client/pk-console.c:1917
-msgid "You need to specify a correct role"
-msgstr "Du måste ange en korrekt roll"
-
-#: ../client/pk-console.c:1922
-msgid "Failed to get last time"
-msgstr "Misslyckades med att få tag på senaste tid"
-
-#: ../client/pk-console.c:1961
-msgid "You need to specify a package to find the details for"
-msgstr "Du måste ange ett paket att söka information om"
-
-#: ../client/pk-console.c:1968
-msgid "You need to specify a package to find the files for"
-msgstr "Du måste ange ett paket att söka efter filerna för"
-
-#: ../client/pk-console.c:1975
-msgid "You need to specify a list file to create"
-msgstr "Du måste ange en listfil att skapa"
-
-#: ../client/pk-console.c:1983
-#: ../client/pk-console.c:1991
-msgid "You need to specify a list file to open"
-msgstr "Du måste ange en listfil att öppna"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2014
+msgid "A licence identifier (eula-id) is required"
+msgstr "En licensidentifierare (eula-id) krävs"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:2024
+msgid "A transaction identifier (tid) is required"
+msgstr "En transaktionsidentifierare (tid) krävs"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2041
+msgid "A package name to resolve is required"
+msgstr "Ett paketnamn att slå upp krävs"
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2059
+msgid "A repository name is required"
+msgstr "Ett förrådsnamn krävs"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2068
+msgid "A repo name, parameter and value are required"
+msgstr "Ett förrådsnamn, parameter och värde krävs"
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2082
+msgid "An action, e.g. 'update-system' is required"
+msgstr "En åtgärd, t.ex. \"update-system\" krävs"
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2089
+msgid "A correct role is required"
+msgstr "En korrekt roll krävs"
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2096
+msgid "Failed to get the time since this action was last completed"
+msgstr "Misslyckades med att få tiden sedan denna åtgärd senast färdigställdes"
+
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:2106
+#: ../client/pk-console.c:2118
+#: ../client/pk-console.c:2127
+#: ../client/pk-console.c:2145
+#: ../client/pk-console.c:2154
+#: ../client/pk-generate-pack.c:241
+msgid "A package name is required"
+msgstr "Ett paketnamn krävs"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2136
+msgid "A package provide string is required"
+msgstr "En sträng för vad paketet tillhandahåller krävs"
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2163
+msgid "A list file name to create is required"
+msgstr "Ett listfilnamn att skapa krävs"
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2173
+#: ../client/pk-console.c:2183
+msgid "A list file to open is required"
+msgstr "En listfil att öppna krävs"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2237
#, c-format
msgid "Option '%s' is not supported"
msgstr "Flaggan \"%s\" stöds inte"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2057
-msgid "You don't have the necessary privileges for this operation"
-msgstr "Du har inte den nödvändiga behörigheten för denna åtgärd"
+#: ../client/pk-console.c:2250
+msgid "Incorrect privileges for this operation"
+msgstr "Felaktig behörighet för denna åtgärd"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2253
msgid "Command failed"
msgstr "Kommandot misslyckades"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "Hämtar"
#. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
msgstr "Hämtar paket"
#. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
msgstr "Hämtar beroenden"
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
msgid "Set the file name of dependencies to be excluded"
msgstr "Ange filnamnet för beroenden att undanta"
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
-msgstr "Utdatakatalogen (den aktuella katalogen om den inte anges)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "Fil eller katalog för utdata (den aktuella katalogen används om den inte anges)"
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
msgid "The package to be put into the service pack"
msgstr "Paket att läggas i servicepaketet"
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
msgid "Put all updates available in the service pack"
msgstr "Lägg alla tillgängliga uppdateringar i servicepaketet"
#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
msgid "Neither --package or --updates option selected."
msgstr "Varken flaggan --package eller --updates angavs."
#. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
msgid "Both options selected."
msgstr "BÃ¥da flaggorna angavs."
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+msgid "A output directory or file name is required"
+msgstr "En utmatningskatalog eller filnamn krävs"
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr "Pakethanteraren kan inte genomföra denna typ av åtgärd."
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgstr "Servicepaket kan inte skapa eftersom PackageKit inte har byggts med stöd för libarchive."
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:291
+msgid "If specifying a file, the service pack name must end with"
+msgstr "Om en fil anges måste servicepaketets namn avslutas med"
+
#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:307
msgid "A pack with the same name already exists, do you want to overwrite it?"
msgstr "Ett paket med samma namn finns redan. Vill du skriva över det?"
#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:310
msgid "The pack was not overwritten."
msgstr "Paketet skrevs inte över."
#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:323
msgid "Failed to create directory:"
msgstr "Misslyckades med att skapa katalog:"
#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:333
msgid "Failed to open package list."
msgstr "Misslyckades med öppna paketlistan."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:344
msgid "Finding package name."
msgstr "Söker efter paketnamn."
#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:348
#, c-format
msgid "Failed to find package '%s': %s"
msgstr "Misslyckades med att hitta paketet \"%s\": %s"
#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:365
msgid "Creating service pack..."
msgstr "Skapar servicepaket..."
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:372
#, c-format
msgid "Service pack created '%s'"
msgstr "Servicepaket skapades \"%s\""
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:377
#, c-format
msgid "Failed to create '%s': %s"
msgstr "Misslyckades med att skapa \"%s\": %s"
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:146
msgid "PackageKit Monitor"
msgstr "Ãvervakare för PackageKit"
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr "Kan inte visa listan över transaktioner"
+
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
+#, c-format
msgid "The package could not be found"
msgstr "Paketet kunde inte hittas"
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
msgid "More than one package matches:"
msgstr "Det finns fler än ett paket som matchar:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
msgid "Please choose the correct package: "
msgstr "Välj det korrekta paketet: "
-#: ../client/pk-tools-common.c:158
+#: ../client/pk-tools-common.c:162
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "Ange ett tal från 1 till %i: "
+#. 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 "Hämtar detaljer om programkällorna."
+
+#. 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 "Hämtar fillistor (detta kan ta lite tid att färdigställa)."
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:357
+msgid "Waiting for package manager lock."
+msgstr "Väntar på låset för pakethanteraren."
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+msgid "Loading list of packages."
+msgstr "Läser in lista över paket."
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:414
+msgid "Failed to search for file"
+msgstr "Misslyckades med att söka efter filen"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:551
+msgid "Failed to launch:"
+msgstr "Misslyckades med att starta:"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/command-not-found/pk-command-not-found.c:626
+msgid "PackageKit Command Not Found"
+msgstr "PackageKit - Kommandot hittades inte"
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:652
+msgid "Command not found."
+msgstr "Kommandot hittades inte."
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:659
+msgid "Similar command is:"
+msgstr "Liknande kommando är:"
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:668
+msgid "Run similar command:"
+msgstr "Kör liknande command:"
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+#: ../contrib/command-not-found/pk-command-not-found.c:680
+#: ../contrib/command-not-found/pk-command-not-found.c:689
+msgid "Similar commands are:"
+msgstr "Liknande kommandon är:"
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:696
+msgid "Please choose a command to run"
+msgstr "Välj ett kommando att köra"
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:715
+msgid "The package providing this file is:"
+msgstr "Paketet som tillhandahåller denna fil är:"
+
+#. TRANSLATORS: as the user if we want to install a package to provide the command
+#: ../contrib/command-not-found/pk-command-not-found.c:720
+#, c-format
+msgid "Install package '%s' to provide command '%s'?"
+msgstr "Installera paketet \"%s\" för att tillhandahålla kommandot \"%s\"?"
+
+#. TRANSLATORS: Show the user a list of packages that provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:741
+msgid "Packages providing this file are:"
+msgstr "Paket som tillhandahåller denna fil är:"
+
+#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:750
+msgid "Suitable packages are:"
+msgstr "Lämpliga paket är:"
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:758
+msgid "Please choose a package to install"
+msgstr "Välj ett paket att installera"
+
#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/packagekit-plugin/src/contents.cpp:294
+#: ../contrib/browser-plugin/pk-plugin-install.c:433
msgid "Getting package information..."
msgstr "Hämtar paketinformation..."
#. TRANSLATORS: run an applicaiton
-#: ../contrib/packagekit-plugin/src/contents.cpp:300
+#: ../contrib/browser-plugin/pk-plugin-install.c:439
#, c-format
msgid "Run %s"
msgstr "Kör %s"
#. TRANSLATORS: show the installed version of a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:306
+#: ../contrib/browser-plugin/pk-plugin-install.c:445
msgid "Installed version"
msgstr "Installerad version"
#. TRANSLATORS: run the application now
-#: ../contrib/packagekit-plugin/src/contents.cpp:314
+#: ../contrib/browser-plugin/pk-plugin-install.c:453
#, c-format
msgid "Run version %s now"
msgstr "Kör version %s nu"
-#: ../contrib/packagekit-plugin/src/contents.cpp:320
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:459
msgid "Run now"
msgstr "Kör nu"
#. TRANSLATORS: update to a new version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:326
+#: ../contrib/browser-plugin/pk-plugin-install.c:465
#, c-format
msgid "Update to version %s"
msgstr "Uppdatera till version %s"
#. TRANSLATORS: To install a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:332
+#: ../contrib/browser-plugin/pk-plugin-install.c:471
#, c-format
msgid "Install %s now"
msgstr "Installera %s nu"
#. TRANSLATORS: the version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:335
+#: ../contrib/browser-plugin/pk-plugin-install.c:474
msgid "Version"
msgstr "Version"
#. TRANSLATORS: noting found, so can't install
-#: ../contrib/packagekit-plugin/src/contents.cpp:340
+#: ../contrib/browser-plugin/pk-plugin-install.c:479
msgid "No packages found for your system"
msgstr "Inga paket hittades för ditt system"
#. TRANSLATORS: package is being installed
-#: ../contrib/packagekit-plugin/src/contents.cpp:345
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
msgid "Installing..."
msgstr "Installerar..."
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:187
+msgid "Starting install"
+msgstr "Påbörjar installation"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:397
+#, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr "Misslyckades med att hitta paketet %s, eller så är det redan installerat: %s"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:553
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "Installera inte några paket, simulera endast vad som ska installeras"
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+msgid "Do not install dependencies of the core packages"
+msgstr "Installera inte några beroenden för baspaketen"
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "Do not display information or progress"
+msgstr "Visa inte någon information eller förlopp"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:577
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit -Installation av debuginfo"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:589
+#, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "FEL: Ange paketnamn att installera."
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#, c-format
+msgid "Getting sources list"
+msgstr "Hämtar lista över källor"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:641
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:681
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:716
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:800
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:844
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:911
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:955
+#, c-format
+msgid "OK."
+msgstr "OK."
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:644
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr "Hittade %i aktiverade och %i inaktiverade källor."
+
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:651
+#, c-format
+msgid "Finding debugging sources"
+msgstr "Söker efter källor för felsökning"
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:684
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr "Hittade %i inaktiverade debuginfo-förråd."
+
+#. 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 "Aktiverar källor för felsökning"
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:829
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:896
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+msgid "FAILED."
+msgstr "MISSLYCKADES."
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:719
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr "Aktiverade %i källor för felsökning."
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:726
+#, c-format
+msgid "Finding debugging packages"
+msgstr "Söker efter paket för felsökning"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:738
+#, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Misslyckades med att hitta paketet %s: %s"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Misslyckades med att hitta debuginfo-paketet %s: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:789
+#, c-format
+msgid "Found no packages to install."
+msgstr "Hittade inga paket att installera."
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:803
+#, c-format
+msgid "Found %i packages:"
+msgstr "Hittade %i paket:"
+
+#. 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 "Söker efter paket som är beroende av dessa paket"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:832
+#, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Kunde inte hitta paket som är beroende: %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 "Hittade %i extra paket."
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:852
+#, c-format
+msgid "No extra packages required."
+msgstr "Inga extra paket krävs."
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:861
+#, c-format
+msgid "Found %i packages to install:"
+msgstr "Hittade %i paket att installera:"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:874
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Installerar inte paket i simuleringsläget"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:899
+#, c-format
+msgid "Could not install packages: %s"
+msgstr "Kunde inte installera paket: %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 "Inaktiverar källor som tidigare var aktiverade"
+
+#. 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 "Kunde inte inaktivera källorna för felsökning: %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 "Inaktiverade %i källor för felsökning."
+
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
msgstr "Katalog för PackageKit"
-#: ../data/packagekit-servicepack.xml.in.h:1
-msgid "PackageKit Service Pack"
-msgstr "Servicepaket för PackageKit"
-
#: ../data/packagekit-package-list.xml.in.h:1
msgid "PackageKit Package List"
msgstr "Paketlista för PackageKit"
-#: ../src/pk-main.c:86
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr "Servicepaket för PackageKit"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Accept EULA"
+msgstr "Acceptera slutanvändaravtal"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr "Autentisering krävs för att acceptera ett slutanvändaravtal"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "Autentisering krävs för att avbryta en åtgärd som inte startades av dig själv"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr "Autentisering krävs för att ändra parametrar för programvarukällor"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "Autentisering krävs för att anse att en nyckel som används för paketsignering ska vara pålitlig"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid "Authentication is required to install a signed package"
+msgstr "Autentisering krävs för att installera ett signerat paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install an untrusted package"
+msgstr "Autentisering krävs för att installera ett opålitligt paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to refresh the system sources"
+msgstr "Autentisering krävs för att uppdatera systemkällorna"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to remove packages"
+msgstr "Autentisering krävs för att ta bort paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to rollback a transaction"
+msgstr "Autentisering krävs för att rulla tillbaka en transaktion"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "Autentisering krävs för att ange nätverksproxyservern som ska användas för hämtning av paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid "Authentication is required to update packages"
+msgstr "Autentisering krävs för att uppdatera paket"
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:24
+msgid "Cancel foreign task"
+msgstr "Avbryt främmande åtgärd"
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:30
+msgid "Change software source parameters"
+msgstr "Ãndra parametrar för programvarukällor"
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:37
+msgid "Install signed package"
+msgstr "Installera signerat paket"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:44
+msgid "Install untrusted local file"
+msgstr "Installera opålitlig lokal fil"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:49
+msgid "Refresh system sources"
+msgstr "Uppdatera systemkällor"
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:59
+msgid "Remove package"
+msgstr "Ta bort paket"
+
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:65
+msgid "Rollback to a previous transaction"
+msgstr "Rulla tillbaka till en tidigare transaktion"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:70
+msgid "Set network proxy"
+msgstr "Ange nätverksproxyserver"
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:77
+msgid "Trust a key used for signing packages"
+msgstr "Lita på en nyckel som används för signering av paket"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:85
+msgid "Update packages"
+msgstr "Uppdatera paket"
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
msgid "Startup failed due to security policies on this machine."
msgstr "Uppstart misslyckades på grund av en säkerhetspolicy på denna dator."
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
msgid "This can happen for two reasons:"
msgstr "Detta kan inträffa av två anledningar:"
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
msgid "The correct user is not launching the executable (usually root)"
msgstr "Den korrekta användaren startar inte den körbara filen (vanligtvis root)"
-#: ../src/pk-main.c:89
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
msgstr "Filen org.freedesktop.PackageKit.conf är inte installerad i systemkatalogen:"
-#: ../src/pk-main.c:187
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:205
msgid "Packaging backend to use, e.g. dummy"
msgstr "Paketingsbakände att använda, t.ex. dummy"
-#: ../src/pk-main.c:189
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:208
msgid "Daemonize and detach from the terminal"
msgstr "Demonisera och koppla loss från terminalen"
-#: ../src/pk-main.c:193
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:214
msgid "Disable the idle timer"
msgstr "Inaktivera tidsgräns för inaktivitet"
-#: ../src/pk-main.c:195
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:217
msgid "Show version and exit"
msgstr "Visa version och avsluta"
-#: ../src/pk-main.c:197
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:220
msgid "Exit after a small delay"
msgstr "Avsluta efter en mindre fördröjning"
-#: ../src/pk-main.c:199
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:223
msgid "Exit after the engine has loaded"
msgstr "Avsluta efter att motorn har lästs in"
-#: ../src/pk-main.c:213
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:238
msgid "PackageKit service"
msgstr "PackageKit-tjänst"
-#: ../src/pk-main.c:249
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:275
msgid "Cannot connect to the system bus"
msgstr "Kan inte ansluta till systembussen"
-#: ../src/pk-main.c:298
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:331
msgid "Error trying to start:"
msgstr "Fel vid försök att starta:"
+#: ../src/pk-polkit-action-lookup.c:143
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr "För att installera paket för felsökning så behöver extra källor aktiveras"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:156
+#: ../src/pk-polkit-action-lookup.c:175
+msgid "The software is not from a trusted source."
+msgstr "Programvaran kommer inte från en pålitlig källa."
+
+#. TRANSLATORS: user has to trust provider -- I know, this sucks
+#: ../src/pk-polkit-action-lookup.c:160
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr "Uppdatera inte detta paket såvida inte du vet att det är säkert att göra så."
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:164
+#: ../src/pk-polkit-action-lookup.c:183
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr "Skadlig programvara kan skada din dator eller orsaka andra problem."
+
+#. TRANSLATORS: user has to trust provider -- I know, this sucks
+#: ../src/pk-polkit-action-lookup.c:179
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Installera inte detta paket såvida inte du vet att det är säkert att göra så."
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:304
+msgid "Only trusted"
+msgstr "Endast pålitliga"
+
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "Du måste ange en söktyp, t.ex. name"
+#~ msgid "You need to specify a search term"
+#~ msgstr "Du måste ange en sökterm"
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "Du måste ange ett paket att ta bort"
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "Du måste ange ett paketnamn att lösa"
+#~ msgid "You need to specify a repository name"
+#~ msgstr "Du måste ange ett förrådsnamn"
+#~ msgid "You need to specify an action, e.g. 'update-system'"
+#~ msgstr "Du måste ange en åtgärd, t.ex. \"update-system\""
+#~ msgid "You need to specify a correct role"
+#~ msgstr "Du måste ange en korrekt roll"
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr "Du måste ange ett paket att söka information om"
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr "Du måste ange ett paket att söka efter filerna för"
+#~ msgid "You need to specify a list file to create"
+#~ msgstr "Du måste ange en listfil att skapa"
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "Du måste ange en listfil att öppna"
#~ msgid "This tool could not remove the packages: '%s'"
#~ msgstr "Detta verktyg kunde inte ta bort paketen: \"%s\""
-#~ msgid "Accept EULA"
-#~ msgstr "Acceptera slutanvändaravtal"
-#~ msgid "Authentication is required to accept a EULA"
-#~ msgstr "Autentisering krävs för att acceptera ett slutanvändaravtal"
-#~ msgid "Authentication is required to change software source parameters"
-#~ msgstr "Autentisering krävs för att ändra parametrar för programvarukällor"
-
-#, fuzzy
-#~ msgid ""
-#~ "Authentication is required to consider a key used for signing packages as "
-#~ "trusted"
-#~ msgstr "Autentisering krävs för att uppdatera paketlistorna"
-
-#, fuzzy
-#~ msgid "Authentication is required to install a signed package"
-#~ msgstr "Autentisering krävs för att installera ett paket"
-
-#, fuzzy
-#~ msgid "Authentication is required to install an untrusted package"
-#~ msgstr "Autentisering krävs för att installera ett paket"
-
-#, fuzzy
-#~ msgid "Authentication is required to refresh the system sources"
-#~ msgstr "Autentisering krävs för att uppdatera paketlistorna"
-#~ msgid "Authentication is required to remove packages"
-#~ msgstr "Autentisering krävs för att ta bort paket"
-#~ msgid "Authentication is required to rollback a transaction"
-#~ msgstr "Autentisering krävs för att rulla tillbaka en transaktion"
-
-#, fuzzy
-#~ msgid ""
-#~ "Authentication is required to set the network proxy used for downloading "
-#~ "packages"
-#~ msgstr "Autentisering krävs för att ta bort paket"
-#~ msgid "Authentication is required to update packages"
-#~ msgstr "Autentisering krävs för att uppdatera paket"
-#~ msgid "Change software source parameters"
-#~ msgstr "Ãndra parametrar för programvarukällor"
#~ msgid "Install local file"
#~ msgstr "Installera lokal fil"
-#~ msgid "Install untrusted local file"
-#~ msgstr "Installera opålitlig lokal fil"
-#~ msgid "Remove package"
-#~ msgstr "Ta bort paket"
-#~ msgid "Rollback to a previous transaction"
-#~ msgstr "Rulla tillbaka till en tidigare transaktion"
-
-#, fuzzy
-#~ msgid "Update packages"
-#~ msgstr "Uppdatera paket"
#~ msgid "Authentication is required to install a local file"
#~ msgstr "Autentisering krävs för att installera en lokal fil"
#~ msgid "Authentication is required to install a security signature"
@@ -728,16 +1472,6 @@ msgstr "Fel vid försök att starta:"
#~ msgstr "Uppdatera paketlistor"
#~ msgid "Update all packages"
#~ msgstr "Uppdatera alla paket"
-#~ msgid "Update detail"
-#~ msgstr "Uppdateringsinformation"
-#~ msgid "A system restart is required"
-#~ msgstr "En omstart av systemet krävs"
-#~ msgid "A logout and login is required"
-#~ msgstr "En utloggning och inloggning krävs"
-#~ msgid "An application restart is required"
-#~ msgstr "En omstart av programmet krävs"
-#~ msgid "Could not find a package match"
-#~ msgstr "Kunde inte hitta ett matchande paket"
#~ msgid ""
#~ "Could not find a package with that name to install, or package already "
#~ "installed"
commit 65ec78cae469beb8aa0ec2af5d263769714513c3
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 11:38:10 2009 +0100
Don't search for libraries in use when there are no security updates
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 5db6bf5..43b53ef 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1116,6 +1116,12 @@ pk_transaction_pre_transaction_checks (PkTransaction *transaction, gchar **packa
}
}
+ /* nothing to scan for */
+ if (list->len == 0) {
+ egg_debug ("no security updates");
+ goto out;
+ }
+
/* is a security update we are installing */
if (transaction->priv->role == PK_ROLE_ENUM_INSTALL_PACKAGES) {
ret = FALSE;
commit f57e9e58077ca189593336d83c8ae118302a3070
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 11:20:54 2009 +0100
pk-debuginfo-install is designed to be run by the user, and should be in bin not libexec
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index ec65785..34960aa 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -365,7 +365,7 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
%files debuginfo-install
%defattr(-,root,root,-)
%doc README AUTHORS NEWS COPYING
-%{_libexecdir}/pk-debuginfo-install
+%{_bindir}/pk-debuginfo-install
%{_datadir}/man/man1/pk-debuginfo-install.1.gz
%files browser-plugin
diff --git a/contrib/debuginfo-install/Makefile.am b/contrib/debuginfo-install/Makefile.am
index ba52f4b..f453427 100644
--- a/contrib/debuginfo-install/Makefile.am
+++ b/contrib/debuginfo-install/Makefile.am
@@ -30,7 +30,7 @@ INCLUDES = \
PK_GLIB_LIBS = $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
-libexec_PROGRAMS = pk-debuginfo-install
+bin_PROGRAMS = pk-debuginfo-install
pk_debuginfo_install_SOURCES = \
egg-debug.c \
commit 3d477fbabe67c1e0f74c924b66faba5a15caf579
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 11:05:12 2009 +0100
debuginfo-install: handle only-trusted FALSE packages
diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
index f7a0ae6..538a5e3 100644
--- a/contrib/debuginfo-install/pk-debuginfo-install.c
+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
@@ -170,6 +170,7 @@ pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArra
gboolean ret = TRUE;
gchar **package_ids;
GError *error_local = NULL;
+ PkExitEnum exit;
/* mush back into a char** */
package_ids = pk_package_ids_from_array (array);
@@ -188,9 +189,26 @@ pk_debuginfo_install_packages_install (PkDebuginfoInstallPrivate *priv, GPtrArra
/* enable this repo */
ret = pk_client_install_packages (priv->client, TRUE, package_ids, &error_local);
if (!ret) {
- *error = g_error_new (1, 0, "failed to install packages: %s", error_local->message);
- g_error_free (error_local);
- goto out;
+ /* 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);
+ egg_error ("moo: %s", error_local->message);
+ goto out;
+ }
}
/* end progressbar output */
@@ -400,10 +418,10 @@ out:
}
/**
- * pk_console_progress_changed_cb:
+ * pk_debuginfo_install_progress_changed_cb:
**/
static void
-pk_console_progress_changed_cb (PkClient *client, guint percentage, guint subpercentage,
+pk_debuginfo_install_progress_changed_cb (PkClient *client, guint percentage, guint subpercentage,
guint elapsed, guint remaining, PkDebuginfoInstallPrivate *priv)
{
PkRoleEnum role;
@@ -457,10 +475,10 @@ pk_strpad (const gchar *data, guint length)
}
/**
- * pk_console_package_cb:
+ * pk_debuginfo_install_package_cb:
**/
static void
-pk_console_package_cb (PkClient *client, const PkPackageObj *obj, PkDebuginfoInstallPrivate *priv)
+pk_debuginfo_install_package_cb (PkClient *client, const PkPackageObj *obj, PkDebuginfoInstallPrivate *priv)
{
PkRoleEnum role;
gchar *package = NULL;
@@ -586,8 +604,8 @@ main (int argc, char *argv[])
/* 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_console_progress_changed_cb), priv);
- g_signal_connect (priv->client, "package", G_CALLBACK (pk_console_package_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);
@@ -877,7 +895,7 @@ not_found:
/* TRANSLATORS: operation was not successful */
g_print ("%s ", _("FAILED."));
}
- /* TRANSLATORS: coul dnot install, detailed error follows */
+ /* TRANSLATORS: could not install, detailed error follows */
g_print (_("Could not install packages: %s"), error->message);
g_print ("\n");
g_error_free (error);
commit 6c77e4ed13e488980e85adac8a43d281af90dae7
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 11:04:32 2009 +0100
glib: expose the exit property on the PkClient object
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index d85c930..d17bc81 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -110,6 +110,7 @@ struct _PkClientPrivate
PkBitfield cached_filters;
gint timeout;
guint timeout_id;
+ PkExitEnum exit;
GError *error;
};
@@ -141,6 +142,7 @@ enum {
PROP_0,
PROP_ROLE,
PROP_STATUS,
+ PROP_EXIT,
PROP_LAST,
};
@@ -530,8 +532,6 @@ pk_client_destroy_cb (DBusGProxy *proxy, PkClient *client)
static void
pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime, PkClient *client)
{
- PkExitEnum exit_enum;
-
g_return_if_fail (PK_IS_CLIENT (client));
/* ref in case we unref the PkClient in ::finished */
@@ -543,7 +543,7 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
client->priv->timeout_id = 0;
}
- exit_enum = pk_exit_enum_from_text (exit_text);
+ client->priv->exit = pk_exit_enum_from_text (exit_text);
egg_debug ("emit finished %s, %i", exit_text, runtime);
/* only this instance is finished, and do it before the signal so we can reset */
@@ -553,14 +553,14 @@ pk_client_finished_cb (DBusGProxy *proxy, const gchar *exit_text, guint runtime,
* in the ::Finished() handler */
client->priv->is_finishing = TRUE;
- g_signal_emit (client, signals [SIGNAL_FINISHED], 0, exit_enum, runtime);
+ g_signal_emit (client, signals [SIGNAL_FINISHED], 0, client->priv->exit, runtime);
/* done callback */
client->priv->is_finishing = FALSE;
/* exit our private loop */
if (client->priv->synchronous) {
- if (exit_enum != PK_EXIT_ENUM_SUCCESS)
+ if (client->priv->exit != PK_EXIT_ENUM_SUCCESS)
client->priv->error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
"failed: %s", exit_text);
g_main_loop_quit (client->priv->loop);
@@ -4130,6 +4130,9 @@ pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
case PROP_STATUS:
g_value_set_uint (value, client->priv->status);
break;
+ case PROP_EXIT:
+ g_value_set_uint (value, client->priv->exit);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -4179,6 +4182,14 @@ pk_client_class_init (PkClientClass *klass)
g_object_class_install_property (object_class, PROP_STATUS, pspec);
/**
+ * PkClient:exit:
+ */
+ pspec = g_param_spec_uint ("exit", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_EXIT, pspec);
+
+ /**
* PkClient::status-changed:
* @client: the #PkClient instance that emitted the signal
* @status: the #PkStatusEnum type, e.g. PK_STATUS_ENUM_REMOVE
@@ -4657,6 +4668,7 @@ pk_client_init (PkClient *client)
client->priv->status = PK_STATUS_ENUM_UNKNOWN;
client->priv->require_restart = PK_RESTART_ENUM_NONE;
client->priv->role = PK_ROLE_ENUM_UNKNOWN;
+ client->priv->exit = PK_EXIT_ENUM_UNKNOWN;
client->priv->is_finished = FALSE;
client->priv->is_finishing = FALSE;
client->priv->package_list = pk_package_list_new ();
commit c3f1db683154d5f24c602571c682cf6f89e6fbcc
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 10:58:22 2009 +0100
glib: clear the saved error from the first client if we are requeueing a second
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 7eb2d72..d85c930 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -3918,6 +3918,7 @@ pk_client_requeue (PkClient *client, GError **error)
client->priv->tid = NULL;
client->priv->status = PK_STATUS_ENUM_UNKNOWN;
client->priv->is_finished = FALSE;
+ g_clear_error (&client->priv->error);
/* clear package list */
pk_obj_list_clear (PK_OBJ_LIST(client->priv->package_list));
commit 12d9694991312cef268145e164c97bd16f1909ef
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 10:57:09 2009 +0100
glib: don't exit from the loop when the first tid times out, and we're requeued
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 3958d86..7eb2d72 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -63,7 +63,8 @@
#include "egg-debug.h"
#include "egg-string.h"
-static void pk_client_finalize (GObject *object);
+static void pk_client_finalize (GObject *object);
+static gboolean pk_client_disconnect_proxy (PkClient *client);
#define PK_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_CLIENT, PkClientPrivate))
@@ -3924,6 +3925,9 @@ pk_client_requeue (PkClient *client, GError **error)
pk_obj_list_clear (client->priv->distro_upgrade_list);
pk_obj_list_clear (client->priv->transaction_list);
+ /* don't exit from the loop when the first tid times out */
+ pk_client_disconnect_proxy (client);
+
/* do the correct action with the cached parameters */
if (priv->role == PK_ROLE_ENUM_GET_DEPENDS)
ret = pk_client_get_depends (client, priv->cached_filters, priv->cached_package_ids, priv->cached_force, error);
commit e49580b78cf8a476fa1b87f2441266fce89edbec
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 10:23:27 2009 +0100
cnf: handle SIGINT in command-not-found
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index f6e2c56..5ac0c39 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -23,6 +23,9 @@
#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-glib/packagekit.h>
@@ -51,6 +54,8 @@ typedef struct {
gchar **locations;
} PkCnfPolicyConfig;
+static PkClient *client = NULL;
+
/**
* pk_cnf_find_alternatives_swizzle:
*
@@ -334,7 +339,7 @@ pk_cnf_find_alternatives (const gchar *cmd, guint len)
* pk_cnf_status_changed_cb:
**/
static void
-pk_cnf_status_changed_cb (PkClient *client, PkStatusEnum status, gpointer data)
+pk_cnf_status_changed_cb (PkClient *client_, PkStatusEnum status, gpointer data)
{
const gchar *text = NULL;
@@ -373,7 +378,6 @@ 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)
{
- PkClient *client;
PkControl *control;
GError *error = NULL;
PkBitfield roles;
@@ -390,6 +394,7 @@ pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
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);
roles = pk_control_get_actions (control, NULL);
@@ -399,15 +404,6 @@ pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
goto out;
}
- /* reset instance */
- ret = pk_client_reset (client, &error);
- if (!ret) {
- /* TRANSLATORS: we failed to reset the client, this shouldn't happen */
- egg_warning ("%s: %s", _("Failed to reset client"), error->message);
- g_error_free (error);
- goto out;
- }
-
/* do search */
path = g_build_filename (prefix, cmd, NULL);
egg_debug ("searching for %s", path);
@@ -559,6 +555,40 @@ pk_cnf_spawn_command (const gchar *exec)
}
/**
+ * pk_cnf_sigint_handler:
+ **/
+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);
+ }
+ }
+
+out:
+ /* kill ourselves */
+ egg_debug ("Retrying SIGINT");
+ kill (getpid (), SIGINT);
+}
+
+/**
* main:
**/
int
@@ -604,6 +634,9 @@ main (int argc, char *argv[])
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 ();
commit 95e6737eab95abb2b8aa35baa50df2589cdeec84
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 10:15:11 2009 +0100
cnf: show status rather than just hanging for a long time without any output
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 0704c65..f6e2c56 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -331,6 +331,41 @@ pk_cnf_find_alternatives (const gchar *cmd, guint len)
}
/**
+ * pk_cnf_status_changed_cb:
+ **/
+static void
+pk_cnf_status_changed_cb (PkClient *client, PkStatusEnum status, gpointer data)
+{
+ const gchar *text = 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_find_available:
*
* Find software we could install
@@ -353,6 +388,9 @@ pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
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);
+
roles = pk_control_get_actions (control, NULL);
/* can we search the repos */
commit 4dd5a517d4d2849adceab0376935ff5722b93dc4
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 27 10:01:22 2009 +0100
cnf: Search other directories that commands can be found in, not just /usr/bin
diff --git a/contrib/command-not-found/CommandNotFound.conf b/contrib/command-not-found/CommandNotFound.conf
index 0f52570..a6ff9fa 100644
--- a/contrib/command-not-found/CommandNotFound.conf
+++ b/contrib/command-not-found/CommandNotFound.conf
@@ -2,23 +2,30 @@
[CommandNotFound]
-# This policy controls what to do when a single match is found for a typo.
-# For instance, gnome-power-staatistics is matched to gnome-power-statistics
+# Controls what locations are searched for missing files
+#
+# Entries are separated with ';'
+#
+# default=/usr/bin;/usr/sbin;/bin;/sbin
+SearchLocations=/usr/bin;/usr/sbin;/bin;/sbin
+
+# Controls what to do when a single match is found for a typo.
+# For instance, 'gnome-power-staatistics' is matched to 'gnome-power-statistics'
#
# Allowed values are 'ignore', 'run', 'ask' or 'warn'
#
# default=warn
SingleMatch=warn
-# This policy controls what to do when multiple matches are found for a typo.
-# For instance, dmesgg is matched to mesg and dmesg
+# Controls what to do when multiple matches are found for a typo.
+# For instance, 'dmesgg' is matched to 'mesg' and 'dmesg'
#
# Allowed values are 'ignore', 'ask' or 'warn'
#
# default=warn
MultipleMatch=warn
-# This policy controls if the tool should search for packages in remote
+# Controls if the tool should search for packages in remote
# software sources. This may introduce a non-trivial delay if the sources
# have not been recently refreshed.
#
@@ -27,18 +34,18 @@ MultipleMatch=warn
# default=true
SoftwareSourceSearch=true
-# This policy controls what to do when a single package install is found for
+# Controls what to do when a single package install is found for
# a missing command.
-# For instance, make prompts the user to install automake-1.8
+# For instance, 'make' prompts the user to install automake-1.8
#
# Allowed values are 'ignore', 'install', 'ask' or 'warn'
#
# default=ask
SingleInstall=ask
-# This policy controls what to do when a more than one possible package
+# Controls what to do when a more than one possible package
# is found for a missing command.
-# For instance, make prompts the user to install automake-1.8 or automake-1.10.
+# For instance, 'make' prompts the user to install automake-1.8 or automake-1.10.
#
# Allowed values are 'ignore', 'ask' or 'warn'
#
diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index 23bbdb0..0704c65 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -48,6 +48,7 @@ typedef struct {
PkCnfPolicy single_install;
PkCnfPolicy multiple_install;
gboolean software_source_search;
+ gchar **locations;
} PkCnfPolicyConfig;
/**
@@ -334,8 +335,8 @@ pk_cnf_find_alternatives (const gchar *cmd, guint len)
*
* Find software we could install
**/
-static GPtrArray *
-pk_cnf_find_available (const gchar *cmd)
+static gboolean
+pk_cnf_find_available (GPtrArray *array, const gchar *prefix, const gchar *cmd)
{
PkClient *client;
PkControl *control;
@@ -343,7 +344,6 @@ pk_cnf_find_available (const gchar *cmd)
PkBitfield roles;
PkBitfield filters;
gboolean ret;
- GPtrArray *array;
guint i, len;
PkPackageList *list = NULL;
const PkPackageObj *obj;
@@ -354,7 +354,6 @@ pk_cnf_find_available (const gchar *cmd)
pk_client_set_synchronous (client, TRUE, NULL);
pk_client_set_use_buffer (client, TRUE, NULL);
roles = pk_control_get_actions (control, NULL);
- array = g_ptr_array_new ();
/* can we search the repos */
if (!pk_bitfield_contain (roles, PK_ROLE_ENUM_SEARCH_FILE)) {
@@ -362,8 +361,17 @@ pk_cnf_find_available (const gchar *cmd)
goto out;
}
+ /* reset instance */
+ ret = pk_client_reset (client, &error);
+ if (!ret) {
+ /* TRANSLATORS: we failed to reset the client, this shouldn't happen */
+ egg_warning ("%s: %s", _("Failed to reset client"), error->message);
+ g_error_free (error);
+ goto out;
+ }
+
/* do search */
- path = g_strdup_printf ("/usr/bin/%s", cmd);
+ 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);
@@ -378,6 +386,7 @@ pk_cnf_find_available (const gchar *cmd)
list = pk_client_get_package_list (client);
if (list == NULL) {
egg_warning ("failed to get list");
+ ret = FALSE;
goto out;
}
@@ -399,7 +408,7 @@ out:
g_object_unref (client);
g_free (path);
- return array;
+ return ret;
}
/**
@@ -445,13 +454,17 @@ pk_cnf_get_policy_from_file (GKeyFile *file, const gchar *key)
/**
* pk_cnf_get_config:
**/
-static gboolean
-pk_cnf_get_config (PkCnfPolicyConfig *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;
@@ -459,6 +472,7 @@ pk_cnf_get_config (PkCnfPolicyConfig *config)
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 ();
@@ -476,10 +490,17 @@ pk_cnf_get_config (PkCnfPolicyConfig *config)
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 ret;
+ return config;
}
/**
@@ -510,7 +531,7 @@ main (int argc, char *argv[])
GOptionContext *context;
GPtrArray *array = NULL;
GPtrArray *available = NULL;
- PkCnfPolicyConfig config;
+ PkCnfPolicyConfig *config = NULL;
guint i;
guint len;
gchar *text;
@@ -546,7 +567,7 @@ main (int argc, char *argv[])
goto out;
/* get policy config */
- pk_cnf_get_config (&config);
+ config = pk_cnf_get_config ();
/* get length */
len = egg_strlen (argv[1], 1024);
@@ -562,16 +583,16 @@ main (int argc, char *argv[])
/* one exact possibility */
if (array->len == 1) {
possible = g_ptr_array_index (array, 0);
- if (config.single_match == PK_CNF_POLICY_WARN) {
+ 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) {
+ } else if (config->single_match == PK_CNF_POLICY_RUN) {
pk_cnf_spawn_command (possible);
/* ask */
- } else if (config.single_match == PK_CNF_POLICY_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);
@@ -583,7 +604,7 @@ main (int argc, char *argv[])
/* multiple choice */
} else if (array->len > 1) {
- if (config.multiple_match == PK_CNF_POLICY_WARN) {
+ 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++) {
@@ -592,7 +613,7 @@ main (int argc, char *argv[])
}
/* ask */
- } else if (config.multiple_match == PK_CNF_POLICY_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++) {
@@ -610,16 +631,20 @@ main (int argc, char *argv[])
goto out;
/* only search using PackageKit if configured to do so */
- } else if (config.software_source_search) {
- available = pk_cnf_find_available (argv[1]);
+ } 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) {
+ 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) {
+ } 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);
@@ -633,14 +658,14 @@ main (int argc, char *argv[])
}
/* install */
- } else if (config.single_install == PK_CNF_POLICY_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) {
+ 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++) {
@@ -649,7 +674,7 @@ main (int argc, char *argv[])
}
/* ask */
- } else if (config.multiple_install == PK_CNF_POLICY_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++) {
@@ -676,6 +701,10 @@ main (int argc, char *argv[])
g_print ("\n");
out:
+ 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);
commit 471e9f6ca515b2e24815bfa3ac0047e94a86dc8a
Author: Richard Hughes <richard at hughsie.com>
Date: Sun Jul 26 19:42:48 2009 +0100
Raise the limit of TransactionCreateCommitTimeout to 5 minutes
diff --git a/etc/PackageKit.conf.in b/etc/PackageKit.conf.in
index eb1de79..c40aa88 100644
--- a/etc/PackageKit.conf.in
+++ b/etc/PackageKit.conf.in
@@ -202,8 +202,8 @@ MaximumPackagesToProcess=2500
# number of authentication requests, but setting this shorter will reduce the
# amount of time the user has to authenticate.
#
-# default=30
-TransactionCreateCommitTimeout=30
+# default=300
+TransactionCreateCommitTimeout=300
# How long the transaction should be queriable after it is finished, in seconds
#
commit e5f6d60ea510a2318a5ed0e89c40b01509320d22
Author: Richard Hughes <richard at hughsie.com>
Date: Sun Jul 26 19:40:30 2009 +0100
Add the package name in the authentication details
diff --git a/src/pk-polkit-action-lookup.c b/src/pk-polkit-action-lookup.c
index ce4db8c..604987e 100644
--- a/src/pk-polkit-action-lookup.c
+++ b/src/pk-polkit-action-lookup.c
@@ -235,6 +235,43 @@ out:
}
/**
+ * pk_action_lookup_package_ids_to_string:
+ **/
+static gchar *
+pk_action_lookup_package_ids_to_string (gchar **package_ids)
+{
+ PkPackageId *id;
+ GPtrArray *array = NULL;
+ gchar **names = NULL;
+ gchar *names_str = NULL;
+ guint i;
+
+ /* invalid */
+ if (package_ids == NULL)
+ goto out;
+
+ /* 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]);
+ names_str = g_strdup_printf ("%s-%s", id->name, id->version);
+ g_ptr_array_add (array, names_str);
+ pk_package_id_free (id);
+ }
+
+ /* create string */
+ names = pk_ptr_array_to_strv (array);
+ names_str = g_strjoinv (", ", names);
+out:
+ if (array != NULL) {
+ g_ptr_array_foreach (array, (GFunc) g_free, NULL);
+ g_ptr_array_free (array, TRUE);
+ }
+ g_strfreev (names);
+ return names_str;
+}
+
+/**
* pk_action_lookup_get_details:
**/
static PolkitDetails *
@@ -242,6 +279,10 @@ pk_action_lookup_get_details (PolkitBackendActionLookup *lookup, const gchar *ac
PolkitDetails *action_details, PolkitActionDescription *action_description)
{
const gchar *str;
+ const gchar *title;
+ gchar **package_ids;
+ gchar *text;
+ guint len;
PolkitDetails *details;
if (!g_str_has_prefix (action_id, "org.freedesktop.packagekit."))
@@ -263,13 +304,28 @@ pk_action_lookup_get_details (PolkitBackendActionLookup *lookup, const gchar *ac
polkit_details_insert (details, _("Only trusted"), str);
}
- /* only-trusted */
+ /* command line */
str = polkit_details_lookup (action_details, "cmdline");
if (str != NULL) {
/* TRANSLATORS: the command line of the thing that wants the authentication */
polkit_details_insert (details, _("Command line"), str);
}
+ /* packages */
+ str = polkit_details_lookup (action_details, "package_ids");
+ if (str != NULL) {
+ package_ids = pk_package_ids_from_text (str);
+ text = pk_action_lookup_package_ids_to_string (package_ids);
+ len = g_strv_length (package_ids);
+
+ /* TRANSLATORS: title, the names of the packages that the method is processing */
+ title = ngettext ("Package", "Packages", len);
+ polkit_details_insert (details, title, text);
+
+ g_strfreev (package_ids);
+ g_free (text);
+ }
+
return details;
}
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 2a7cb60..5db6bf5 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -129,7 +129,6 @@ struct PkTransactionPrivate
gchar *cached_package_id;
gchar **cached_package_ids;
gchar *cached_transaction_id;
- gchar *cached_full_path;
gchar **cached_full_paths;
PkBitfield cached_filters;
gchar *cached_search;
@@ -1314,7 +1313,6 @@ pk_transaction_set_running (PkTransaction *transaction)
pk_store_set_strv (store, "full_paths", priv->cached_full_paths);
pk_store_set_string (store, "package_id", priv->cached_package_id);
pk_store_set_string (store, "transaction_id", priv->cached_transaction_id);
- pk_store_set_string (store, "full_path", priv->cached_full_path);
pk_store_set_string (store, "search", priv->cached_search);
pk_store_set_string (store, "repo_id", priv->cached_repo_id);
pk_store_set_string (store, "key_id", priv->cached_key_id);
@@ -1777,6 +1775,7 @@ pk_transaction_obtain_authorization (PkTransaction *transaction, gboolean only_t
PolkitDetails *details;
const gchar *action_id;
gboolean ret = FALSE;
+ gchar *package_ids = NULL;
g_return_val_if_fail (transaction->priv->sender != NULL, FALSE);
@@ -1810,6 +1809,16 @@ pk_transaction_obtain_authorization (PkTransaction *transaction, gboolean only_t
details = polkit_details_new ();
polkit_details_insert (details, "role", pk_role_enum_to_text (transaction->priv->role));
polkit_details_insert (details, "only-trusted", transaction->priv->cached_only_trusted ? "true" : "false");
+
+ /* do we have package details? */
+ if (transaction->priv->cached_package_id != NULL)
+ package_ids = g_strdup (transaction->priv->cached_package_id);
+ else if (transaction->priv->cached_package_ids != NULL)
+ package_ids = pk_package_ids_to_text (transaction->priv->cached_package_ids);
+
+ /* save optional stuff */
+ if (package_ids != NULL)
+ polkit_details_insert (details, "package_ids", package_ids);
if (transaction->priv->cmdline != NULL)
polkit_details_insert (details, "cmdline", transaction->priv->cmdline);
@@ -1829,6 +1838,7 @@ pk_transaction_obtain_authorization (PkTransaction *transaction, gboolean only_t
/* assume success, as this is async */
ret = TRUE;
out:
+ g_free (package_ids);
return ret;
}
@@ -4432,7 +4442,6 @@ pk_transaction_init (PkTransaction *transaction)
transaction->priv->cached_package_id = NULL;
transaction->priv->cached_package_ids = NULL;
transaction->priv->cached_transaction_id = NULL;
- transaction->priv->cached_full_path = NULL;
transaction->priv->cached_full_paths = NULL;
transaction->priv->cached_filters = PK_FILTER_ENUM_NONE;
transaction->priv->cached_search = NULL;
commit 4266e060781730c00bfb9cfb455d49af2becdcbd
Author: nazgul <nazgul at fedoraproject.org>
Date: Thu Jul 23 21:47:03 2009 +0000
Sending translation for German
diff --git a/po/de.po b/po/de.po
index 0b9ff92..a708fcb 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,23 +1,28 @@
# German translation of policycoreutils.
# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
-#
+# #
+# # package - Paket
+# # service pack - Service-Pack
+# #
# Holger Wansing <linux at wansing-online.de>, 2006.
# Timo Trinks <ttrinks at redhat.com>, 2006, 2007.
# Michael Schönitzer <michael at schoenitzer.de>, 2007.
-# Fabian Affolter <fab at fedoraproject.org>, 2008-2009.
+# Fabian Affolter <fab at fedoraproject.org>, 2008.
# Timo Trinks <ttrinks at redhat.com>, 2008.
# Thomas Spura <tomspur at fedoraproject.org>, 2008.
# Daniela Kugelmann <dkugelma at redhat.com >, 2008.
# Stefan Posdzich <cheekyboinc at foresightlinux.org>, 2008.
-#
+# Fabian Affolter <fab at fedoraproject.org>, 2009.
+# Christian Kirbach <Christian.Kirbach at googlemail.com>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.de\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-04-16 20:08+0000\n"
-"PO-Revision-Date: 2009-04-16 22:15+0100\n"
-"Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?"
+"product=PackageKit&component=General\n"
+"POT-Creation-Date: 2009-07-21 03:24+0000\n"
+"PO-Revision-Date: 2009-07-15 22:15+0200\n"
+"Last-Translator: Christian Kirbach <Christian.Kirbach at googlemail.com>\n"
"Language-Team: German <gnome-de at gnome.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -25,708 +30,719 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:231
msgid "Transaction"
msgstr "Transaktion"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:233
msgid "System time"
msgstr "Systemzeit"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:238
+#: ../client/pk-console.c:235
msgid "Succeeded"
msgstr "Erfolgreich"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:235 ../client/pk-console.c:402
msgid "True"
msgstr "Wahr"
-#: ../client/pk-console.c:238
-#: ../client/pk-console.c:405
+#: ../client/pk-console.c:235 ../client/pk-console.c:402
msgid "False"
msgstr "Falsch"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:240
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:237 ../src/pk-polkit-action-lookup.c:256
msgid "Role"
msgstr "Rolle"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:242
msgid "Duration"
msgstr "Dauer"
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:242
msgid "(seconds)"
msgstr "(Sekunden)"
#. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:249
+#. TRANSLATORS: the command line of the thing that wants the authentication
+#: ../client/pk-console.c:246 ../src/pk-polkit-action-lookup.c:270
msgid "Command line"
msgstr "Befehlszeile"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:251
+#: ../client/pk-console.c:248
msgid "User ID"
-msgstr "Benutzer-ID"
+msgstr "Benutzerkennung"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:255
msgid "Username"
msgstr "Benutzername"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:262
+#: ../client/pk-console.c:259
msgid "Real name"
msgstr "Echter Name"
-#: ../client/pk-console.c:270
+#: ../client/pk-console.c:267
msgid "Affected packages:"
msgstr "Beteiligte Pakete:"
-#: ../client/pk-console.c:272
+#: ../client/pk-console.c:269
msgid "Affected packages: None"
msgstr "Beteilige Pakete: Keine"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:297
+#: ../client/pk-console.c:294
msgid "Distribution"
msgstr "Distribution"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:299
+#: ../client/pk-console.c:296
msgid "Type"
msgstr "Typ"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301
-#: ../client/pk-console.c:324
+#: ../client/pk-console.c:298 ../client/pk-console.c:321
msgid "Summary"
msgstr "Zusammenfassung"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:313
+#: ../client/pk-console.c:310
msgid "Category"
msgstr "Kategorie"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:315
+#: ../client/pk-console.c:312
msgid "ID"
-msgstr "ID"
+msgstr "Kennung"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:318
+#: ../client/pk-console.c:315
msgid "Parent"
msgstr "Elternteil"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:321
+#: ../client/pk-console.c:318
msgid "Name"
msgstr "Name"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:327
+#: ../client/pk-console.c:324
msgid "Icon"
msgstr "Symbol"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:342
+#: ../client/pk-console.c:339
msgid "Details about the update:"
-msgstr "Details über die Aktualisierung"
+msgstr "Details zur Aktualisierung:"
#. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:344
+#: ../client/pk-console.c:341
msgid "Package"
msgstr "Paket"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:344
msgid "Updates"
msgstr "Aktualisierungen"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:348
msgid "Obsoletes"
msgstr "Veraltete"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:352
msgid "Vendor"
msgstr "Hersteller"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:356
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:360
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:364
msgid "Restart"
msgstr "Neustart"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:368
msgid "Update text"
-msgstr "Aktualisierungsbescheibung"
+msgstr "Text aktualisieren"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:372
msgid "Changes"
msgstr "Ãnderungen"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:379
+#: ../client/pk-console.c:376
msgid "State"
msgstr "Status"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:384
+#: ../client/pk-console.c:381
msgid "Issued"
msgstr "Veröffentlicht"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:389
+#: ../client/pk-console.c:386
msgid "Updated"
-msgstr "Aktualisierungsdatum"
+msgstr "Aktualisiert"
-#: ../client/pk-console.c:476
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:473 ../client/pk-console.c:475
msgid "Percentage"
msgstr "Prozentsatz"
-#: ../client/pk-console.c:478
+#: ../client/pk-console.c:475
msgid "Unknown"
msgstr "Unbekannt"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:529
+#: ../client/pk-console.c:517
msgid "System restart required by:"
-msgstr "Ein Neustart ist erforderlich durch:"
+msgstr "Ein Neustart wird erfordert von:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:532
+#: ../client/pk-console.c:520
msgid "Session restart required:"
msgstr "Ein Neustart der Sitzung ist erforderlich:"
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:523
+msgid "System restart (security) required by:"
+msgstr "Ein Neustart (zur Verbesserung der Sicherheit) wird erfordert von:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:526
+msgid "Session restart (security) required:"
+msgstr ""
+"Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
+
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:535
+#: ../client/pk-console.c:529
msgid "Application restart required by:"
msgstr "Ein Programm-Neustart wird benötigt von:"
-#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:572
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:584
msgid "Please restart the computer to complete the update."
msgstr "Bitte starten Sie den Computer neu, um das Update abzuschlieÃen."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:575
+#: ../client/pk-console.c:587
msgid "Please logout and login to complete the update."
-msgstr "Bitte erneut einloggen um das Update abzuschlieÃen."
+msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschlieÃen."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:578
+#: ../client/pk-console.c:590
msgid "Please restart the application as it is being used."
msgstr "Starten Sie die Anwendung neu, da sie benutzt wird."
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:593
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Bitte starten Sie den Computer neu, um die Aktualisierung abzuschlieÃen, "
+"denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:596
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Bitte erneut anmelden, um die Aktualisierung abzuschlieÃen, denn es sind "
+"wichtige Sicherheitsaktualisierungen installiert worden."
+
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:691
+#: ../client/pk-console.c:723
#, c-format
msgid "The package %s is already installed"
-msgstr "Das Paket %s ist bereits installiert"
+msgstr "Das Paket »%s« ist bereits installiert"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:699
+#: ../client/pk-console.c:731
#, c-format
msgid "The package %s could not be installed: %s"
-msgstr "Das Paket %s konnte nicht installiert werden: %s"
+msgstr "Das Paket »%s« konnte nicht installiert werden: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724
-#: ../client/pk-console.c:751
-#: ../client/pk-console.c:847
-#: ../client/pk-console.c:964
-#: ../client/pk-tools-common.c:62
-#: ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:756 ../client/pk-console.c:779
+#: ../client/pk-console.c:875 ../client/pk-console.c:992
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
#: ../client/pk-tools-common.c:89
#, c-format
msgid "Internal error: %s"
msgstr "Interner Fehler: %s"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732
-#: ../client/pk-console.c:1360
+#: ../client/pk-console.c:764 ../client/pk-console.c:1388
#, c-format
msgid "This tool could not install the packages: %s"
-msgstr "Konnte folgende Pakete nicht installieren: %s"
+msgstr "Folgende Pakete konnten nicht installiert werden: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:759
+#: ../client/pk-console.c:787
#, c-format
msgid "This tool could not install the files: %s"
-msgstr "Die Dateien konnten nicht installieren werden: %s"
+msgstr "Folgende Dateien konnten nicht installiert werden: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:815
+#: ../client/pk-console.c:843
#, c-format
msgid "This tool could not remove %s: %s"
-msgstr "Dieses Werkzeug konnte %s nicht entfernen: %s"
+msgstr "»%s« konnte nicht entfernt werden: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838
-#: ../client/pk-console.c:876
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:866 ../client/pk-console.c:904
+#: ../client/pk-console.c:937
#, c-format
msgid "This tool could not remove the packages: %s"
-msgstr "Konnte folgende Pakete nicht entfernen: %s"
+msgstr "Folgende Pakete konnten nicht entfernt werden: %s"
#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:888
+#: ../client/pk-console.c:916
msgid "The following packages have to be removed:"
msgstr "Die folgenden Pakete müssen entfernt werden:"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:895
+#: ../client/pk-console.c:923
msgid "Proceed removing additional packages?"
msgstr "Sollen die zusätzlichen Pakete entfernt werden?"
#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:900
+#: ../client/pk-console.c:928
msgid "The package removal was canceled!"
-msgstr "Die Entfernung der Pakete wurde abgebrochen!"
+msgstr "Das Entfernen der Pakete wurde abgebrochen!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:969
#, c-format
msgid "This tool could not download the package %s as it could not be found"
-msgstr "Dieses Werkzeug konnte das Paket %s nicht finden und herunterladen"
+msgstr ""
+"Das Paket »%s« konnte nicht heruntergeladen werden, weil es nicht gefunden "
+"wurde"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1000
#, c-format
msgid "This tool could not download the packages: %s"
-msgstr "Konnte folgende Pakete nicht herunterladen: %s"
+msgstr "Folgende Pakete konnten nicht heruntergeladen werden: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999
-#: ../client/pk-console.c:1008
+#: ../client/pk-console.c:1027 ../client/pk-console.c:1036
#, c-format
msgid "This tool could not update %s: %s"
-msgstr "Dieses Werkzeug konnte %s nicht aktualisieren: %s"
+msgstr "»%s« konnte nicht aktualisiert werden: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030
-#: ../client/pk-console.c:1038
+#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
#, c-format
msgid "This tool could not get the requirements for %s: %s"
-msgstr "Dieses Werkzeug konnte die Voraussetzungen %s nicht beziehen: %s"
+msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060
-#: ../client/pk-console.c:1068
+#: ../client/pk-console.c:1088 ../client/pk-console.c:1096
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
-msgstr "Dieses Werkzeug konnte keine Abhängigkeiten für %s beziehen: %s"
+msgstr "Die Abhängigkeiten für »%s« konnte nicht ermittelt werden: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090
-#: ../client/pk-console.c:1098
+#: ../client/pk-console.c:1118 ../client/pk-console.c:1126
#, c-format
msgid "This tool could not get package details for %s: %s"
-msgstr "Dieses Werkzeug konnte die Paketdetails für %s beziehen: %s"
+msgstr "Die Detailinformationen für »%s« konnten nicht ermittelt werden: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1120
+#: ../client/pk-console.c:1148
#, c-format
msgid "This tool could not find the files for %s: %s"
-msgstr "Dieses Werkzeug konnte keine Dateien für %s finden: %s"
+msgstr "Die Dateien für »%s« konnten nicht gefunden werden: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1128
+#: ../client/pk-console.c:1156
#, c-format
msgid "This tool could not get the file list for %s: %s"
-msgstr "Dieses Werkzeug konnte die Datei-Liste für %s nicht erstellen: %s"
+msgstr "Die Dateiliste für »%s« konnte nicht ermittelt werden: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1150
+#: ../client/pk-console.c:1178
#, c-format
msgid "File already exists: %s"
-msgstr "Datei bereits vorhanden: %s"
+msgstr "Datei ist bereits vorhanden: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155
-#: ../client/pk-console.c:1211
-#: ../client/pk-console.c:1286
+#: ../client/pk-console.c:1183 ../client/pk-console.c:1239
+#: ../client/pk-console.c:1314
msgid "Getting package list"
-msgstr "Beziehe Paket-Liste"
+msgstr "Paketliste wird geholt"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161
-#: ../client/pk-console.c:1217
-#: ../client/pk-console.c:1292
+#: ../client/pk-console.c:1189 ../client/pk-console.c:1245
+#: ../client/pk-console.c:1320
#, c-format
msgid "This tool could not get package list: %s"
-msgstr "Konnte folgende Pakete nicht beziehen: %s"
+msgstr "Folgende Paketliste konnte nicht geholt werden: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1172
+#: ../client/pk-console.c:1200
#, c-format
msgid "Failed to save to disk"
-msgstr "Speicher auf die Festplatte fehlgeschlagen"
+msgstr "Speichern auf dem Datenträger ist fehlgeschlagen"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206
-#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1234 ../client/pk-console.c:1309
#, c-format
msgid "File does not exist: %s"
msgstr "Datei nicht vorhanden: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1238
+#: ../client/pk-console.c:1266
msgid "Packages to add"
-msgstr "Paket zum Hinzufügen"
+msgstr "Hinzuzufügende Pakete"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1246
+#: ../client/pk-console.c:1274
msgid "Packages to remove"
-msgstr "Pakete zum Entfernen"
+msgstr "Zu entfernende Pakete"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1314
+#: ../client/pk-console.c:1342
#, c-format
msgid "No new packages need to be installed"
-msgstr "Keine neuen Pakete müssen installiert werden"
+msgstr "Es müssen keine neuen Pakete installiert werden"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1348
msgid "To install"
-msgstr "ZUm Installieren"
+msgstr "Zum Installieren"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1332
+#: ../client/pk-console.c:1360
msgid "Searching for package: "
msgstr "Suche nach Paket:"
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1336
+#: ../client/pk-console.c:1364
msgid "not found."
msgstr "nicht gefunden."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1375
#, c-format
msgid "No packages can be found to install"
-msgstr "Keine Pakete zum Installieren gefunden"
+msgstr "Es können keine Pakete zum Installieren gefunden werden"
#. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1353
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#: ../client/pk-console.c:1381
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:868
+#, c-format
msgid "Installing packages"
-msgstr "Installiere Pakete"
+msgstr "Pakete werden installiert"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1389
+#: ../client/pk-console.c:1417
#, c-format
msgid "This tool could not find the update details for %s: %s"
-msgstr "Dieses Werkzeug konnte für %s keine Aktualisierungsdetails finden: %s"
+msgstr ""
+"Die Aktualisierungsinformationen für »%s« konnten nicht gefunden werden: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1397
+#: ../client/pk-console.c:1425
#, c-format
msgid "This tool could not get the update details for %s: %s"
-msgstr "Dieses Werkzeug konnte keine Aktualisierungsdetails für %s finden: %s"
+msgstr ""
+"Die Aktualisierungsinformationen für »%s« konnten nicht ermittelt werden: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1456
msgid "Error:"
msgstr "Fehler:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1457
+#: ../client/pk-console.c:1470
msgid "Package description"
msgstr "Paketbeschreibung"
#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:1473
+#: ../client/pk-console.c:1486
msgid "Message:"
-msgstr "Nachricht:"
+msgstr "Hinweis:"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1514
msgid "Package files"
-msgstr "Paket-Dateien"
+msgstr "Paketdateien"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1509
+#: ../client/pk-console.c:1522
msgid "No files"
msgstr "Keine Dateien"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1545
msgid "Repository signature required"
-msgstr "Signatur der Paketquellen benötigt"
+msgstr "Signatur des Paketdepots wird benötigt"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1542
+#: ../client/pk-console.c:1555
msgid "Do you accept this signature?"
msgstr "Akzeptieren Sie diese Signatur?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1546
+#: ../client/pk-console.c:1559
msgid "The signature was not accepted."
msgstr "Diese Signatur wurde nicht akzeptiert."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1593
msgid "End user license agreement required"
-msgstr "Endbenutzer Lizenzvereinbarung benötigt"
+msgstr "Lizenzvereinbarung für Endbenutzer ist erforderlich"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1587
+#: ../client/pk-console.c:1600
msgid "Do you agree to this license?"
msgstr "Sind Sie mit dieser Lizenz einverstanden?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1591
+#: ../client/pk-console.c:1604
msgid "The license was refused."
msgstr "Die Lizenz wurde zurückgewiesen."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1620
+#: ../client/pk-console.c:1633
msgid "The daemon crashed mid-transaction!"
msgstr "Der Dämon stürzte während der Transaktion ab!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1673
+#: ../client/pk-console.c:1686
msgid "PackageKit Console Interface"
-msgstr "PackageKit-Konsolen-Interface"
+msgstr "Schnittstelle zur PackageKit-Konsole"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1675
+#: ../client/pk-console.c:1688
msgid "Subcommands:"
msgstr "Unterbefehle:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1767
-#: ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
-#: ../contrib/command-not-found/pk-command-not-found.c:518
-#: ../src/pk-main.c:199
+#: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
+#: ../contrib/command-not-found/pk-command-not-found.c:521
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
+#: ../src/pk-main.c:211
msgid "Show extra debugging information"
-msgstr "Zeige extra Debug-Informationen"
+msgstr "Erweiterte Fehlerdiagnose-Informationen anzeigen"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1770
-#: ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1784 ../client/pk-monitor.c:130
msgid "Show the program version and exit"
-msgstr "Zeige Programm-Version und beende"
+msgstr "Programm-Version anzeigen und beenden"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1773
+#: ../client/pk-console.c:1787
msgid "Set the filter, e.g. installed"
-msgstr "Setze den Filter, z.B. installiert"
+msgstr "Den Filter setzen, z.B. »installiert«"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1790
msgid "Exit without waiting for actions to complete"
-msgstr "Beende, ohne auf Beendigung der Aktionen zu warten"
+msgstr "Beenden, ohne auf Beendigung der Aktionen zu warten"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1803
+#: ../client/pk-console.c:1817
msgid "This tool could not connect to system DBUS."
-msgstr "Dieses Werkzeug konnte nicht zum System-DBUS verbinden."
+msgstr "Es konnte keine Verbindung zum System-DBUS aufgebaut werden."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1894
+#: ../client/pk-console.c:1907
msgid "The filter specified was invalid"
msgstr "Der angegebene Filter war ungültig"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1926
msgid "A search type is required, e.g. name"
-msgstr "Ein Suchtyp ist nötig, z.B. Name"
+msgstr "Eine Suchart ist nötig, z.B. »Name«"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1918
-#: ../client/pk-console.c:1926
-#: ../client/pk-console.c:1934
-#: ../client/pk-console.c:1942
+#: ../client/pk-console.c:1933 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1951 ../client/pk-console.c:1960
msgid "A search term is required"
-msgstr "Einen Suchterm wird benötigt"
+msgstr "Ein Suchbegriff ist erforderlich"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1948
+#: ../client/pk-console.c:1967
msgid "Invalid search type"
-msgstr "Ungültiger Suchtyp"
+msgstr "Ungültige Suchart"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1954
+#: ../client/pk-console.c:1973
msgid "A package name or filename to install is required"
msgstr "Ein Paket- oder Dateiname ist zur Installation nötig"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1962
-#, fuzzy
+#: ../client/pk-console.c:1982
msgid "A type, key_id and package_id are required"
-msgstr "Sie müssen einen Typ, Schlüssel_id und Paket_id auswählen"
+msgstr "Ein Typ, Schlüsselkennung und Paketkennung sind nötig"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1970
+#: ../client/pk-console.c:1991
msgid "A package name to remove is required"
-msgstr "Der Name eines Pakets wird benötigt, das entfernt werden soll."
+msgstr "Zum Entfernen wird ein Paketname benötigt"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1977
-msgid "A destination directory and then the package names to download are required"
-msgstr "Sie müssen ein Zielverzeichnis und dann die Pakete zum Herunterladen angeben"
+#: ../client/pk-console.c:1999
+#, fuzzy
+#| msgid ""
+#| "A destination directory and then the package names to download are "
+#| "required"
+msgid "A destination directory and the package names to download are required"
+msgstr "Es sind ein Zielordner und dann ein Paketname zum Herunterladen nötig"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1983
+#: ../client/pk-console.c:2006
msgid "Directory not found"
-msgstr "Verzeichnis nicht gefunden"
+msgstr "Ordner nicht gefunden"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1990
-#, fuzzy
+#: ../client/pk-console.c:2014
msgid "A licence identifier (eula-id) is required"
-msgstr "Sie müssen eine Lizenz (eula-id) angeben"
+msgstr "Eine Lizenzbezeichnung (eula-id) ist erforderlich"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1999
-#, fuzzy
+#: ../client/pk-console.c:2024
msgid "A transaction identifier (tid) is required"
-msgstr "Ein Programm-Neustart wird benötigt"
+msgstr "Eine Transaktionsbezeichnung (tid) ist erforderlich"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:2015
-#, fuzzy
+#: ../client/pk-console.c:2041
msgid "A package name to resolve is required"
-msgstr "Ein Programm-Neustart wird benötigt"
+msgstr "Ein Paketname ist zur Auflösung erforderlich"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2023
-#: ../client/pk-console.c:2031
-#, fuzzy
+#: ../client/pk-console.c:2050 ../client/pk-console.c:2059
msgid "A repository name is required"
-msgstr "Signatur der Paketquellen benötigt"
+msgstr "Ein Depotname wird benötigt"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2039
-#, fuzzy
+#: ../client/pk-console.c:2068
msgid "A repo name, parameter and value are required"
-msgstr "Sie müssen einen Repositorynamen/Parameter und Wert angeben"
+msgstr "Ein Depotname, Parameter und Wert sind erforderlich"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2052
-#, fuzzy
+#: ../client/pk-console.c:2082
msgid "An action, e.g. 'update-system' is required"
-msgstr "Ein Programm-Neustart wird benötigt"
+msgstr "Ein Vorgang, z.B. »update-system«, wird benötigt"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2058
-#, fuzzy
+#: ../client/pk-console.c:2089
msgid "A correct role is required"
-msgstr "Ein Programm-Neustart wird benötigt"
+msgstr "Eine korrekte Rolle wird benötigt"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2064
+#: ../client/pk-console.c:2096
msgid "Failed to get the time since this action was last completed"
-msgstr "Es war nicht möglich, die Zeit seit der letzten Fertigstellung festzustellen"
+msgstr ""
+"Es war nicht möglich, die Zeit seit der letzten Fertigstellung festzustellen"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2073
-#: ../client/pk-console.c:2084
-#: ../client/pk-console.c:2092
-#: ../client/pk-console.c:2108
-#: ../client/pk-console.c:2116
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2106 ../client/pk-console.c:2118
+#: ../client/pk-console.c:2127 ../client/pk-console.c:2145
+#: ../client/pk-console.c:2154 ../client/pk-generate-pack.c:241
msgid "A package name is required"
msgstr "Ein Paketname wird benötigt"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2100
-#, fuzzy
+#: ../client/pk-console.c:2136
msgid "A package provide string is required"
-msgstr "Ein Programm-Neustart wird benötigt"
+msgstr "Die Zeichenkette »Stellt bereit« wird benötigt"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2124
-#, fuzzy
+#: ../client/pk-console.c:2163
msgid "A list file name to create is required"
-msgstr "Ein Neustart ist erforderlich"
+msgstr "Ein Dateiname ist zur Erstellung der Liste erforderlich"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2133
-#: ../client/pk-console.c:2142
-#, fuzzy
+#: ../client/pk-console.c:2173 ../client/pk-console.c:2183
msgid "A list file to open is required"
-msgstr "Ein Aus- und Einloggen ist erforderlich"
+msgstr "Ein Dateiname ist zum Ãffnen der Liste erforderlich"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2195
+#: ../client/pk-console.c:2237
#, c-format
msgid "Option '%s' is not supported"
-msgstr "Option '%s' wird nicht unterstützt"
+msgstr "Option »%s« wird nicht unterstützt"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2208
+#: ../client/pk-console.c:2250
msgid "Incorrect privileges for this operation"
-msgstr "Sie haben nicht die notwendigen Privilegien für diese Operation"
+msgstr "Sie haben nicht die notwendigen Rechte für diese Operation"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2211
+#: ../client/pk-console.c:2253
msgid "Command failed"
-msgstr "Befehl fehlgeschlagen"
+msgstr "Ausführung des Befehls fehlgeschlagen"
#. TRANSLATORS: This is the state of the transaction
#: ../client/pk-generate-pack.c:101
msgid "Downloading"
-msgstr "Lade herunter"
+msgstr "Es wird heruntergeladen"
#. TRANSLATORS: This is when the main packages are being downloaded
#: ../client/pk-generate-pack.c:121
msgid "Downloading packages"
-msgstr "Lade Pakete herunter"
+msgstr "Pakete werden heruntergeladen"
#. TRANSLATORS: This is when the dependency packages are being downloaded
#: ../client/pk-generate-pack.c:126
msgid "Downloading dependencies"
-msgstr "Lade Abhängihkeiten herunter"
+msgstr "Abhängigkeiten werden heruntergeladen"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
#: ../client/pk-generate-pack.c:188
msgid "Set the file name of dependencies to be excluded"
-msgstr "Setze den Dateiname der Abhängigkeiten, die ausgeschlossen werden"
+msgstr "Den Dateinamen der Abhängigkeiten festlegen, die ausgeschlossen werden"
#. TRANSLATORS: the output location
#: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "Das Ausgabe-Verzeichnis (Das aktuelle Verzeichnis wird als Standard benutzt.)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"Die Ausgabedatei oder der Ausgabeordner (falls leer, wird der aktuelle "
+"Ordner verwendet)"
#. TRANSLATORS: put a list of packages in the pack
#: ../client/pk-generate-pack.c:194
msgid "The package to be put into the service pack"
-msgstr "Das Paket in das Service-Pack integrieren"
+msgstr "Das Paket zum Hinzufügen in das Service-Pack"
#. TRANSLATORS: put all pending updates in the pack
#: ../client/pk-generate-pack.c:197
msgid "Put all updates available in the service pack"
-msgstr "Füge alle Aktualisierungen dem Service-Pack hinzu"
+msgstr "Alle verfügbaren Aktualisierungen zum Service-Pack hinzufügen"
#. TRANSLATORS: This is when the user fails to supply the correct arguments
#: ../client/pk-generate-pack.c:225
msgid "Neither --package or --updates option selected."
-msgstr "Weder --package noch --updates wurden als Option gewählt."
+msgstr "Weder »--package« noch »--updates« wurden als Option gewählt."
#. TRANSLATORS: This is when the user fails to supply just one argument
#: ../client/pk-generate-pack.c:233
@@ -736,73 +752,88 @@ msgstr "Beide Optionen ausgewählt."
#. TRANSLATORS: This is when the user fails to supply the output
#: ../client/pk-generate-pack.c:249
msgid "A output directory or file name is required"
-msgstr "Ein Ausgabeverzeichnis oder ein Dateiname ist erforderlich"
+msgstr "Ein Ausgabeordner oder Dateiname ist erforderlich"
#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
#. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
msgid "The package manager cannot perform this type of operation."
-msgstr "Der Paket-Verwalter kann diesen Typ von Aufgabe nicht ausführen."
+msgstr "Die Paketverwaltung kann diesen Aufgabentyp nicht ausführen."
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:280
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+"Service-Packs können nicht erstellt werden, weil PackageKit ohne "
+"Unterstützung für »libarchive« erstellt wurde."
#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:291
msgid "If specifying a file, the service pack name must end with"
-msgstr "Wenn Sie eine Datei angeben, muss der Service-Pack-Name Enden mit"
+msgstr ""
+"Wenn Sie eine Datei angeben, dann muss der Name des Service-Packs enden mit"
#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:301
+#: ../client/pk-generate-pack.c:307
msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr "Ein Pack mit dem selben Namen existiert bereits, möchten Sie es überschreiben?"
+msgstr ""
+"Ein Service-Pack mit dem selben Namen existiert bereits, soll es "
+"überschrieben werden?"
#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:304
+#: ../client/pk-generate-pack.c:310
msgid "The pack was not overwritten."
-msgstr "Das Pack wurde nicht überschrieben."
+msgstr "Das Service-Pack wurde nicht überschrieben."
#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:317
+#: ../client/pk-generate-pack.c:323
msgid "Failed to create directory:"
-msgstr "Verzeichnis konnte nicht erstellt werden:"
+msgstr "Ordner konnte nicht erstellt werden:"
#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:327
+#: ../client/pk-generate-pack.c:333
msgid "Failed to open package list."
-msgstr "Konnte Paketliste nicht öffnen."
+msgstr "Paketliste konnte nicht geöffnet werden."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:338
+#: ../client/pk-generate-pack.c:344
msgid "Finding package name."
-msgstr "Suche Paketname."
+msgstr "Paketnamen werden gesucht."
#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:342
+#: ../client/pk-generate-pack.c:348
#, c-format
msgid "Failed to find package '%s': %s"
-msgstr "Paket '%s' konnte nicht gefunden werden: %s"
+msgstr "Paket »%s« konnte nicht gefunden werden: %s"
#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:365
msgid "Creating service pack..."
-msgstr "Erstelle Servicepack ..."
+msgstr "Service-Pack wird erstellt â¦"
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:366
+#: ../client/pk-generate-pack.c:372
#, c-format
msgid "Service pack created '%s'"
-msgstr "Servicepack erstellt '%s'"
+msgstr "Service-Pack »%s« wurde erstellt"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:371
+#: ../client/pk-generate-pack.c:377
#, c-format
msgid "Failed to create '%s': %s"
-msgstr "Erzeugen von '%s' fehlgeschlagen: %s"
+msgstr "Erzeugen von »%s« ist fehlgeschlagen: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
msgid "PackageKit Monitor"
msgstr "PackageKit-Monitor"
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr ""
+
#. TRANSLATORS: The package was not found in any software sources
#: ../client/pk-tools-common.c:118
#, c-format
@@ -812,12 +843,12 @@ msgstr "Das Paket konnte nicht gefunden werden"
#. 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 "Es passen mehr als ein Pakete:"
+msgstr "Es passt mehr als ein Paket:"
#. TRANSLATORS: This finds out which package in the list to use
#: ../client/pk-tools-common.c:137
msgid "Please choose the correct package: "
-msgstr "Bitte wählen Sie das korrekte Paket: "
+msgstr "Bitte wählen Sie das richtige Paket: "
#: ../client/pk-tools-common.c:162
#, c-format
@@ -825,127 +856,317 @@ msgid "Please enter a number from 1 to %i: "
msgstr "Bitte geben Sie eine Zahl zwischen 1 und %i ein: "
#. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:372
msgid "Failed to search for file"
-msgstr "Dateisuche fehlgeschlagen"
+msgstr "Die Suche nach der Datei ist fehlgeschlagen"
#. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:493
+#: ../contrib/command-not-found/pk-command-not-found.c:496
msgid "Failed to launch:"
-msgstr "Konnte nicht ausgeführt werden:"
+msgstr "Start ist fehlgeschlagen:"
#. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:534
+#: ../contrib/command-not-found/pk-command-not-found.c:537
msgid "PackageKit Command Not Found"
-msgstr "PackageKit Befehl nicht gefunden"
+msgstr "PackageKit-Befehl wurde nicht gefunden"
#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:557
+#: ../contrib/command-not-found/pk-command-not-found.c:560
msgid "Command not found."
-msgstr "Befehl nicht gefunden."
+msgstr "Befehl wurde nicht gefunden."
#. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:564
+#: ../contrib/command-not-found/pk-command-not-found.c:567
msgid "Similar command is:"
-msgstr "Ãhnlicher Befehl:"
+msgstr "Ein ähnlicher Befehl lautet:"
#. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:573
+#: ../contrib/command-not-found/pk-command-not-found.c:576
msgid "Run similar command:"
msgstr "Ãhnlichen Befehl ausführen:"
#. TRANSLATORS: show the user a list of commands that they could have meant
#. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:585
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:588
+#: ../contrib/command-not-found/pk-command-not-found.c:597
msgid "Similar commands are:"
-msgstr "Ãhnliche Befehle:"
+msgstr "Ãhnliche Befehle sind:"
#. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:601
+#: ../contrib/command-not-found/pk-command-not-found.c:604
msgid "Please choose a command to run"
-msgstr "Bitte wählen Sie einen Befehl zum Ausfüühren"
+msgstr "Bitte wählen Sie einen Befehl zum Ausführen"
#. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:616
+#: ../contrib/command-not-found/pk-command-not-found.c:619
msgid "The package providing this file is:"
-msgstr "Das Paket, das diese Datei zur Verfügung stellt, ist:"
+msgstr "Das folgende Paket stellt diese Datei bereit:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:621
+#: ../contrib/command-not-found/pk-command-not-found.c:624
#, c-format
msgid "Install package '%s' to provide command '%s'?"
-msgstr "Installiere das Paket '%s', das den Befehl '%s' anbietet?"
+msgstr ""
+"Soll das Paket »%s« installiert werden, welches den Befehl »%s« bereitstellt?"
#. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:642
+#: ../contrib/command-not-found/pk-command-not-found.c:645
msgid "Packages providing this file are:"
-msgstr "Pakete, die diese Datei anbieten sind:"
+msgstr "Pakete, die diese Datei bereitstellen, sind:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:651
+#: ../contrib/command-not-found/pk-command-not-found.c:654
msgid "Suitable packages are:"
msgstr "Passende Pakete sind:"
#. get selection
#. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:659
+#: ../contrib/command-not-found/pk-command-not-found.c:662
msgid "Please choose a package to install"
msgstr "Bitte wählen Sie ein Paket zum Installieren"
#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:298
+#: ../contrib/browser-plugin/pk-plugin-install.c:433
msgid "Getting package information..."
-msgstr "Erhalte Paket-Informationen ..."
+msgstr "Paket-Informationen werden gelesen â¦"
#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:304
+#: ../contrib/browser-plugin/pk-plugin-install.c:439
#, c-format
msgid "Run %s"
-msgstr "Starte %s"
+msgstr "%s starten"
#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:310
+#: ../contrib/browser-plugin/pk-plugin-install.c:445
msgid "Installed version"
msgstr "Installierte Version"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:318
+#: ../contrib/browser-plugin/pk-plugin-install.c:453
#, c-format
msgid "Run version %s now"
-msgstr "Starte Version %s jetzt"
+msgstr "Jetzt Version %s starten"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:324
+#: ../contrib/browser-plugin/pk-plugin-install.c:459
msgid "Run now"
-msgstr "Starte jetzt"
+msgstr "Jetzt ausführen"
#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:330
+#: ../contrib/browser-plugin/pk-plugin-install.c:465
#, c-format
msgid "Update to version %s"
-msgstr "Aktualisiere auf Version %s"
+msgstr "Aktualisierung auf Version %s"
#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:336
+#: ../contrib/browser-plugin/pk-plugin-install.c:471
#, c-format
msgid "Install %s now"
-msgstr "Installiere %s jetzt"
+msgstr "%s jetzt installieren"
#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:339
+#: ../contrib/browser-plugin/pk-plugin-install.c:474
msgid "Version"
msgstr "Version"
#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:344
+#: ../contrib/browser-plugin/pk-plugin-install.c:479
msgid "No packages found for your system"
msgstr "Keine Pakete für Ihr System gefunden"
#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:349
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
msgid "Installing..."
-msgstr "Installieren ..."
+msgstr "Es wird installiert â¦"
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:186
+msgid "Starting install"
+msgstr "Installation wird begonnen"
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:379
+#, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr ""
+"Das Paket »%s« konnte nicht gefunden werden, oder es ist bereits installiert: "
+"%s"
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:535
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+"Keine Pakete tatsächlich installieren, sondern nur die Installation "
+"simulieren"
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:538
+msgid "Do not install dependencies of the core packages"
+msgstr "Keine Abhängigkeiten der Grundpakete installieren"
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:541
+msgid "Do not display information or progress"
+msgstr "Keine Informationen oder Fortschritt anzeigen"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:559
+msgid "PackageKit Debuginfo Installer"
+msgstr "PackageKit Fehlerdiagnose-Installation"
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:571
+#, c-format
+msgid "ERROR: Specify package names to install."
+msgstr "FEHLER: Sie müssen Paketnamen zum Installieren angeben."
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:605
+#, c-format
+msgid "Getting sources list"
+msgstr "Quellenliste wird geholt"
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:623
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:663
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:698
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:782
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:826
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:893
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:937
+#, c-format
+msgid "OK."
+msgstr "OK."
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:626
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr "Es wurden %i aktivierte und %i deaktivierte Quellen gefunden."
+
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:633
+#, c-format
+msgid "Finding debugging sources"
+msgstr "Fehlerdiagnose-Quellen werden gesucht"
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:666
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr "Es wurden %i deaktivierte Fehlerdiagnose-Depots gefunden."
+
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:673
+#, c-format
+msgid "Enabling debugging sources"
+msgstr "Fehlerdiagnose-Quellen werden aktiviert"
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:683
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:767
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:811
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:878
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:922
+msgid "FAILED."
+msgstr "FEHLGESCHLAGEN."
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:701
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr "%i Fehlerdiagnose-Quellen wurden aktiviert."
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:708
+#, c-format
+msgid "Finding debugging packages"
+msgstr "Fehlerdiagnose-Pakete werden gesucht."
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:720
+#, c-format
+msgid "Failed to find the package %s: %s"
+msgstr "Das Paket »%s« konnte nicht gefunden werden: %s"
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:743
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr "Das Fehlerdiagnose-Paket »%s« konnte nicht gefunden werden: %s"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:771
+#, c-format
+msgid "Found no packages to install."
+msgstr "Es wurden keine Pakete zum Installieren gefunden."
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:785
+#, c-format
+msgid "Found %i packages:"
+msgstr "Es wurden %i Pakete gefunden:"
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:801
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr "Es werden Pakete gesucht, die von diesen Paketen abhängen"
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:814
+#, c-format
+msgid "Could not find dependant packages: %s"
+msgstr "Es konnten keine abhängigen Pakete gefunden werden: %s"
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:830
+#, c-format
+msgid "Found %i extra packages."
+msgstr "Es wurden %i zusätzliche Pakete gefunden."
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:834
+#, c-format
+msgid "No extra packages required."
+msgstr "Es werden keine zusätzlichen Pakete benötigt."
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:843
+#, c-format
+msgid "Found %i packages to install:"
+msgstr "Es wurden %i Pakete zum Installieren gefunden:"
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:856
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr "Es werden im Simulationsmodus keine Pakete installiert"
+
+#. TRANSLATORS: coul dnot install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:881
+#, c-format
+msgid "Could not install packages: %s"
+msgstr "Die Pakete konnten nicht installiert werden: %s"
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:913
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr "Zuvor aktivierte Quellen werden deaktiviert"
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:925
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr "Die Fehlerdiagnose-Quellen konnten nicht deaktiviert werden: %s"
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:940
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr "%i Fehlerdiagnose-Quellen wurden deaktiviert."
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
@@ -959,98 +1180,176 @@ msgstr "PackageKit-Paketliste"
msgid "PackageKit Service Pack"
msgstr "PackageKit Service-Pack"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
msgid "Accept EULA"
-msgstr "EULA akzeptieren"
+msgstr "EULA annehmen"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
msgid "Authentication is required to accept a EULA"
-msgstr "Authentifizierung wird benötigt, um die EULA zu Akzeptieren"
+msgstr "Legitimation ist zum Annehmen der EULA erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to cancel a task that was not started by yourself"
-msgstr "Authentifizierung wird benötigt, um eine Aufgabe abzubrechen, die nicht von Ihnen geordert wurde"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+"Legitimation ist zum Abbrechen einer Aufgabe erforderlich, die nicht von "
+"Ihnen initiiert wurde"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
msgid "Authentication is required to change software source parameters"
msgstr ""
+"Legitimation ist zur Ãnderung der Einstellungen zu den Softwarequellen "
+"erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-msgid "Authentication is required to consider a key used for signing packages as trusted"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
msgstr ""
+"Legitimation ist zum Vertrauen eines Paketsignaturschlüssels erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
msgid "Authentication is required to install a signed package"
-msgstr "Authentifizierung wird benötigt, um ein signiertes Paket zu Installieren"
+msgstr ""
+"Legitimation ist zum Installieren eines signierten Paketes erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
msgid "Authentication is required to install an untrusted package"
-msgstr "Authentifizierung wird benötigt, um ein nicht-vertrauenswürdiges Paket zu Installieren"
+msgstr ""
+"Legitimation ist zum Installieren eines nicht vertrauenswürdigen Paketes "
+"erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
msgid "Authentication is required to refresh the system sources"
-msgstr ""
+msgstr "Legitimation ist zum Aktualisieren der Systemressourcen erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
msgid "Authentication is required to remove packages"
-msgstr "Authentifizierung wird benötigt, um Pakete zu entfernen"
+msgstr "Legitimation ist zum Entfernen eines Paketes erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
msgid "Authentication is required to rollback a transaction"
-msgstr ""
+msgstr "Legitimation ist zum Revidieren einer Transaktion erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to set the network proxy used for downloading packages"
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
msgstr ""
+"Legitimation ist zum Festlegen eines Netzwerk-Proxys zum Herunterladen von "
+"Paketen erforderlich"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
msgid "Authentication is required to update packages"
-msgstr "Authentifizierung wird benötigt, um Pakete zu Aktualisieren"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgstr "Legitimation ist zum Aktualisieren von Paketen erforderlich"
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:24
msgid "Cancel foreign task"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgstr "Externe Aufgabe abbrechen"
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:30
msgid "Change software source parameters"
-msgstr "Software-Quellen-Parameter ändern"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgstr "Einstellungen der Depotquelle ändern"
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:37
msgid "Install signed package"
-msgstr "Sigiertes Paket wird installiert"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgstr "Signierte Pakete installieren"
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:44
msgid "Install untrusted local file"
-msgstr "Nicht-vertrauenswürdige, lokale Datei wird installiert"
+msgstr "Nicht vertrauenswürdige lokale Datei installieren"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:49
msgid "Refresh system sources"
-msgstr "Aktualisiere System-Quellen"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgstr "Systemressourcen aktualisieren"
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:59
msgid "Remove package"
-msgstr "Paket wird entfernt"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgstr "Paket entfernen"
+
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:65
msgid "Rollback to a previous transaction"
-msgstr ""
+msgstr "Eine vorhergehende Transaktion revidieren"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:70
msgid "Set network proxy"
-msgstr "Netzwerk-Proxy angeben"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+msgstr "Netwerk-Proxy festlegen"
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:77
msgid "Trust a key used for signing packages"
-msgstr "Einem Schlüssel, um Pakete zu signieren, vertrauen"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+msgstr "Einem Schlüssel zum Signieren von Paketen vertrauen"
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:85
msgid "Update packages"
-msgstr "Paket wird aktualisiert"
+msgstr "Pakete aktualisieren"
#. TRANSLATORS: failed due to DBus security
#: ../src/pk-main.c:87
msgid "Startup failed due to security policies on this machine."
-msgstr "Startfehler wegen Sicherheitseinstellungen auf diesem Rechner"
+msgstr "Startfehler wegen Sicherheitsrichtlinien auf diesem Rechner"
#. TRANSLATORS: only two ways this can fail...
#: ../src/pk-main.c:89
@@ -1060,62 +1359,101 @@ msgstr "Dies kann aus zwei Gründen passieren:"
#. TRANSLATORS: only allowed to be owned by root
#: ../src/pk-main.c:91
msgid "The correct user is not launching the executable (usually root)"
-msgstr "Der korrekte Benutzer führt nicht das Programm aus (normalerweise root)"
+msgstr ""
+"Der korrekte Benutzer führt nicht das Programm aus (normalerweise root)"
#. TRANSLATORS: or we are installed in a prefix
#: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "Die org.freedesktop.PackageKit.conf-Datei ist nicht auf Ihrem Rechner im system-Verzeichnis:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"Die org.freedesktop.PackageKit.conf-Datei ist nicht auf Ihrem Rechner im "
+"Systemordner installiert:"
#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:205
msgid "Packaging backend to use, e.g. dummy"
-msgstr "Verwende Packaging-Backend z.B. dummy"
+msgstr "Zu verwendendes Packaging-Backend, z.B. dummy"
#. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:196
+#: ../src/pk-main.c:208
msgid "Daemonize and detach from the terminal"
-msgstr "Dämonisiere und löse vom Terminal ab"
+msgstr "In Dienst umwandeln und vom Terminal ablösen"
#. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:214
msgid "Disable the idle timer"
-msgstr "Deaktiviere Idle-Timer"
+msgstr "Den Bereitschaftszähler deaktivieren"
#. TRANSLATORS: show version
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:217
msgid "Show version and exit"
-msgstr "Zeige Version und beende"
+msgstr "Version zeigen und beenden"
#. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:220
msgid "Exit after a small delay"
-msgstr "Beende nach kurzer Verzögerung"
+msgstr "Nach kurzer Verzögerung beenden"
#. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:211
-#, fuzzy
+#: ../src/pk-main.c:223
msgid "Exit after the engine has loaded"
-msgstr "Beende, nachdem der Kern geladen wurde"
+msgstr "Nach Laden des Kerns beenden"
#. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:226
+#: ../src/pk-main.c:238
msgid "PackageKit service"
msgstr "PackageKit-Dienst"
#. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:263
+#: ../src/pk-main.c:275
msgid "Cannot connect to the system bus"
-msgstr "Konnte nicht zum System-Bus verbinden"
+msgstr "Verbindung zum System-Bus konnte nicht hergestellt werden"
-#. TRANSLATORS: cannot register on system bus, unknown reason
-#: ../src/pk-main.c:313
-#, c-format
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:331
msgid "Error trying to start:"
-msgstr "Fehler beim Starten von:"
+msgstr "Fehler beim Startversuch:"
+
+#: ../src/pk-polkit-action-lookup.c:143
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr ""
+"Zur Installation von Fehlerdiagnose-Paketen müssen zusätzliche Quellen "
+"aktiviert werden"
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:156 ../src/pk-polkit-action-lookup.c:175
+msgid "The software is not from a trusted source."
+msgstr "Sie Software stammt nicht aus einer vertrauenswürdigen Quelle."
+
+#. TRANSLATORS: user has to trust provider -- I know, this sucks
+#: ../src/pk-polkit-action-lookup.c:160
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+"Aktualisieren Sie dieses Paket nur, wenn Sie überzeugt sind, dass dies "
+"sicher ist."
+
+#. TRANSLATORS: warn the user that all bets are off
+#: ../src/pk-polkit-action-lookup.c:164 ../src/pk-polkit-action-lookup.c:183
+msgid "Malicious software can damage your computer or cause other harm."
+msgstr ""
+"Bösartige Software kann Ihren Computer beschädigen oder anderen Schaden "
+"anrichten."
+
+#. TRANSLATORS: user has to trust provider -- I know, this sucks
+#: ../src/pk-polkit-action-lookup.c:179
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr "Installieren Sie dieses Paket nur, wenn Sie dies für sicher halten."
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:263
+msgid "Only trusted"
+msgstr "Nur vertrauenswürdige"
#~ msgid "The action, one of 'create', 'add', or 'remove'"
#~ msgstr "Aktion ('create', 'add' oder 'remove')"
+
#~ msgid "Main cache file to use (if not specififed, default is used)"
#~ msgstr ""
#~ "Hauptzwischenspeicher-Datei (wenn nicht genannt, wird die Standarddatei "
@@ -1125,8 +1463,10 @@ msgstr "Fehler beim Starten von:"
#~ msgid "Source cache file to add to the main database"
#~ msgstr ""
#~ "Quellen-Zwischenspeicher, der zur Hauptdatenbank hinzugefügt werden soll"
+
#~ msgid "Icon directory"
#~ msgstr "Symbol-Verzeichnis"
+
#~ msgid "Name of the remote repo"
#~ msgstr "Name der entfernten Quelle"
@@ -1138,80 +1478,108 @@ msgstr "Fehler beim Starten von:"
#~ msgid "Main database file to use (if not specififed, default is used)"
#~ msgstr ""
#~ "Hauptdatenbank-Datei (wenn nicht genannt, wird die Standard-Datei benutzt)"
+
#~ msgid "You need to specify a search type, e.g. name"
#~ msgstr "Sie müssen einen Suchtyp angeben, z.B. einen Namen"
+
#~ msgid "You need to specify a search term"
#~ msgstr "Sie müssen einen Suchwert angeben"
-#~ msgid "You need to specify a package or file to install"
-#~ msgstr "Sie müssen ein Paket oder eine Datei zum installieren angeben"
+
#~ msgid "You need to specify a package to remove"
#~ msgstr "Sie müssen ein Paket zum Löschen angeben"
+
#~ msgid "You need to specify a package name to resolve"
#~ msgstr "Sie müssen einen Paketnamen zum Auflösen angeben"
+
#~ msgid "You need to specify a repository name"
#~ msgstr "Sie müssen einen Repository-Namen angeben"
+
#~ msgid "You need to specify an action, e.g. 'update-system'"
#~ msgstr "Sie müssen eine Aktion angeben, z.B. 'update-system'"
+
#~ msgid "You need to specify a correct role"
#~ msgstr "Sie müssen eine korrekte Rolle angeben"
+
#~ msgid "You need to specify a package to find the details for"
#~ msgstr "Sie müssen ein Paket, für das nach Details gesucht wird, angeben"
+
#~ msgid "You need to specify a package to find the files for"
#~ msgstr "Sie müssen ein Paket, für das nach Dateien gesucht wird, angeben"
+
#~ msgid "You need to specify a list file to create"
#~ msgstr "Sie müssen eine Dateiliste zum Erzeugen angeben"
+
#~ msgid "You need to specify a list file to open"
#~ msgstr "Sie müssen eine Dateiliste zum Ãffnen angeben"
+
#~ msgid "This tool could not remove the packages: '%s'"
#~ msgstr "Dieser Werkzeug konnte das Paket nicht entfernen: '%s'"
+
#~ msgid "Could not find package to remove"
#~ msgstr "Packet zum Löschen konnte nicht gefunden werden"
+
#~ msgid "Cancelled!"
#~ msgstr "Abbruch!"
+
#~ msgid "Could not find package to download"
#~ msgstr "Das Packet zum Herunterladen konnte nicht gefunden werden"
+
#~ msgid "Could not find package to update"
#~ msgstr "Das Packet zum Aktualisieren konnte nicht gefunden werden"
+
#~ msgid "Could not find what packages require"
#~ msgstr "Konnte nicht herausfinden, was die Packete benötigen"
+
#~ msgid "Could not find details for"
#~ msgstr "Konnte keine Details finden für"
+
#~ msgid "Okay to import key?"
#~ msgstr "Soll der Schlüssel importiert werden?"
+
#~ msgid "Did not import key"
#~ msgstr "Schlüssel wurde nicht importiert"
+
#~ msgid "Did not agree to licence, task will fail"
#~ msgstr "Sie stimmten der Lizenz nicht zu, die Aufgabe wird fehlschlagen"
-#~ msgid "Could not find a package match"
-#~ msgstr "Es konnte kein Packet gefunden werden"
+
#~ msgid "failed to download: invalid package_id and/or directory"
#~ msgstr ""
#~ "Herunterladen fehlgeschlagen: Ungültige package_id und/oder ungültiges "
#~ "Verzeichnis"
+
#~ msgid "Could not find a valid metadata file"
#~ msgstr "Eine gültige MetadataâDatei konnte nicht gefunden werden"
+
#~ msgid "Okay to download the additional packages"
#~ msgstr "Möchten Sie die zusätzlichen Packete herunterladen"
+
#~ msgid "You need to specify the pack name and packages to be packed\n"
#~ msgstr "Sie müssen einen Packnamen und Packete zum Packen angeben\n"
+
#~ msgid ""
#~ "Invalid name for the service pack, Specify a name with .servicepack "
#~ "extension\n"
#~ msgstr ""
#~ "Ungültiger Name für ein Service Pack, geben Sie einen Namen an mit ."
#~ "servicepack als Endung\n"
+
#~ msgid "Could not set database readonly"
#~ msgstr "Datenbank konnte nicht nur-lesbar gesetzt werden"
+
#~ msgid "Could not open database: %s"
#~ msgstr "Datenbank %s konnte nicht geöffnet werden"
+
#~ msgid "You probably need to run this program as the root user"
#~ msgstr "Sie sollten dieses Programm vermutlich als Benutzer root ausführen"
+
#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>%s wird ausgeführt</"
#~ "span>"
+
#~ msgid "<big>%s</big>"
#~ msgstr "<big>%s</big>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Run version %s now</span>"
@@ -1219,27 +1587,30 @@ msgstr "Fehler beim Starten von:"
#~ "\n"
#~ "<span color='#%06x' underline='single'>Version %s wird jetzt ausgeführt</"
#~ "span>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Run now</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Wird jetzt ausgeführt</span>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Aktualisiere zu Version %s</span>"
+
#~ msgid ""
#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>%s wird jetzt "
#~ "installiert</span>"
+
#~ msgid ""
#~ "\n"
#~ "<small>Version: %s</small>"
#~ msgstr ""
#~ "\n"
#~ "<small>Version: %s</small>"
-
commit 88b1322785a14189267b7f3db866101e3e0136f6
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 20:14:09 2009 +0100
yum: Ensure selectGroup() returns a list of packages by forcing deselectGroup()
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 8d29091..b26ba0c 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1518,6 +1518,10 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_PACKAGE_ALREADY_INSTALLED, "This Group %s is already installed" % grp.groupid, exit=False)
return
try:
+ # I'm not sure why we have to deselectGroup() before we selectGroup(), but if we don't
+ # then selectGroup returns no packages. I've already made sure that any selectGroup
+ # invokations do deselectGroup, so I'm not sure what's going on...
+ self.yumbase.deselectGroup(grp.groupid)
txmbr = self.yumbase.selectGroup(grp.groupid)
if not txmbr:
self.error(ERROR_GROUP_NOT_FOUND, "No packages were found in the %s group for %s." % (grp.groupid, _format_package_id(package_id)));
commit 2b024b32a453e14da1153e64f6c30e72991e2a5d
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 20:08:39 2009 +0100
yum: Detect when the group that is not installed contains no packages
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 67f8a0e..8d29091 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1511,19 +1511,21 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
else:
self.yumbase.conf.gpgcheck = 0
- for package in package_ids:
- grp = self._is_meta_package(package)
+ for package_id in package_ids:
+ grp = self._is_meta_package(package_id)
if grp:
if grp.installed:
self.error(ERROR_PACKAGE_ALREADY_INSTALLED, "This Group %s is already installed" % grp.groupid, exit=False)
return
try:
txmbr = self.yumbase.selectGroup(grp.groupid)
+ if not txmbr:
+ self.error(ERROR_GROUP_NOT_FOUND, "No packages were found in the %s group for %s." % (grp.groupid, _format_package_id(package_id)));
except Exception, e:
self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
txmbrs.extend(txmbr)
else:
- pkg, inst = self._findPackage(package)
+ pkg, inst = self._findPackage(package_id)
if pkg and not inst:
txmbr = self.yumbase.install(po=pkg)
txmbrs.extend(txmbr)
commit c5c9fd55781bed7604473bec2d7a636a8d2be175
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 20:07:25 2009 +0100
yum: use a better error enum when all packages are already installed
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 6640e42..67f8a0e 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1543,7 +1543,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
except PkError, e:
self.error(e.code, e.details, exit=False)
else:
- self.error(ERROR_PACKAGE_ALREADY_INSTALLED, "The packages failed to be installed", exit=False)
+ self.error(ERROR_ALL_PACKAGES_ALREADY_INSTALLED, "The packages are already all installed", exit=False)
def _checkForNewer(self, po):
pkgs = None
commit a0ee530d3dc996cb8c5f975a8bd8814e45384506
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 20:06:22 2009 +0100
yum: unselect groups we previously selected when we get package deps
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 46c5247..6640e42 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1224,6 +1224,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
for txmbr in self.yumbase.tsInfo:
deps_list.append(txmbr.po)
+ # unselect what we previously selected
+ try:
+ self.yumbase.deselectGroup(grp.groupid)
+ except Exception, e:
+ self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
else:
pkg, inst = self._findPackage(package_id)
# This simulates the addition of the package
commit 7f689b39ee505c25c65ddb76f23a0de83af89528
Author: logan <logan at fedoraproject.org>
Date: Thu Jul 23 18:19:53 2009 +0000
Sending translation for Spanish
diff --git a/po/es.po b/po/es.po
index fd16fc9..862cc10 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-07-15 10:32+0000\n"
-"PO-Revision-Date: 2009-07-15 09:58-0300\n"
+"POT-Creation-Date: 2009-07-23 14:41+0000\n"
+"PO-Revision-Date: 2009-07-23 15:11-0300\n"
"Last-Translator: Héctor Daniel Cabrera <h.daniel.cabrera at gmail.com>\n"
"Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -537,9 +537,9 @@ msgstr "Subcomandos:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1780
+#: ../client/pk-console.c:1781
#: ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
+#: ../client/pk-monitor.c:128
#: ../contrib/command-not-found/pk-command-not-found.c:521
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
#: ../src/pk-main.c:211
@@ -547,155 +547,155 @@ msgid "Show extra debugging information"
msgstr "Mostrar información extra de depuración"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1783
-#: ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1784
+#: ../client/pk-monitor.c:130
msgid "Show the program version and exit"
msgstr "Mostrar la versión del programa y salir"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1786
+#: ../client/pk-console.c:1787
msgid "Set the filter, e.g. installed"
msgstr "Establecer el filtro, ej. instalado"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1790
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:1816
+#: ../client/pk-console.c:1817
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:1905
+#: ../client/pk-console.c:1907
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:1923
+#: ../client/pk-console.c:1926
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:1929
-#: ../client/pk-console.c:1937
-#: ../client/pk-console.c:1945
-#: ../client/pk-console.c:1953
+#: ../client/pk-console.c:1933
+#: ../client/pk-console.c:1942
+#: ../client/pk-console.c:1951
+#: ../client/pk-console.c:1960
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:1959
+#: ../client/pk-console.c:1967
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:1965
+#: ../client/pk-console.c:1973
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:1973
+#: ../client/pk-console.c:1982
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:1981
+#: ../client/pk-console.c:1991
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:1988
-msgid "A destination directory and then the package names to download are required"
-msgstr "Se debe especificar el directorio destino y luego los nombres paquetes para descargar"
+#: ../client/pk-console.c:1999
+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:1994
+#: ../client/pk-console.c:2006
msgid "Directory not found"
msgstr "Directorio no encontrado"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2014
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:2010
+#: ../client/pk-console.c:2024
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:2026
+#: ../client/pk-console.c:2041
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:2034
-#: ../client/pk-console.c:2042
+#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2059
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:2050
+#: ../client/pk-console.c:2068
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:2063
+#: ../client/pk-console.c:2082
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:2069
+#: ../client/pk-console.c:2089
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:2075
+#: ../client/pk-console.c:2096
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:2084
-#: ../client/pk-console.c:2095
-#: ../client/pk-console.c:2103
-#: ../client/pk-console.c:2119
+#: ../client/pk-console.c:2106
+#: ../client/pk-console.c:2118
#: ../client/pk-console.c:2127
+#: ../client/pk-console.c:2145
+#: ../client/pk-console.c:2154
#: ../client/pk-generate-pack.c:241
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:2111
+#: ../client/pk-console.c:2136
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:2135
+#: ../client/pk-console.c:2163
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:2144
-#: ../client/pk-console.c:2153
+#: ../client/pk-console.c:2173
+#: ../client/pk-console.c:2183
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:2206
+#: ../client/pk-console.c:2237
#, 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:2219
+#: ../client/pk-console.c:2250
msgid "Incorrect privileges for this operation"
msgstr "Privilegios incorrectos para esta operación"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2253
msgid "Command failed"
msgstr "Falló el comando"
@@ -815,10 +815,14 @@ msgid "Failed to create '%s': %s"
msgstr "Falló al crear «%s»: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
msgid "PackageKit Monitor"
msgstr "Monitor de PackageKit"
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr "No es posible mostrar la lista de transacciones"
+
#. TRANSLATORS: The package was not found in any software sources
#: ../client/pk-tools-common.c:118
#, c-format
@@ -910,56 +914,56 @@ msgid "Please choose a package to install"
msgstr "Elija un paquete para instalar"
#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:461
+#: ../contrib/browser-plugin/pk-plugin-install.c:433
msgid "Getting package information..."
msgstr "Extrayendo información del paquete..."
#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:467
+#: ../contrib/browser-plugin/pk-plugin-install.c:439
#, c-format
msgid "Run %s"
msgstr "Ejecutar %s"
#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:473
+#: ../contrib/browser-plugin/pk-plugin-install.c:445
msgid "Installed version"
msgstr "Versión instalada"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:481
+#: ../contrib/browser-plugin/pk-plugin-install.c:453
#, c-format
msgid "Run version %s now"
msgstr "Ejecutar la versión %s ahora"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:487
+#: ../contrib/browser-plugin/pk-plugin-install.c:459
msgid "Run now"
msgstr "Ejecutar ahora"
#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:493
+#: ../contrib/browser-plugin/pk-plugin-install.c:465
#, c-format
msgid "Update to version %s"
msgstr "Actualizar a la versión %s"
#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:499
+#: ../contrib/browser-plugin/pk-plugin-install.c:471
#, c-format
msgid "Install %s now"
msgstr "Instalar %s ahora"
#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:502
+#: ../contrib/browser-plugin/pk-plugin-install.c:474
msgid "Version"
msgstr "Versión"
#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:507
+#: ../contrib/browser-plugin/pk-plugin-install.c:479
msgid "No packages found for your system"
msgstr "No se encontró ningún paquete para su sistema"
#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:512
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
msgid "Installing..."
msgstr "Instalando..."
commit 57f266b6d7bbee59e7e2feeba1ff0d2559fc5d9d
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 16:52:17 2009 +0100
yum: trivial fix to the last commit
diff --git a/backends/yum/yumFilter.py b/backends/yum/yumFilter.py
index d4f95ad..47ed24f 100644
--- a/backends/yum/yumFilter.py
+++ b/backends/yum/yumFilter.py
@@ -35,7 +35,7 @@ class YumFilter(PackagekitFilter):
if basearch == 'i386':
self.basearch_list = ['i386', 'i486', 'i586', 'i686']
else:
- self.basearch_list = (basearch)
+ self.basearch_list = [basearch]
self.basearch_list.append('noarch')
def _is_main_package(self, repo):
commit 1a12026420f4afcef1010e0870c60e41a30e9320
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 16:49:41 2009 +0100
yum: cope with i386, i486, i686, noarch in the filter code
diff --git a/backends/yum/yumFilter.py b/backends/yum/yumFilter.py
index 7a20cd8..d4f95ad 100644
--- a/backends/yum/yumFilter.py
+++ b/backends/yum/yumFilter.py
@@ -32,8 +32,11 @@ class YumFilter(PackagekitFilter):
def __init__(self, fltlist="none"):
PackagekitFilter.__init__(self, fltlist)
basearch = rpmUtils.arch.getBaseArch()
- # TODO: cope with i386, i486, i686 etc..
- self.basearch_list = (basearch)
+ if basearch == 'i386':
+ self.basearch_list = ['i386', 'i486', 'i586', 'i686']
+ else:
+ self.basearch_list = (basearch)
+ self.basearch_list.append('noarch')
def _is_main_package(self, repo):
if repo.endswith('-debuginfo'):
commit 65565b071251bc4f3bb33003884278e2e735735e
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 17:43:47 2009 +0100
yum: add arch filtering support. This was easier than I thought...
diff --git a/backends/yum/pk-backend-yum.c b/backends/yum/pk-backend-yum.c
index ef0680c..3ff4d1e 100644
--- a/backends/yum/pk-backend-yum.c
+++ b/backends/yum/pk-backend-yum.c
@@ -122,6 +122,7 @@ backend_get_filters (PkBackend *backend)
PK_FILTER_ENUM_BASENAME,
PK_FILTER_ENUM_FREE,
PK_FILTER_ENUM_NEWEST,
+ PK_FILTER_ENUM_ARCH,
-1);
}
diff --git a/backends/yum/yumFilter.py b/backends/yum/yumFilter.py
index 84baddc..7a20cd8 100644
--- a/backends/yum/yumFilter.py
+++ b/backends/yum/yumFilter.py
@@ -29,6 +29,12 @@ GUI_KEYS = re.compile(r'(qt)|(gtk)')
class YumFilter(PackagekitFilter):
+ def __init__(self, fltlist="none"):
+ PackagekitFilter.__init__(self, fltlist)
+ basearch = rpmUtils.arch.getBaseArch()
+ # TODO: cope with i386, i486, i686 etc..
+ self.basearch_list = (basearch)
+
def _is_main_package(self, repo):
if repo.endswith('-debuginfo'):
return False
@@ -157,6 +163,14 @@ class YumFilter(PackagekitFilter):
return True
return False
+ def _pkg_is_arch(self, pkg):
+ '''
+ Return if the package is native arch.
+ '''
+ if pkg.arch in self.basearch_list:
+ return True
+ return False
+
def _pkg_is_free(self, pkg):
'''
Return if the package is free software.
commit 131316e533386d0074cfe121985b238f78f6e0ee
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 17:42:57 2009 +0100
Add arch filtering to the generic python filter helper
diff --git a/lib/python/packagekit/filter.py b/lib/python/packagekit/filter.py
index b2df0c1..34f00bb 100644
--- a/lib/python/packagekit/filter.py
+++ b/lib/python/packagekit/filter.py
@@ -68,6 +68,9 @@ class PackagekitFilter(object, PackagekitPackage):
elif flt in (FILTER_FREE, FILTER_NOT_FREE):
if not self._do_free_filtering(flt, pkg):
return False
+ elif flt in (FILTER_ARCH, FILTER_NOT_ARCH):
+ if not self._do_arch_filtering(flt, pkg):
+ return False
return True
def post_process(self):
@@ -119,6 +122,13 @@ class PackagekitFilter(object, PackagekitPackage):
'''
return True
+ def _pkg_is_arch(self, pkg):
+ '''
+ Return if the package is the same architecture as the machine.
+ Needed to be implemented in a sub class
+ '''
+ return True
+
def _do_installed_filtering(self, flt, pkg):
is_installed = self._pkg_is_installed(pkg)
if flt == FILTER_INSTALLED:
@@ -151,3 +161,11 @@ class PackagekitFilter(object, PackagekitPackage):
want_free = False
return is_free == want_free
+ def _do_arch_filtering(self, flt, pkg):
+ is_arch = self._pkg_is_arch(pkg)
+ if flt == FILTER_ARCH:
+ want_arch = True
+ else:
+ want_arch = False
+ return is_arch == want_arch
+
commit fa39f03fa0923608495c25f8717dd6b9c3fbeda5
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 17:15:33 2009 +0100
Package arch should be taken into account for newest filtering. Fixes rh#472876
diff --git a/backends/yum/yumFilter.py b/backends/yum/yumFilter.py
index 5d33999..84baddc 100644
--- a/backends/yum/yumFilter.py
+++ b/backends/yum/yumFilter.py
@@ -89,7 +89,7 @@ class YumFilter(PackagekitFilter):
for pkg, state in pkglist:
# only key on name and not arch
inst = self._pkg_is_installed(pkg)
- key = (pkg.name, inst)
+ key = (pkg.name, pkg.arch, inst)
# we've already come across this package
if key in newest:
commit a268d02b271d2f47c835e8d39d10ad32494d8717
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 15:14:49 2009 +0100
yum: When we're waiting for a crashed instance of ourselves, kill the process with SIGQUIT
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 8525f04..46c5247 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -287,6 +287,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
if not cmdline:
cmdline = _get_cmdline_for_pid(e.pid)
+ # if it's us, kill it as it's from another instance where the daemon crashed
+ if cmdline.find("yumBackend.py") != -1:
+ self.message(MESSAGE_BACKEND_ERROR, "killing pid %i, as old instance" % e.pid)
+ os.kill(e.pid, signal.SIGQUIT)
+
# wait a little time, and try again
time.sleep(2)
retries += 1
commit 9ac5fa6c71ab65aef00c84c0b25451220a6e9f62
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 15:14:08 2009 +0100
When we fail to get the lock, print the process information in the error details. Fixes rh#513376
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 8408081..8525f04 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -178,6 +178,13 @@ def _format_msgs(msgs):
text = text.replace(" (installed)", "")
return text
+def _get_cmdline_for_pid(pid):
+ if not pid:
+ return "invalid"
+ cmdlines = open("/proc/%d/cmdline" % pid).read().split('\0')
+ cmdline = " ".join(cmdlines).strip(' ')
+ return cmdline
+
class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
# Packages there require a reboot
@@ -266,6 +273,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
def doLock(self):
''' Lock Yum'''
retries = 0
+ cmdline = None
while not self.isLocked():
try: # Try to lock yum
self.yumbase.doLock(YUM_PID_FILE)
@@ -274,10 +282,19 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
except yum.Errors.LockError, e:
self.allow_cancel(True)
self.status(STATUS_WAITING_FOR_LOCK)
+
+ # get the command line of the other thing
+ if not cmdline:
+ cmdline = _get_cmdline_for_pid(e.pid)
+
+ # wait a little time, and try again
time.sleep(2)
retries += 1
+
+ # give up, and print process information
if retries > 100:
- self.error(ERROR_CANNOT_GET_LOCK, 'Yum is locked by another application. details: %s' % _to_unicode(e))
+ msg = "The other process has the command line '%s' (PID %i)" % (cmdline, e.pid)
+ self.error(ERROR_CANNOT_GET_LOCK, "Yum is locked by another application. %s" % msg)
def unLock(self):
''' Unlock Yum'''
commit 9c7e879c443fcdbb29e7ed5bcfe2945bcedf3b8e
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 12:34:24 2009 +0100
trivial: Fix up the PackageKit catalog file with the new deps
diff --git a/contrib/PackageKit.catalog b/contrib/PackageKit.catalog
index b13169f..88678c8 100644
--- a/contrib/PackageKit.catalog
+++ b/contrib/PackageKit.catalog
@@ -4,7 +4,7 @@
InstallPackages=autoconf;automake;intltool;libtool;pkgconfig
# Fedora
-InstallPackages(fedora)=glib2-devel;dbus-devel;dbus-glib-devel;pam-devel;libX11-devel;libsexy-devel;xmlto;sqlite-devel;NetworkManager-glib-devel;PolicyKit-devel;docbook-utils;gnome-doc-utils;python-devel;perl(XML::Parser);gettext;xulrunner-devel;libarchive-devel;gstreamer-devel;gstreamer-plugins-base-devel;qt4-devel;cppunit-devel;pango-devel;fontconfig-devel
+InstallPackages(fedora)=glib2-devel;dbus-devel;dbus-glib-devel;pam-devel;libX11-devel;libsexy-devel;xmlto;sqlite-devel;NetworkManager-glib-devel;polkit-devel;docbook-utils;gnome-doc-utils;python-devel;perl(XML::Parser);gettext;xulrunner-devel;libarchive-devel;gstreamer-devel;gstreamer-plugins-base-devel;qt4-devel;cppunit-devel;pango-devel;fontconfig-devel;gcc-c++
# Pardus
InstallPackages(pardus)=NetworkManager-devel;PolicyKit-devel;autoconf;automake;dbus-devel;dbus-glib-devel;docbook-to-man;gettext-devel;glib2-devel;gtk-doc;poldek-devel;python-devel;readline-devel;rpm-pythonprov;sqlite3-devel
commit 302034948861d16684b42dc581de6830fe5e3d93
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Jul 23 12:33:48 2009 +0100
Fix up a couple of trivial error details
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index aacbeee..2a7cb60 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1656,7 +1656,7 @@ pk_transaction_action_obtain_authorization_finished_cb (GObject *source_object,
/* emit an ::StatusChanged, ::ErrorCode() and then ::Finished() */
pk_transaction_status_changed_emit (transaction, PK_STATUS_ENUM_FINISHED);
- message = g_strdup_printf ("failed to check for authentication: %s", error->message);
+ message = g_strdup_printf ("Failed to check for authentication: %s", error->message);
pk_transaction_error_code_emit (transaction, PK_ERROR_ENUM_NOT_AUTHORIZED, message);
pk_transaction_finished_emit (transaction, PK_EXIT_ENUM_FAILED, 0);
g_error_free (error);
@@ -1670,7 +1670,7 @@ pk_transaction_action_obtain_authorization_finished_cb (GObject *source_object,
/* emit an ::StatusChanged, ::ErrorCode() and then ::Finished() */
pk_transaction_status_changed_emit (transaction, PK_STATUS_ENUM_FINISHED);
pk_transaction_error_code_emit (transaction, PK_ERROR_ENUM_NOT_AUTHORIZED,
- "failed to obtain authentication");
+ "Failed to obtain authentication.");
pk_transaction_finished_emit (transaction, PK_EXIT_ENUM_FAILED, 0);
pk_syslog_add (transaction->priv->syslog, PK_SYSLOG_TYPE_AUTH, "uid %i failed to obtain auth", transaction->priv->uid);
commit 5c0afe6411098ba6cb263730839231f6322ffe25
Author: Richard Hughes <richard at hughsie.com>
Date: Tue Jul 21 12:20:19 2009 +0100
Add a 'status' property to PkClient
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 2f333bf..3958d86 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -91,7 +91,7 @@ struct _PkClientPrivate
PkConnection *pconnection;
gulong pconnection_signal_id;
PkRestartEnum require_restart;
- PkStatusEnum last_status;
+ PkStatusEnum status;
PkRoleEnum role;
gboolean cached_force;
gboolean cached_allow_deps;
@@ -139,6 +139,7 @@ enum {
enum {
PROP_0,
PROP_ROLE,
+ PROP_STATUS,
PROP_LAST,
};
@@ -590,7 +591,7 @@ pk_client_change_status (PkClient *client, PkStatusEnum status)
{
egg_debug ("emit status-changed %s", pk_status_enum_to_text (status));
g_signal_emit (client , signals [SIGNAL_STATUS_CHANGED], 0, status);
- client->priv->last_status = status;
+ client->priv->status = status;
}
/**
@@ -1036,6 +1037,12 @@ pk_client_message_cb (DBusGProxy *proxy, const gchar *message_text, const gchar
* Gets the status of a transaction.
* A transaction has one roles in it's lifetime, but many values of status.
*
+ * Reading the property "status" is quicker than contacting the daemon, but this
+ * only works when the transaction was created by the application, and not when
+ * using pk_client_set_tid() in a client program.
+ *
+ * TODO: deprecate
+ *
* Return value: %TRUE if we found the status successfully
**/
gboolean
@@ -3908,7 +3915,7 @@ pk_client_requeue (PkClient *client, GError **error)
/* clear enough data of the client to allow us to requeue */
g_free (client->priv->tid);
client->priv->tid = NULL;
- client->priv->last_status = PK_STATUS_ENUM_UNKNOWN;
+ client->priv->status = PK_STATUS_ENUM_UNKNOWN;
client->priv->is_finished = FALSE;
/* clear package list */
@@ -4115,6 +4122,9 @@ pk_client_get_property (GObject *object, guint prop_id, GValue *value, GParamSpe
case PROP_ROLE:
g_value_set_uint (value, client->priv->role);
break;
+ case PROP_STATUS:
+ g_value_set_uint (value, client->priv->status);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -4156,6 +4166,14 @@ pk_client_class_init (PkClientClass *klass)
g_object_class_install_property (object_class, PROP_ROLE, pspec);
/**
+ * PkClient:status:
+ */
+ pspec = g_param_spec_uint ("status", NULL, NULL,
+ 0, G_MAXUINT, 0,
+ G_PARAM_READWRITE);
+ g_object_class_install_property (object_class, PROP_STATUS, pspec);
+
+ /**
* PkClient::status-changed:
* @client: the #PkClient instance that emitted the signal
* @status: the #PkStatusEnum type, e.g. PK_STATUS_ENUM_REMOVE
@@ -4602,7 +4620,7 @@ pk_client_reset (PkClient *client, GError **error)
client->priv->cached_package_ids = NULL;
client->priv->cached_directory = NULL;
client->priv->cached_filters = PK_FILTER_ENUM_UNKNOWN;
- client->priv->last_status = PK_STATUS_ENUM_UNKNOWN;
+ client->priv->status = PK_STATUS_ENUM_UNKNOWN;
client->priv->role = PK_ROLE_ENUM_UNKNOWN;
client->priv->is_finished = FALSE;
client->priv->timeout = -1;
@@ -4631,7 +4649,7 @@ pk_client_init (PkClient *client)
client->priv->loop = g_main_loop_new (NULL, FALSE);
client->priv->use_buffer = FALSE;
client->priv->synchronous = FALSE;
- client->priv->last_status = PK_STATUS_ENUM_UNKNOWN;
+ client->priv->status = PK_STATUS_ENUM_UNKNOWN;
client->priv->require_restart = PK_RESTART_ENUM_NONE;
client->priv->role = PK_ROLE_ENUM_UNKNOWN;
client->priv->is_finished = FALSE;
commit 4e8f4b7f73a4792b364cffb345ff41da270b0980
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Thu Jul 23 12:44:32 2009 +0200
portage: manage only_trusted (show error) for {install,update}-packages
and update-system
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 1b12885..3ca49f2 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1014,7 +1014,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
# can't install an already installed packages
# even if it happens to be needed in Gentoo but probably not this API
- # TODO: manage only_trusted
# TODO: manage errors
# TODO: manage config file updates
@@ -1039,6 +1038,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_list.append('=' + cpv)
+ # only_trusted isn't supported
+ # but better to show it after important errors
+ if only_trusted:
+ self.error(ERROR_MISSING_GPG_SIGNATURE,
+ "Portage backend does not support GPG signature")
+ return
+
# creating installation depgraph
myopts = {}
favorites = []
@@ -1403,7 +1409,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.percentage(100)
def update_packages(self, only_trusted, pkgs):
- # TODO: manage only_trusted
# TODO: manage errors
# TODO: manage config file updates
@@ -1423,6 +1428,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_list.append('=' + cpv)
+ # only_trusted isn't supported
+ # but better to show it after important errors
+ if only_trusted:
+ self.error(ERROR_MISSING_GPG_SIGNATURE,
+ "Portage backend does not support GPG signature")
+ return
+
# creating update depgraph
myopts = {}
favorites = []
@@ -1449,12 +1461,15 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.unblock_output()
def update_system(self, only_trusted):
- # TODO: only_trusted
-
self.status(STATUS_RUNNING)
self.allow_cancel(True)
self.percentage(None)
+ if only_trusted:
+ self.error(ERROR_MISSING_GPG_SIGNATURE,
+ "Portage backend does not support GPG signature")
+ return
+
# inits
myopts = {}
myopts.pop("--deep", None)
commit d4774e931a7528cabc72d47f6738b090fac55251
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Thu Jul 23 00:03:47 2009 +0200
portage: update update-system to work with svn version of portage
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index ad0c2cc..1b12885 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1450,6 +1450,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
def update_system(self, only_trusted):
# TODO: only_trusted
+
self.status(STATUS_RUNNING)
self.allow_cancel(True)
self.percentage(None)
@@ -1465,12 +1466,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
spinner = ""
favorites = []
- settings, trees, mtimedb = _emerge.load_emerge_config()
- myparams = _emerge.create_depgraph_params(myopts, "")
- spinner = _emerge.stdout_spinner()
+ settings, trees, mtimedb = _emerge.actions.load_emerge_config()
+ myparams = _emerge.create_depgraph_params.create_depgraph_params(myopts, "")
+ spinner = _emerge.stdout_spinner.stdout_spinner()
- depgraph = _emerge.depgraph(settings, trees, myopts, myparams, spinner)
- retval, favorites = depgraph.select_files(["system", "world"])
+ depgraph = _emerge.depgraph.depgraph(settings, trees, myopts, myparams, spinner)
+ retval, favorites = depgraph.select_files(["@system", "@world"])
if not retval:
self.error(ERROR_INTERNAL_ERROR, "Wasn't able to get dependency graph")
return
@@ -1486,7 +1487,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
mtimedb["resume"]["myopts"] = myopts.copy()
mtimedb["resume"]["favorites"] = [str(x) for x in favorites]
- mergetask = _emerge.Scheduler(settings, trees, mtimedb,
+ mergetask = _emerge.Scheduler.Scheduler(settings, trees, mtimedb,
myopts, spinner, depgraph.altlist(),
favorites, depgraph.schedulerGraph())
mergetask.merge()
commit 2483c6dd82ec4fdc044c9e4beaed641612647434
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Wed Jul 22 23:40:11 2009 +0200
portage: improve update-packages, very similar to install-packages
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index ea8c485..ad0c2cc 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1403,8 +1403,50 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.percentage(100)
def update_packages(self, only_trusted, pkgs):
- # TODO: add some checks ?
- self.install_packages(only_trusted, pkgs)
+ # TODO: manage only_trusted
+ # TODO: manage errors
+ # TODO: manage config file updates
+
+ self.status(STATUS_RUNNING)
+ self.allow_cancel(True)
+ self.percentage(None)
+
+ cpv_list = []
+
+ for pkg in pkgs:
+ cpv = id_to_cpv(pkg)
+
+ if not self.is_cpv_valid(cpv):
+ self.error(ERROR_UPDATE_NOT_FOUND,
+ "Package %s was not found" % pkg)
+ continue
+
+ cpv_list.append('=' + cpv)
+
+ # creating update depgraph
+ myopts = {}
+ favorites = []
+ settings, trees, mtimedb = _emerge.actions.load_emerge_config()
+ myparams = _emerge.create_depgraph_params.create_depgraph_params(
+ myopts, "")
+
+ depgraph = _emerge.depgraph.depgraph(settings, trees,
+ myopts, myparams, None)
+ retval, favorites = depgraph.select_files(cpv_list)
+ if not retval:
+ self.error(ERROR_INTERNAL_ERROR,
+ "Wasn't able to get dependency graph")
+ return
+
+ try:
+ self.block_output()
+ # compiling/installing
+ mergetask = _emerge.Scheduler.Scheduler(settings, trees, mtimedb,
+ myopts, None, depgraph.altlist(),
+ favorites, depgraph.schedulerGraph())
+ mergetask.merge()
+ finally:
+ self.unblock_output()
def update_system(self, only_trusted):
# TODO: only_trusted
commit b7c2f99bda9ce3b93ddc5dd70438988819b8bf8a
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Wed Jul 22 23:00:02 2009 +0200
portage: improve install-packages to let install many packages
and filter output
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 4c14957..ea8c485 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1010,54 +1010,59 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.package(cpv, INFO_NORMAL)
def install_packages(self, only_trusted, pkgs):
+ # NOTES:
+ # can't install an already installed packages
+ # even if it happens to be needed in Gentoo but probably not this API
+
+ # TODO: manage only_trusted
+ # TODO: manage errors
+ # TODO: manage config file updates
+
self.status(STATUS_RUNNING)
- self.allow_cancel(True) # TODO: sure ?
+ self.allow_cancel(True)
self.percentage(None)
- # FIXME: use only_trusted
+ cpv_list = []
for pkg in pkgs:
- # check for installed is not mandatory as there are a lot of reason
- # to re-install a package (USE/{LD,C}FLAGS change for example) (or live)
- # TODO: keep a final position
cpv = id_to_cpv(pkg)
- # is cpv valid
- if not portage.portdb.cpv_exists(cpv):
- self.error(ERROR_PACKAGE_NOT_FOUND, "Package %s was not found" % pkg)
+ if not self.is_cpv_valid(cpv):
+ self.error(ERROR_PACKAGE_NOT_FOUND,
+ "Package %s was not found" % pkg)
continue
- # inits
- myopts = {} # TODO: --nodepends ?
- spinner = ""
- favorites = []
- settings, trees, mtimedb = _emerge.load_emerge_config()
- myparams = _emerge.create_depgraph_params(myopts, "")
- spinner = _emerge.stdout_spinner()
-
- depgraph = _emerge.depgraph(settings, trees, myopts, myparams, spinner)
- retval, favorites = depgraph.select_files(["="+cpv])
- if not retval:
- self.error(ERROR_INTERNAL_ERROR, "Wasn't able to get dependency graph")
+ if self.is_installed(cpv):
+ self.error(ERROR_PACKAGE_ALREADY_INSTALLED,
+ "Package %s is already installed" % pkg)
continue
- if "resume" in mtimedb and \
- "mergelist" in mtimedb["resume"] and \
- len(mtimedb["resume"]["mergelist"]) > 1:
- mtimedb["resume_backup"] = mtimedb["resume"]
- del mtimedb["resume"]
- mtimedb.commit()
+ cpv_list.append('=' + cpv)
- mtimedb["resume"] = {}
- mtimedb["resume"]["myopts"] = myopts.copy()
- mtimedb["resume"]["favorites"] = [str(x) for x in favorites]
+ # creating installation depgraph
+ myopts = {}
+ favorites = []
+ settings, trees, mtimedb = _emerge.actions.load_emerge_config()
+ myparams = _emerge.create_depgraph_params.create_depgraph_params(
+ myopts, "")
- # TODO: check for writing access before calling merge ?
+ depgraph = _emerge.depgraph.depgraph(settings, trees,
+ myopts, myparams, None)
+ retval, favorites = depgraph.select_files(cpv_list)
+ if not retval:
+ self.error(ERROR_INTERNAL_ERROR,
+ "Wasn't able to get dependency graph")
+ return
- mergetask = _emerge.Scheduler(settings, trees, mtimedb,
- myopts, spinner, depgraph.altlist(),
+ try:
+ self.block_output()
+ # compiling/installing
+ mergetask = _emerge.Scheduler.Scheduler(settings, trees, mtimedb,
+ myopts, None, depgraph.altlist(),
favorites, depgraph.schedulerGraph())
mergetask.merge()
+ finally:
+ self.unblock_output()
def refresh_cache(self, force):
# NOTES: can't manage progress even if it could be better
commit 84adbd9de4a8a0b30ac8607ccf6f2702605a22df
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Wed Jul 22 18:09:07 2009 +0200
portage: remove-packages breaks if a candidate is in the system set
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 3b0ace1..4c14957 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1090,8 +1090,6 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
def remove_packages(self, allowdep, autoremove, pkgs):
- # TODO: system packages should prompt an error or a warning
-
self.status(STATUS_RUNNING)
self.allow_cancel(True)
self.percentage(None)
@@ -1099,10 +1097,17 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_list = []
packages = []
required_packages = []
+ system_packages = []
settings, trees, mtimedb = _emerge.actions.load_emerge_config()
root_config = trees[self.portage_settings["ROOT"]]["root_config"]
+ # get system packages
+ set = portage.sets.base.InternalPackageSet(
+ initial_atoms=root_config.setconfig.getSetAtoms("system"))
+ for atom in set:
+ system_packages.append(atom.cp)
+
# create cpv_list
for pkg in pkgs:
cpv = id_to_cpv(pkg)
@@ -1117,6 +1122,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
"Package %s is not installed" % pkg)
continue
+ # stop removal if a package is in the system set
+ if portage.pkgsplit(cpv)[0] in system_packages:
+ self.error(ERROR_CANNOT_REMOVE_SYSTEM_PACKAGE,
+ "Package %s is a system package. If you really want to remove it, please use portage" % pkg)
+ continue
+
cpv_list.append(cpv)
# backend do not implement autoremove
commit 5dd3bab94d7aaa63e246506bbc1b12f282ad7665
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Wed Jul 22 17:25:35 2009 +0200
portage: remove-packages now removes alse required packages
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index d906ea4..3b0ace1 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1090,8 +1090,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
def remove_packages(self, allowdep, autoremove, pkgs):
- # TODO: implement allowdep
- # can't use allowdep: never removing dep
+ # TODO: system packages should prompt an error or a warning
self.status(STATUS_RUNNING)
self.allow_cancel(True)
@@ -1099,6 +1098,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_list = []
packages = []
+ required_packages = []
settings, trees, mtimedb = _emerge.actions.load_emerge_config()
root_config = trees[self.portage_settings["ROOT"]]["root_config"]
@@ -1124,7 +1124,29 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.message(MESSAGE_AUTOREMOVE_IGNORED,
"Portage backend do not implement autoremove option")
- # create packages list
+ # get packages needing candidates for removal
+ required_packages = self.get_packages_required(cpv_list,
+ settings, trees, recursive=True)
+
+ # if there are required packages, allowdep must be on
+ if required_packages and not allowdep:
+ self.error(ERROR_DEP_RESOLUTION_FAILED,
+ "Could not perform remove operation has packages are needed by other packages")
+ return
+
+ # first, we add required packages
+ for p in required_packages:
+ package = _emerge.Package.Package(
+ type_name=p.type_name,
+ built=p.built,
+ installed=p.installed,
+ root_config=p.root_config,
+ cpv=p.cpv,
+ metadata=p.metadata,
+ operation='uninstall')
+ packages.append(package)
+
+ # and now, packages we want really to remove
db_keys = list(portage.portdb._aux_cache_keys)
for cpv in cpv_list:
metadata = self.get_metadata(cpv, db_keys, in_dict=True)
commit b78bd47dfc1857522eb59f38c33aa1edbf5bb7ad
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Wed Jul 22 16:41:53 2009 +0200
portage: create get_packages_required and use it for get_requires
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 2e46e6b..d906ea4 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -525,6 +525,57 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
return get_package_id(package, version, ' '.join(keywords), repo)
+ def get_packages_required(self, cpv_input, settings, trees, recursive):
+ '''
+ Get a list of cpv, portage settings and tree and recursive parameter
+ And returns the list of packages required for cpv list
+ '''
+ # TODO: should see if some cpv in the input list is not a dep of another
+ packages_list = []
+
+ myopts = {}
+ myopts["--selective"] = True
+ myopts["--deep"] = True
+
+ myparams = _emerge.create_depgraph_params.create_depgraph_params(
+ myopts, "remove")
+ depgraph = _emerge.depgraph.depgraph(settings, trees, myopts,
+ myparams, None)
+
+ # TODO: atm, using FILTER_INSTALLED because it's quicker
+ # and we don't want to manage non-installed packages
+ for cp in self.get_all_cp([FILTER_INSTALLED]):
+ for cpv in self.get_all_cpv(cp, [FILTER_INSTALLED]):
+ depgraph._dynamic_config._dep_stack.append(
+ _emerge.Dependency.Dependency(
+ atom=portage.dep.Atom('=' + cpv),
+ root=portage.settings["ROOT"], parent=None))
+
+ if not depgraph._complete_graph():
+ self.error(ERROR_INTERNAL_ERROR, "Error when generating depgraph")
+ return
+
+ def _add_children_to_list(packages_list, node):
+ for n in depgraph._dynamic_config.digraph.parent_nodes(node):
+ if n not in packages_list \
+ and not isinstance(n, _emerge.SetArg.SetArg):
+ packages_list.append(n)
+ _add_children_to_list(packages_list, n)
+
+ for node in depgraph._dynamic_config.digraph.__iter__():
+ if isinstance(node, _emerge.SetArg.SetArg):
+ continue
+ if node.cpv in cpv_input:
+ if recursive:
+ _add_children_to_list(packages_list, node)
+ else:
+ for n in \
+ depgraph._dynamic_config.digraph.parent_nodes(node):
+ if not isinstance(n, _emerge.SetArg.SetArg):
+ packages_list.append(n)
+
+ return packages_list
+
def package(self, cpv, info=None):
desc = self.get_metadata(cpv, ["DESCRIPTION"])[0]
if not info:
@@ -783,52 +834,16 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_input.append(cpv)
- myopts = {}
- myopts["--selective"] = True
- myopts["--deep"] = True
- # TODO: keep remove ?
settings, trees, _ = _emerge.actions.load_emerge_config()
- myparams = _emerge.create_depgraph_params.create_depgraph_params(
- myopts, "remove")
-
- depgraph = _emerge.depgraph.depgraph(settings, trees, myopts,
- myparams, None)
-
- # TODO: atm, using FILTER_INSTALLED because it's quicker
- # and we don't want to manage non-installed packages
- for cp in self.get_all_cp([FILTER_INSTALLED]):
- for cpv in self.get_all_cpv(cpv, [FILTER_INSTALLED]):
- depgraph._dynamic_config._dep_stack.append(
- _emerge.Dependency.Dependency(atom=portage.dep.Atom('=' + cpv),
- root=portage.settings["ROOT"], parent=None))
-
- if not depgraph._complete_graph():
- self.error(ERROR_INTERNAL_ERROR, "Error when generating depgraph")
- return
- def _add_children_to_list(cpv_list, node):
- for n in depgraph._dynamic_config.digraph.parent_nodes(node):
- if n not in cpv_list and not isinstance(n, _emerge.SetArg.SetArg):
- cpv_list.append(n)
- _add_children_to_list(cpv_list, n)
+ packages_list = self.get_packages_required(cpv_input,
+ settings, trees, recursive)
- for node in depgraph._dynamic_config.digraph.__iter__():
- if isinstance(node, _emerge.SetArg.SetArg):
- continue
- if node.cpv in cpv_input:
- if recursive:
- _add_children_to_list(cpv_list, node)
- else:
- for n in depgraph._dynamic_config.digraph.parent_nodes(node):
- if not isinstance(n, _emerge.SetArg.SetArg):
- cpv_list.append(n)
-
- # now we can change cpv_list to a real cpv list
- tmp_list = cpv_list[:]
+ # now we can populate cpv_list
cpv_list = []
- for x in tmp_list:
- cpv_list.append(x[2])
- del tmp_list
+ for p in packages_list:
+ cpv_list.append(p.cpv)
+ del packages_list
# free filter
cpv_list = self.filter_free(cpv_list, fltlist)
commit 21e2b91107dbf471b7c074a33b02d963fbb9f171
Author: Richard Hughes <richard at hughsie.com>
Date: Wed Jul 22 07:48:51 2009 +0100
Fedora: fix up the packagekit-qt package summary. Fixes rh#513091
diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 9439b2c..ec65785 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -154,13 +154,13 @@ Provides: PackageKit-devel = %{version}-%{release}
GLib headers and libraries for PackageKit.
%package qt-devel
-Summary: QT Libraries and headers for PackageKit
+Summary: Qt Libraries and headers for PackageKit
Group: Development/Libraries
Requires: %{name}-qt = %{version}-%{release}
Requires: pkgconfig
%description qt-devel
-QT headers and libraries for PackageKit.
+Qt headers and libraries for PackageKit.
%package backend-devel
Summary: Headers to compile out of tree PackageKit backends
commit afcd95a8e71273c3d079a03f6b77247f766c1832
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 22:09:45 2009 +0200
portage: fix a small bug in get-requires
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 271cff8..2e46e6b 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -820,7 +820,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
_add_children_to_list(cpv_list, node)
else:
for n in depgraph._dynamic_config.digraph.parent_nodes(node):
- cpv_list.append(n)
+ if not isinstance(n, _emerge.SetArg.SetArg):
+ cpv_list.append(n)
# now we can change cpv_list to a real cpv list
tmp_list = cpv_list[:]
commit 95adf5c031ee8d3bf9cbd728fe15f20cbb0a627e
Author: raven <raven at fedoraproject.org>
Date: Tue Jul 21 18:35:30 2009 +0000
Sending translation for Polish
diff --git a/po/pl.po b/po/pl.po
index 97230e8..fd2a08a 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-07-12 16:41+0000\n"
-"PO-Revision-Date: 2009-07-12 21:31+0200\n"
+"POT-Creation-Date: 2009-07-21 14:37+0000\n"
+"PO-Revision-Date: 2009-07-21 20:34+0200\n"
"Last-Translator: Piotr DrÄ
g <piotrdrag at gmail.com>\n"
"Language-Team: Polish <pl at li.org>\n"
"MIME-Version: 1.0\n"
@@ -208,8 +208,7 @@ msgstr "Wymagane jest ponowne uruchomienie sesji:"
#. TRANSLATORS: a package requires the system to be restarted due to a security update
#: ../client/pk-console.c:523
msgid "System restart (security) required by:"
-msgstr ""
-"Ponowne uruchomienie systemu jest wymagane przez:"
+msgstr "Ponowne uruchomienie systemu jest wymagane przez:"
#. TRANSLATORS: a package requires the session to be restarted due to a security update
#: ../client/pk-console.c:526
@@ -523,8 +522,8 @@ msgstr "Podpolecenia:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1780 ../client/pk-generate-pack.c:185
-#: ../client/pk-monitor.c:125
+#: ../client/pk-console.c:1781 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:128
#: ../contrib/command-not-found/pk-command-not-found.c:521
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:532
#: ../src/pk-main.c:211
@@ -532,149 +531,148 @@ msgid "Show extra debugging information"
msgstr "WyÅwietla dodatkowe informacje o debugowaniu"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1783 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1784 ../client/pk-monitor.c:130
msgid "Show the program version and exit"
msgstr "WyÅwietla wersjÄ programu i wyÅÄ
cza"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1786
+#: ../client/pk-console.c:1787
msgid "Set the filter, e.g. installed"
msgstr "Ustawia filtr, np. zainstalowane"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1789
+#: ../client/pk-console.c:1790
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:1816
+#: ../client/pk-console.c:1817
msgid "This tool could not connect to system DBUS."
msgstr "To narzÄdzie nie może poÅÄ
czyÄ siÄ z systemowym D-Bus."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1905
+#: ../client/pk-console.c:1907
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:1923
+#: ../client/pk-console.c:1926
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:1929 ../client/pk-console.c:1937
-#: ../client/pk-console.c:1945 ../client/pk-console.c:1953
+#: ../client/pk-console.c:1933 ../client/pk-console.c:1942
+#: ../client/pk-console.c:1951 ../client/pk-console.c:1960
msgid "A search term is required"
msgstr "Wymagany jest wyszukiwany termin"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1959
+#: ../client/pk-console.c:1967
msgid "Invalid search type"
msgstr "NieprawidÅowy typ wyszukiwania"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1965
+#: ../client/pk-console.c:1973
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:1973
+#: ../client/pk-console.c:1982
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:1981
+#: ../client/pk-console.c:1991
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:1988
-msgid ""
-"A destination directory and then the package names to download are required"
-msgstr "Wymagany jest katalog docelowy, a nastÄpnie nazwy pakietów do pobrania"
+#: ../client/pk-console.c:1999
+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:1994
+#: ../client/pk-console.c:2006
msgid "Directory not found"
msgstr "Nie znaleziono katalogu"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:2001
+#: ../client/pk-console.c:2014
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:2010
+#: ../client/pk-console.c:2024
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:2026
+#: ../client/pk-console.c:2041
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:2034 ../client/pk-console.c:2042
+#: ../client/pk-console.c:2050 ../client/pk-console.c:2059
msgid "A repository name is required"
msgstr "Wymagana jest nazwa repozytorium"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2050
+#: ../client/pk-console.c:2068
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:2063
+#: ../client/pk-console.c:2082
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:2069
+#: ../client/pk-console.c:2089
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:2075
+#: ../client/pk-console.c:2096
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:2084 ../client/pk-console.c:2095
-#: ../client/pk-console.c:2103 ../client/pk-console.c:2119
-#: ../client/pk-console.c:2127 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2106 ../client/pk-console.c:2118
+#: ../client/pk-console.c:2127 ../client/pk-console.c:2145
+#: ../client/pk-console.c:2154 ../client/pk-generate-pack.c:241
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:2111
+#: ../client/pk-console.c:2136
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:2135
+#: ../client/pk-console.c:2163
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:2144 ../client/pk-console.c:2153
+#: ../client/pk-console.c:2173 ../client/pk-console.c:2183
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:2206
+#: ../client/pk-console.c:2237
#, 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:2219
+#: ../client/pk-console.c:2250
msgid "Incorrect privileges for this operation"
msgstr "Niepoprawne uprawnienia dla tego dziaÅania"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2222
+#: ../client/pk-console.c:2253
msgid "Command failed"
msgstr "Polecenie nie powiodÅo siÄ"
@@ -800,10 +798,14 @@ msgid "Failed to create '%s': %s"
msgstr "Utworzenie \"%s\" nie powiodÅo siÄ: %s"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:143
+#: ../client/pk-monitor.c:146
msgid "PackageKit Monitor"
msgstr "Monitor PackageKit"
+#: ../client/pk-monitor.c:183
+msgid "Cannot show the list of transactions"
+msgstr "Nie można wyÅwietliÄ listy transakcji"
+
#. TRANSLATORS: The package was not found in any software sources
#: ../client/pk-tools-common.c:118
#, c-format
@@ -895,56 +897,56 @@ msgid "Please choose a package to install"
msgstr "ProszÄ wybraÄ pakiet do zainstalowania"
#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/src/contents.cpp:299
+#: ../contrib/browser-plugin/pk-plugin-install.c:433
msgid "Getting package information..."
msgstr "Pobieranie informacji o pakiecie..."
#. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/src/contents.cpp:305
+#: ../contrib/browser-plugin/pk-plugin-install.c:439
#, c-format
msgid "Run %s"
msgstr "Uruchom %s"
#. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/src/contents.cpp:311
+#: ../contrib/browser-plugin/pk-plugin-install.c:445
msgid "Installed version"
msgstr "Zainstalowana wersja"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:319
+#: ../contrib/browser-plugin/pk-plugin-install.c:453
#, c-format
msgid "Run version %s now"
msgstr "Uruchom wersjÄ %s"
#. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/src/contents.cpp:325
+#: ../contrib/browser-plugin/pk-plugin-install.c:459
msgid "Run now"
msgstr "Uruchom teraz"
#. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:331
+#: ../contrib/browser-plugin/pk-plugin-install.c:465
#, c-format
msgid "Update to version %s"
msgstr "Zaktualizuj do wersji %s"
#. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/src/contents.cpp:337
+#: ../contrib/browser-plugin/pk-plugin-install.c:471
#, c-format
msgid "Install %s now"
msgstr "Zainstaluj %s"
#. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/src/contents.cpp:340
+#: ../contrib/browser-plugin/pk-plugin-install.c:474
msgid "Version"
msgstr "Wersja"
#. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/src/contents.cpp:345
+#: ../contrib/browser-plugin/pk-plugin-install.c:479
msgid "No packages found for your system"
msgstr "Nie znaleziono pakietów dla systemu"
#. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/src/contents.cpp:350
+#: ../contrib/browser-plugin/pk-plugin-install.c:484
msgid "Installing..."
msgstr "Instalowanie..."
@@ -1145,27 +1147,33 @@ msgstr "Lista pakietów PackageKit"
msgid "PackageKit Service Pack"
msgstr "Pakiet serwisowy PackageKit"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
msgid "Accept EULA"
msgstr "Akceptacja licencji"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
msgid "Authentication is required to accept a EULA"
msgstr "Wymagane jest uwierzytelnienie, aby zaakceptowaÄ licencjÄ"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
msgid ""
"Authentication is required to cancel a task that was not started by yourself"
msgstr ""
"Wymagane jest uwierzytelnienie, aby anulowaÄ zadanie nie rozpoczÄte przez "
"bieżÄ
cego użytkownika"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
msgid "Authentication is required to change software source parameters"
msgstr ""
"Wymagane jest uwierzytelnienie, aby zmieniÄ parametry źródeÅ oprogramowania"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
msgid ""
"Authentication is required to consider a key used for signing packages as "
"trusted"
@@ -1173,27 +1181,27 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby oznaczyÄ klucz używany do podpisywania "
"pakietów jako zaufany"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
msgid "Authentication is required to install a signed package"
msgstr "Wymagane jest uwierzytelnienie, aby zainstalowaÄ podpisany pakiet"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
msgid "Authentication is required to install an untrusted package"
msgstr "Wymagane jest uwierzytelnienie, aby zainstalowaÄ niezaufany pakiet"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
msgid "Authentication is required to refresh the system sources"
msgstr "Wymagane jest uwierzytelnienie, aby odÅwieżyÄ ÅºródÅa systemu"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
msgid "Authentication is required to remove packages"
msgstr "Wymagane jest uwierzytelnienie, aby usunÄ
Ä pakiety"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
msgid "Authentication is required to rollback a transaction"
msgstr "Wymagane jest uwierzytelnienie, aby przywróciÄ transakcjÄ"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
msgid ""
"Authentication is required to set the network proxy used for downloading "
"packages"
@@ -1201,47 +1209,104 @@ msgstr ""
"Wymagane jest uwierzytelnienie, aby ustawiÄ poÅrednika sieciowego używanego "
"do pobierania pakietów"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
msgid "Authentication is required to update packages"
msgstr "Wymagane jest uwierzytelnienie, aby zaktualizowaÄ pakiety"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:24
msgid "Cancel foreign task"
msgstr "Anulowanie obcego zadania"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:30
msgid "Change software source parameters"
msgstr "Zmiana parametrów źródÅa oprogramowania"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:37
msgid "Install signed package"
msgstr "Instalacja podpisanego pakietu"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:44
msgid "Install untrusted local file"
msgstr "Instalacja niezaufanego lokalnego pliku"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:49
msgid "Refresh system sources"
msgstr "OdÅwieżenie źródeÅ systemu"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:59
msgid "Remove package"
msgstr "UsuniÄcie pakietu"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#. SECURITY:
+#. - Normal users require admin authentication to rollback system state
+#. as this will change a large number of packages, and could expose the
+#. system to previously patched security vulnerabilities.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:65
msgid "Rollback to a previous transaction"
msgstr "Przywrócenie poprzedniej transakcji"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:70
msgid "Set network proxy"
msgstr "Ustawienie poÅrednika sieciowego"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:77
msgid "Trust a key used for signing packages"
msgstr "Oznaczenie klucza używanego do podpisywania pakietów jako zaufanego"
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:85
msgid "Update packages"
msgstr "Aktualizacja pakietów"
commit 689213022c483c0b05e28707cb54bc51a3275a0b
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 19:08:34 2009 +0200
portage: show a message if try to use remove-packages with autoremove=True
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 2302d14..271cff8 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1074,7 +1074,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
def remove_packages(self, allowdep, autoremove, pkgs):
- # TODO: add a message or an error with allowdep
+ # TODO: implement allowdep
# can't use allowdep: never removing dep
self.status(STATUS_RUNNING)
@@ -1103,6 +1103,11 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_list.append(cpv)
+ # backend do not implement autoremove
+ if autoremove:
+ self.message(MESSAGE_AUTOREMOVE_IGNORED,
+ "Portage backend do not implement autoremove option")
+
# create packages list
db_keys = list(portage.portdb._aux_cache_keys)
for cpv in cpv_list:
commit a0b27f053d345b40fb6790a4ff5e80a8a410960b
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 18:54:45 2009 +0200
Add MESSAGE_AUTOREMOVE_IGNORED in packagekit-glib
and MessageAutoremoveIgnored in packagekit-qt
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 3a8a15e..e9ab344 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -212,6 +212,7 @@ static const PkEnumMatch enum_message[] = {
{PK_MESSAGE_ENUM_COULD_NOT_FIND_PACKAGE, "could-not-find-package"},
{PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED, "config-files-changed"},
{PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED, "package-already-installed"},
+ {PK_MESSAGE_ENUM_AUTOREMOVE_IGNORED, "autoremove-ignored"},
{0, NULL}
};
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index 6ccf65f..7f9e283 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -238,6 +238,7 @@ typedef enum {
PK_MESSAGE_ENUM_COULD_NOT_FIND_PACKAGE,
PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED,
PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED,
+ PK_MESSAGE_ENUM_AUTOREMOVE_IGNORED,
PK_MESSAGE_ENUM_UNKNOWN
} PkMessageEnum;
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 29973bc..3c91d5b 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -394,6 +394,7 @@ public:
MessageCouldNotFindPackage,
MessageConfigFilesChanged,
MessagePackageAlreadyInstalled,
+ MessageAutoremoveIgnored,
UnknownMessageType
} MessageType;
commit d02a373593484f9738f9afad25ae28d426218abf
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 18:54:02 2009 +0200
Looks like this file was missing in the previous commit...
diff --git a/lib/python/packagekit/backend.py b/lib/python/packagekit/backend.py
index 9de3e50..d3c6b33 100644
--- a/lib/python/packagekit/backend.py
+++ b/lib/python/packagekit/backend.py
@@ -393,7 +393,7 @@ class PackageKitBaseBackend:
'''
self.error(ERROR_NOT_SUPPORTED, "This function is not implemented in this backend", exit=False)
- def remove_packages(self, allowdep, package_ids):
+ def remove_packages(self, allowdep, autoremove, package_ids):
'''
Implement the {backend}-remove functionality
Needed to be implemented in a sub class
@@ -570,9 +570,10 @@ class PackageKitBaseBackend:
self.refresh_cache(force)
self.finished()
elif cmd == 'remove-packages':
- allowdeps = args[0]
- package_ids = args[1].split(PACKAGE_IDS_DELIM)
- self.remove_packages(allowdeps, package_ids)
+ allowdeps = _text_to_bool(args[0])
+ autoremove = _text_to_bool(args[1])
+ package_ids = args[2].split(PACKAGE_IDS_DELIM)
+ self.remove_packages(allowdeps, autoremove, package_ids)
self.finished()
elif cmd == 'repo-enable':
repoid = args[0]
commit a80741984baaa6eaff1b95dad11365b8b276e17d
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 16:31:50 2009 +0200
Change remove-packages python backend function to get autoremove value.
Changing all backends needed to be updated.
allow_deps and autoremove are now converted from text to bool in
backend.py, not in backends (updating yum backend to use bool).
diff --git a/backends/apt/aptBackend.py b/backends/apt/aptBackend.py
index 3ad2a12..7a88975 100755
--- a/backends/apt/aptBackend.py
+++ b/backends/apt/aptBackend.py
@@ -788,10 +788,11 @@ class PackageKitAptBackend(PackageKitBaseBackend):
self.percentage(100)
@unlock_cache_afterwards
- def remove_packages(self, allowdeps, ids):
+ def remove_packages(self, allowdeps, autoremove, ids):
"""
Implement the {backend}-remove functionality
"""
+ # TODO: use autoremove
pklog.info("Removing package(s): id %s" % ids)
if not self._lock_cache(): return
self.status(STATUS_REMOVE)
diff --git a/backends/apt/pk-backend-apt.c b/backends/apt/pk-backend-apt.c
index 4f2f50d..3e04189 100644
--- a/backends/apt/pk-backend-apt.c
+++ b/backends/apt/pk-backend-apt.c
@@ -268,7 +268,7 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/* send the complete list as stdin */
package_ids_temp = pk_package_ids_to_text (package_ids);
- pk_backend_spawn_helper (spawn, "aptBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), package_ids_temp, NULL);
+ pk_backend_spawn_helper (spawn, "aptBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
g_free (package_ids_temp);
}
diff --git a/backends/conary/conaryBackend.py b/backends/conary/conaryBackend.py
index 9574e1f..4089680 100755
--- a/backends/conary/conaryBackend.py
+++ b/backends/conary/conaryBackend.py
@@ -610,10 +610,11 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
@ExceptionHandler
- def remove_packages(self, allowDeps, package_ids):
+ def remove_packages(self, allowDeps, autoremove, package_ids):
'''
Implement the {backend}-remove-packages functionality
'''
+ # TODO: use autoremove
self.allow_cancel(True)
self.percentage(0)
self.status(STATUS_RUNNING)
diff --git a/backends/conary/pk-backend-conary.c b/backends/conary/pk-backend-conary.c
index 5ac87ac..412dc69 100644
--- a/backends/conary/pk-backend-conary.c
+++ b/backends/conary/pk-backend-conary.c
@@ -205,7 +205,7 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/* send the complete list as stdin */
package_ids_temp = pk_package_ids_to_text (package_ids);
- pk_backend_spawn_helper (spawn, "conaryBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), package_ids_temp, NULL);
+ pk_backend_spawn_helper (spawn, "conaryBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
g_free (package_ids_temp);
}
diff --git a/backends/pisi/pisiBackend.py b/backends/pisi/pisiBackend.py
index 6bcc787..f4faee6 100755
--- a/backends/pisi/pisiBackend.py
+++ b/backends/pisi/pisiBackend.py
@@ -298,10 +298,11 @@ class PackageKitPisiBackend(PackageKitBaseBackend, PackagekitPackage):
self.percentage(100)
- def remove_packages(self, deps, package_ids):
+ def remove_packages(self, allowdeps, autoremove, package_ids):
""" Removes given package from system"""
self.allow_cancel(False)
self.percentage(None)
+ # TODO: use autoremove
package = self.get_package_from_id(package_ids[0])[0]
diff --git a/backends/pisi/pk-backend-pisi.c b/backends/pisi/pk-backend-pisi.c
index 8717fae..583edc0 100644
--- a/backends/pisi/pk-backend-pisi.c
+++ b/backends/pisi/pk-backend-pisi.c
@@ -228,7 +228,7 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/* send the complete list as stdin */
package_ids_temp = pk_package_ids_to_text (package_ids);
- pk_backend_spawn_helper (spawn, "pisiBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), package_ids_temp, NULL);
+ pk_backend_spawn_helper (spawn, "pisiBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
g_free (package_ids_temp);
}
diff --git a/backends/portage/pk-backend-portage.c b/backends/portage/pk-backend-portage.c
index 45a1299..1967c22 100644
--- a/backends/portage/pk-backend-portage.c
+++ b/backends/portage/pk-backend-portage.c
@@ -237,11 +237,10 @@ backend_refresh_cache (PkBackend *backend, gboolean force)
static void
backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow_deps, gboolean autoremove)
{
- // TODO: autoremove ?
gchar *package_ids_temp;
package_ids_temp = pk_package_ids_to_text (package_ids);
- pk_backend_spawn_helper (spawn, BACKEND_FILE, "remove-packages", pk_backend_bool_to_text (allow_deps), package_ids_temp, NULL);
+ pk_backend_spawn_helper (spawn, BACKEND_FILE, "remove-packages", pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
g_free (package_ids_temp);
}
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 468d1db..2302d14 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1073,7 +1073,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.unblock_output()
self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
- def remove_packages(self, allowdep, pkgs):
+ def remove_packages(self, allowdep, autoremove, pkgs):
# TODO: add a message or an error with allowdep
# can't use allowdep: never removing dep
diff --git a/backends/smart/pk-backend-smart.c b/backends/smart/pk-backend-smart.c
index eefb5b7..d93c327 100644
--- a/backends/smart/pk-backend-smart.c
+++ b/backends/smart/pk-backend-smart.c
@@ -299,8 +299,7 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/* send the complete list as stdin */
package_ids_temp = pk_package_ids_to_text (package_ids);
- /* FIXME: Use autoremove */
- pk_backend_spawn_helper (spawn, BACKEND("remove-packages"), pk_backend_bool_to_text (allow_deps), package_ids_temp, NULL);
+ pk_backend_spawn_helper (spawn, BACKEND("remove-packages"), pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
g_free (package_ids_temp);
}
diff --git a/backends/smart/smartBackend.py b/backends/smart/smartBackend.py
index 1b09b60..44d98b2 100755
--- a/backends/smart/smartBackend.py
+++ b/backends/smart/smartBackend.py
@@ -226,7 +226,8 @@ class PackageKitSmartBackend(PackageKitBaseBackend):
self.ctrl.commitTransaction(trans, confirm=False)
@needs_cache
- def remove_packages(self, allow_deps, packageids):
+ def remove_packages(self, allow_deps, autoremove, packageids):
+ # TODO: use autoremove
packages = []
for packageid in packageids:
ratio, results, suggestions = self._search_packageid(packageid)
diff --git a/backends/yum/pk-backend-yum.c b/backends/yum/pk-backend-yum.c
index 7006147..ef0680c 100644
--- a/backends/yum/pk-backend-yum.c
+++ b/backends/yum/pk-backend-yum.c
@@ -324,7 +324,7 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
/* send the complete list as stdin */
package_ids_temp = pk_package_ids_to_text (package_ids);
- pk_backend_spawn_helper (spawn, "yumBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), package_ids_temp, NULL);
+ pk_backend_spawn_helper (spawn, "yumBackend.py", "remove-packages", pk_backend_bool_to_text (allow_deps), pk_backend_bool_to_text (autoremove), package_ids_temp, NULL);
g_free (package_ids_temp);
}
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 962229f..8408081 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -1907,11 +1907,12 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
except Exception, e:
raise PkError(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
- def remove_packages(self, allowdep, package_ids):
+ def remove_packages(self, allowdep, autoremove, package_ids):
'''
Implement the {backend}-remove functionality
Needed to be implemented in a sub class
'''
+ # TODO: use autoremove
try:
self._check_init()
except PkError, e:
@@ -1945,7 +1946,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_PACKAGE_NOT_INSTALLED, "The package %s is not installed" % pkg.name)
if txmbrs:
try:
- if allowdep != 'yes':
+ if not allowdep:
self._runYumTransaction(allow_remove_deps=False)
else:
self._runYumTransaction(allow_remove_deps=True)
commit 87b1625cf6d06007498169208c4ce1a36bb5f2ea
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 15:52:10 2009 +0200
Remove --enable-maintainer-mode from autogen conf_flags as it's not a
valid option anymore
diff --git a/autogen.sh b/autogen.sh
index 70925ea..217750a 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -29,7 +29,7 @@ fi
(cd $srcdir && autoreconf --force --install) || exit 1
(cd $srcdir && intltoolize) || exit 1
-conf_flags="--enable-maintainer-mode --enable-gtk-doc"
+conf_flags="--enable-gtk-doc"
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
commit 2d7f9684b3b76aa2822244b67271df1e68e7ff96
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Tue Jul 21 15:48:34 2009 +0200
Change networkmanager, connman and service-packs description
to "Disable foo" instead of "Enable foo" and add --disable-foo as
command when calling ./configure -h
diff --git a/configure.ac b/configure.ac
index b26bfb7..63c1e3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -254,8 +254,8 @@ AM_CONDITIONAL(PK_BUILD_MANAGED, test $build_managed = "yes")
dnl ---------------------------------------------------------------------------
dnl - Service Packs (default enabled)
dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(service-packs, AC_HELP_STRING([--enable-service-packs],
- [Enable Service Packs]), enable_servicepacks=$enableval)
+AC_ARG_ENABLE(service-packs, AC_HELP_STRING([--disable-service-packs],
+ [Disable Service Packs support]), enable_servicepacks=$enableval)
if test x$enable_servicepacks != xno; then
AC_CHECK_HEADERS(archive.h,
HAVE_ARCHIVE_H="yes",
@@ -298,8 +298,9 @@ networking_apis="unix"
dnl ---------------------------------------------------------------------------
dnl - NetworkManager (default enabled)
dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(networkmanager, AC_HELP_STRING([--enable-networkmanager],
- [Enable NetworkManager]), enable_networkmanager=$enableval)
+AC_ARG_ENABLE(networkmanager, AC_HELP_STRING([--disable-networkmanager],
+ [Disable NetworkManager support]),
+ enable_networkmanager=$enableval)
if test x$enable_networkmanager != xno; then
PKG_CHECK_MODULES(LIBNM, libnm_glib >= $LIBNM_GLIB_REQUIRED, PK_BUILD_NETWORKMANAGER="yes", PK_BUILD_NETWORKMANAGER="no")
if test "x$PK_BUILD_NETWORKMANAGER" = "xyes"; then
@@ -321,8 +322,8 @@ AC_SUBST(LIBNM_LIBS)
dnl ---------------------------------------------------------------------------
dnl - ConnMan (default enabled)
dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(connman, AC_HELP_STRING([--enable-connman],
- [Enable ConnMan]), enable_connman=$enableval)
+AC_ARG_ENABLE(connman, AC_HELP_STRING([--disable-connman],
+ [Disable ConnMan support]), enable_connman=$enableval)
if test x$enable_connman != xno; then
PKG_CHECK_MODULES(CONNMAN, connman, PK_BUILD_CONNMAN="yes", PK_BUILD_CONNMAN="no")
if test "x$PK_BUILD_CONNMAN" = "xyes"; then
commit 93d70d070c1bae360440bcff2eddb160943abd34
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Mon Jul 20 23:37:36 2009 +0200
Adding 'strict' option to configure to add -Werror.
Auto-enabled in repo, auto-disabled otherwise.
diff --git a/configure.ac b/configure.ac
index 34598a0..b26bfb7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,10 +74,29 @@ CPPFLAGS="$CPPFLAGS -DG_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_DISABL
CPPFLAGS="$CPPFLAGS -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE"
CPPFLAGS="$CPPFLAGS -DGSEAL_ENABLE"
+dnl ---------------------------------------------------------------------------
+dnl - Use strict options (default enabled for devs, disabled in releases)
+dnl ---------------------------------------------------------------------------
+
+dnl if .git directory is present, considering we are working in the repository
+if test -d ".git"; then
+ default_strict=yes
+else
+ default_strict=no
+fi
+
+AC_ARG_ENABLE(strict, AC_HELP_STRING([--enable-strict],
+ [Enable strict compilation options]), enable_strict=$enableval,
+ enable_strict=$default_strict)
+if test x$enable_strict != xno; then
+ if test "$GCC" = "yes"; then
+ WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
+ fi
+fi
+
if test "$GCC" = "yes"; then
# work both in C and C++
WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wall"
- WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wcast-align -Wno-uninitialized"
WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wmissing-declarations"
WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Wredundant-decls"
commit 7c12dd0afece1f0e1893a301b94580e1e0a30402
Author: Mounir Lamouri (volkmar) <mounir.lamouri at gmail.com>
Date: Mon Jul 20 23:27:24 2009 +0200
portage: clean remove-packages after portage fixes
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 3da43ef..468d1db 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -1074,6 +1074,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
def remove_packages(self, allowdep, pkgs):
+ # TODO: add a message or an error with allowdep
# can't use allowdep: never removing dep
self.status(STATUS_RUNNING)
@@ -1083,12 +1084,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
cpv_list = []
packages = []
- myopts = {} # TODO: --nodeps ?
- #myopts['--nodeps'] = True
- spinner = ""
- favorites = []
settings, trees, mtimedb = _emerge.actions.load_emerge_config()
- spinner = _emerge.stdout_spinner.stdout_spinner()
root_config = trees[self.portage_settings["ROOT"]]["root_config"]
# create cpv_list
@@ -1123,21 +1119,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend, PackagekitPackage):
del db_keys
# now, we can remove
- if "resume" in mtimedb and \
- "mergelist" in mtimedb["resume"] and \
- len(mtimedb["resume"]["mergelist"]) > 1:
- mtimedb["resume_backup"] = mtimedb["resume"]
- del mtimedb["resume"]
- mtimedb.commit()
-
- mtimedb["resume"] = {}
- mtimedb["resume"]["myopts"] = myopts.copy()
- mtimedb["resume"]["favorites"] = [str(x) for x in favorites]
-
- mergetask = _emerge.Scheduler.Scheduler(settings,
- trees, mtimedb, myopts, spinner,
- packages, favorites, None)
- mergetask.merge()
+ try:
+ self.block_output()
+ mergetask = _emerge.Scheduler.Scheduler(settings,
+ trees, mtimedb, mergelist=packages, myopts={},
+ spinner=None, favorites=[], digraph=None)
+ mergetask.merge()
+ finally:
+ self.unblock_output()
def repo_enable(self, repoid, enable):
# NOTES: use layman API >= 1.2.3
commit 7cf111f2182c4c69bc0306f68560663d8258bdde
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Jul 20 18:12:53 2009 +0100
Fix up some trivial nits in the man pages
diff --git a/client/pkcon.xml b/client/pkcon.xml
index ce31201..49ce721 100644
--- a/client/pkcon.xml
+++ b/client/pkcon.xml
@@ -73,7 +73,7 @@ manpage.1: manpage.xml
<option>0</option>
</term>
<listitem>
- <para>Success, at least one package was installed</para>
+ <para>Success</para>
</listitem>
</varlistentry>
<varlistentry>
diff --git a/client/pkmon.xml b/client/pkmon.xml
index 09ebc55..8e471e7 100644
--- a/client/pkmon.xml
+++ b/client/pkmon.xml
@@ -73,7 +73,7 @@ manpage.1: manpage.xml
<option>0</option>
</term>
<listitem>
- <para>Success, at least one package was installed</para>
+ <para>Success</para>
</listitem>
</varlistentry>
<varlistentry>
More information about the PackageKit-commit
mailing list