[PackageKit-commit] packagekit: Branch 'master' - 12 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Thu Feb 18 06:44:57 PST 2010
backends/conary/conaryBackend.py | 7
backends/conary/pk-backend-conary.c | 51
backends/entropy/TODO | 1
backends/entropy/entropyBackend.py | 2
backends/portage/pk-backend-portage.c | 13
backends/portage/portageBackend.py | 788 ++++++-------
lib/packagekit-glib2/pk-control-sync.c | 52
lib/packagekit-glib2/pk-control-sync.h | 3
lib/packagekit-glib2/pk-control.c | 145 ++
lib/packagekit-glib2/pk-control.h | 7
po/de.po | 269 ++--
po/hu.po | 11
po/id.po | 1983 +++++++++++++++++++++++++++++++++
src/pk-backend-spawn.c | 15
src/pk-backend.c | 10
src/pk-backend.h | 1
src/pk-transaction.c | 3
17 files changed, 2831 insertions(+), 530 deletions(-)
New commits:
commit cd0da3084feaab29210c731f3496f3a843e50458
Author: Vincent Untz <vuntz at gnome.org>
Date: Wed Feb 17 13:44:13 2010 +0100
glib2: add pk_control_suggest_daemon_quit() (and async version)
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index feff991..7fd3dfe 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -144,3 +144,55 @@ pk_control_get_transaction_list (PkControl *control, GCancellable *cancellable,
return transaction_list;
}
+/**
+ * pk_control_suggest_daemon_quit_cb:
+ **/
+static void
+pk_control_suggest_daemon_quit_cb (PkControl *control, GAsyncResult *res, PkControlHelper *helper)
+{
+ /* get the result */
+ helper->ret = pk_control_suggest_daemon_quit_finish (control, res, helper->error);
+ g_main_loop_quit (helper->loop);
+}
+
+/**
+ * pk_control_suggest_daemon_quit:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @error: A #GError or %NULL
+ *
+ * Suggests to the daemon that it should quit as soon as possible.
+ * Warning: this function is synchronous, and may block. Do not use it in GUI
+ * applications.
+ *
+ * Return value: %TRUE if the suggestion was sent
+ *
+ * Since: 0.6.2
+ **/
+gboolean
+pk_control_suggest_daemon_quit (PkControl *control, GCancellable *cancellable, GError **error)
+{
+ gboolean ret;
+ PkControlHelper *helper;
+
+ g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ /* create temp object */
+ helper = g_new0 (PkControlHelper, 1);
+ helper->loop = g_main_loop_new (NULL, FALSE);
+ helper->error = error;
+
+ /* run async method */
+ pk_control_suggest_daemon_quit_async (control, cancellable, (GAsyncReadyCallback) pk_control_suggest_daemon_quit_cb, helper);
+ g_main_loop_run (helper->loop);
+
+ ret = helper->ret;
+
+ /* free temp object */
+ g_main_loop_unref (helper->loop);
+ g_free (helper);
+
+ return ret;
+}
+
diff --git a/lib/packagekit-glib2/pk-control-sync.h b/lib/packagekit-glib2/pk-control-sync.h
index 3b507d3..cb8b677 100644
--- a/lib/packagekit-glib2/pk-control-sync.h
+++ b/lib/packagekit-glib2/pk-control-sync.h
@@ -31,6 +31,9 @@ gboolean pk_control_get_properties (PkControl *control,
gchar **pk_control_get_transaction_list (PkControl *control,
GCancellable *cancellable,
GError **error);
+gboolean pk_control_suggest_daemon_quit (PkControl *control,
+ GCancellable *cancellable,
+ GError **error);
#endif /* __PK_CONTROL_SYNC_H */
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 1d3c288..682d9c7 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -339,6 +339,151 @@ pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error
/***************************************************************************************************/
/**
+ * pk_control_suggest_daemon_quit_state_finish:
+ **/
+static void
+pk_control_suggest_daemon_quit_state_finish (PkControlState *state, const GError *error)
+{
+ /* get result */
+ if (state->ret) {
+ g_simple_async_result_set_op_res_gboolean (state->res, state->ret);
+ } else {
+ g_simple_async_result_set_from_error (state->res, error);
+ }
+
+ /* remove from list */
+ g_ptr_array_remove (state->control->priv->calls, state);
+ if (state->call != NULL)
+ egg_warning ("state array remove %p (%p)", state, state->call);
+ else
+ egg_debug ("state array remove %p", state);
+
+ /* complete */
+ g_simple_async_result_complete_in_idle (state->res);
+
+ /* deallocate */
+ if (state->cancellable != NULL) {
+ g_cancellable_disconnect (state->cancellable, state->cancellable_id);
+ g_object_unref (state->cancellable);
+ }
+ g_object_unref (state->res);
+ g_object_unref (state->control);
+ g_slice_free (PkControlState, state);
+}
+
+/**
+ * pk_control_suggest_daemon_quit_cb:
+ **/
+static void
+pk_control_suggest_daemon_quit_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkControlState *state)
+{
+ GError *error = NULL;
+ gchar *tid = NULL;
+ gboolean ret;
+
+ /* finished this call */
+ state->call = NULL;
+
+ /* get the result */
+ ret = dbus_g_proxy_end_call (proxy, call, &error,
+ G_TYPE_INVALID);
+ if (!ret) {
+ egg_warning ("failed to suggest quit: %s", error->message);
+ pk_control_suggest_daemon_quit_state_finish (state, error);
+ g_error_free (error);
+ goto out;
+ }
+
+ /* save data */
+ state->ret = TRUE;
+
+ /* we're done */
+ pk_control_suggest_daemon_quit_state_finish (state, NULL);
+out:
+ g_free (tid);
+}
+
+/**
+ * pk_control_suggest_daemon_quit_async:
+ * @control: a valid #PkControl instance
+ * @cancellable: a #GCancellable or %NULL
+ * @callback: the function to run on completion
+ * @user_data: the data to pass to @callback
+ *
+ * Suggests to the daemon that it should quit as soon as possible.
+ *
+ * Since: 0.6.2
+ **/
+void
+pk_control_suggest_daemon_quit_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
+{
+ GSimpleAsyncResult *res;
+ PkControlState *state;
+
+ g_return_if_fail (PK_IS_CONTROL (control));
+ g_return_if_fail (callback != NULL);
+
+ res = g_simple_async_result_new (G_OBJECT (control), callback, user_data, pk_control_suggest_daemon_quit_async);
+
+ /* save state */
+ state = g_slice_new0 (PkControlState);
+ state->res = g_object_ref (res);
+ state->control = g_object_ref (control);
+ if (cancellable != NULL) {
+ state->cancellable = g_object_ref (cancellable);
+ state->cancellable_id = g_cancellable_connect (cancellable, G_CALLBACK (pk_control_cancellable_cancel_cb), state, NULL);
+ }
+
+ /* call D-Bus method async */
+ state->call = dbus_g_proxy_begin_call (control->priv->proxy, "SuggestDaemonQuit",
+ (DBusGProxyCallNotify) pk_control_suggest_daemon_quit_cb, state,
+ NULL, G_TYPE_INVALID);
+ if (state->call == NULL)
+ egg_error ("failed to setup call, maybe OOM or no connection");
+
+ /* track state */
+ g_ptr_array_add (control->priv->calls, state);
+ egg_debug ("state array add %p (%p)", state, state->call);
+
+ g_object_unref (res);
+}
+
+/**
+ * pk_control_suggest_daemon_quit_finish:
+ * @control: a valid #PkControl instance
+ * @res: the #GAsyncResult
+ * @error: A #GError or %NULL
+ *
+ * Gets the result from the asynchronous function.
+ *
+ * Return value: %TRUE if the suggestion was sent
+ *
+ * Since: 0.6.2
+ **/
+gboolean
+pk_control_suggest_daemon_quit_finish (PkControl *control, GAsyncResult *res, GError **error)
+{
+ GSimpleAsyncResult *simple;
+ gpointer source_tag;
+
+ g_return_val_if_fail (PK_IS_CONTROL (control), FALSE);
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ simple = G_SIMPLE_ASYNC_RESULT (res);
+ source_tag = g_simple_async_result_get_source_tag (simple);
+
+ g_return_val_if_fail (source_tag == pk_control_suggest_daemon_quit_async, FALSE);
+
+ if (g_simple_async_result_propagate_error (simple, error))
+ return FALSE;
+
+ return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+/***************************************************************************************************/
+
+/**
* pk_control_get_daemon_state_state_finish:
**/
static void
diff --git a/lib/packagekit-glib2/pk-control.h b/lib/packagekit-glib2/pk-control.h
index 562477d..d3d14d1 100644
--- a/lib/packagekit-glib2/pk-control.h
+++ b/lib/packagekit-glib2/pk-control.h
@@ -99,6 +99,13 @@ void pk_control_get_tid_async (PkControl *control,
gchar *pk_control_get_tid_finish (PkControl *control,
GAsyncResult *res,
GError **error);
+void pk_control_suggest_daemon_quit_async (PkControl *control,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean pk_control_suggest_daemon_quit_finish (PkControl *control,
+ GAsyncResult *res,
+ GError **error);
void pk_control_get_daemon_state_async (PkControl *control,
GCancellable *cancellable,
GAsyncReadyCallback callback,
commit bf0b83a083ef3c00ee150ca38d857ec9db1b6edb
Author: kenda <kenda at fedoraproject.org>
Date: Wed Feb 17 10:29:34 2010 +0000
Sending translation for German
diff --git a/po/de.po b/po/de.po
index 3453dea..e2ddc0a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,6 @@
# # 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.
@@ -16,21 +15,22 @@
# Stefan Posdzich <cheekyboinc at foresightlinux.org>, 2008.
# Fabian Affolter <fab at fedoraproject.org>, 2009.
# Christian Kirbach <Christian.Kirbach at googlemail.com>, 2009.
-# Marcus Nitzschke <kenda at fedoraproject.org>, 2009.
+# Marcus Nitzschke <kenda at fedoraproject.org>, 2009, 2010.
# Hedda Peters <hpeters at redhat.com>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: packagekit.master.de\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-08 02:28+0000\n"
-"PO-Revision-Date: 2009-12-09 10:06+1000\n"
-"Last-Translator: Hedda Peters <hpeters at redhat.com>\n"
-"Language-Team: \n"
+"POT-Creation-Date: 2010-02-17 09:10+0000\n"
+"PO-Revision-Date: 2010-02-17 11:27+0200\n"
+"Last-Translator: Marcus Nitzschke <kenda at fedoraproject.org>\n"
+"Language-Team: German <trans-de at lists.fedoraproject.org>\n"
+"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Virtaal 0.5.1\n"
#. TRANSLATORS: this is an atomic transaction
#. TRANSLATORS: the role is the point of the transaction, e.g. update-system
@@ -245,7 +245,8 @@ 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:469
msgid "Session restart (security) required:"
-msgstr "Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
+msgstr ""
+"Ein Neustart der Sitzung (zur Verbesserung der Sicherheit) ist erforderlich:"
#. TRANSLATORS: a package requires the application to be restarted
#: ../client/pk-console.c:472
@@ -283,39 +284,40 @@ msgid "Status"
msgstr "Status"
#. TRANSLATORS: the results from the transaction
-#: ../client/pk-console.c:678
+#: ../client/pk-console.c:679
msgid "Results:"
msgstr "Ergebnisse:"
#. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
-#: ../client/pk-console.c:685
+#: ../client/pk-console.c:686
msgid "Fatal error"
msgstr "Schwerwiegender Fehler"
#. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../client/pk-console.c:694
+#: ../client/pk-console.c:695
#: ../contrib/command-not-found/pk-command-not-found.c:432
#: ../contrib/command-not-found/pk-command-not-found.c:603
msgid "The transaction failed"
msgstr "Die Transaktion scheiterte"
#. TRANSLATORS: print a message when there are no updates
-#: ../client/pk-console.c:721
+#: ../client/pk-console.c:726
msgid "There are no updates available at this time."
msgstr "Derzeit sind keine Aktualisierungen verfügbar."
#. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:808
+#: ../client/pk-console.c:814
msgid "Please restart the computer to complete the update."
-msgstr "Bitte starten Sie den Computer neu, um die Aktualisierung abzuschliessen."
+msgstr ""
+"Bitte starten Sie den Computer neu, um die Aktualisierung abzuschliessen."
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:811
+#: ../client/pk-console.c:817
msgid "Please logout and login to complete the update."
msgstr "Bitte erneut anmelden, um die Aktualisierung abzuschliessen."
#. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:814
+#: ../client/pk-console.c:820
msgid ""
"Please restart the computer to complete the update as important security "
"updates have been installed."
@@ -324,7 +326,7 @@ msgstr ""
"denn es sind wichtige Sicherheitsaktualisierungen installiert worden."
#. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:817
+#: ../client/pk-console.c:823
msgid ""
"Please logout and login to complete the update as important security updates "
"have been installed."
@@ -332,20 +334,30 @@ msgstr ""
"Bitte erneut anmelden, um die Aktualisierung abzuschliessen, denn es sind "
"wichtige Sicherheitsaktualisierungen installiert worden."
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
+#: ../client/pk-console.c:849
+#, c-format
+msgid ""
+"Extected package name, actually got file. Try using 'pkcon install-local %s' "
+"instead."
+msgstr ""
+"Paketname erwartet, aber Dateinamen erhalten. Versuchen Sie stattdessen "
+"'pkcon install-local %s'"
+
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:840
+#: ../client/pk-console.c:857
#, c-format
msgid "This tool could not find any available package: %s"
msgstr "Dieses Tool konnte keine verfügbaren Pakete finden: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:885
#, c-format
msgid "This tool could not find the installed package: %s"
msgstr "Dieses Tool konnte das installierte Paket nicht finden: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:896 ../client/pk-console.c:924
+#: ../client/pk-console.c:913 ../client/pk-console.c:941
#, c-format
msgid "This tool could not find the package: %s"
msgstr "Dieses Tool konnte das Paket nicht finden: %s"
@@ -354,229 +366,238 @@ msgstr "Dieses Tool konnte das Paket nicht finden: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:952 ../client/pk-console.c:980
-#: ../client/pk-console.c:1008 ../client/pk-console.c:1036
-#: ../client/pk-console.c:1064
+#: ../client/pk-console.c:969 ../client/pk-console.c:997
+#: ../client/pk-console.c:1025 ../client/pk-console.c:1053
+#: ../client/pk-console.c:1081
#, c-format
msgid "This tool could not find all the packages: %s"
msgstr "Dieses Tool konnte nicht alle Pakete finden: %s"
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1110
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:1127
+#: ../client/pk-console.c:1144
msgid "PackageKit Console Interface"
msgstr "Schnittstelle zur PackageKit-Konsole"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1129
+#: ../client/pk-console.c:1146
msgid "Subcommands:"
msgstr "Unterbefehle:"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:1208
+#: ../client/pk-console.c:1225
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: command line argument, just show the version string
-#: ../client/pk-console.c:1244 ../client/pk-monitor.c:280
+#: ../client/pk-console.c:1261 ../client/pk-monitor.c:306
msgid "Show the program version and exit"
msgstr "Programm-Version anzeigen und beenden"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1247
+#: ../client/pk-console.c:1264
msgid "Set the filter, e.g. installed"
msgstr "Den Filter setzen, z.B. »installiert«"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:1267
msgid "Exit without waiting for actions to complete"
msgstr "Beenden, ohne auf Beendigung der Aktionen zu warten"
#. command line argument, do we ask questions
-#: ../client/pk-console.c:1253
+#: ../client/pk-console.c:1270
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
msgid "Install the packages without asking for confirmation"
msgstr "Die Pakete ohne erneute Nachfrage installieren"
#. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1256
+#: ../client/pk-console.c:1273
msgid "Run the command using idle network bandwidth and also using less power"
-msgstr "Befehl ausführen unter Verwendung ungenutzer Netzwerkbandbreite und wenig Energie"
+msgstr ""
+"Befehl ausführen unter Verwendung ungenutzer Netzwerkbandbreite und wenig "
+"Energie"
#. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1259
-msgid "Print to screen a machine readable output, rather than using animated widgets"
-msgstr "Auf dem Bildschirm computerlesbare Ausgabe ausgeben, anstatt animierte Widgets zu verwenden"
+#: ../client/pk-console.c:1276
+msgid ""
+"Print to screen a machine readable output, rather than using animated widgets"
+msgstr ""
+"Auf dem Bildschirm computerlesbare Ausgabe ausgeben, anstatt animierte "
+"Widgets zu verwenden"
#. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1298
msgid "Failed to contact PackageKit"
msgstr "PackageKit konnte nicht kontaktiert werden"
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1339
+#: ../client/pk-console.c:1356
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:1358
+#: ../client/pk-console.c:1375
msgid "A search type is required, e.g. name"
msgstr "Eine Suchart ist nötig, z.B. »Name«"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1365 ../client/pk-console.c:1377
-#: ../client/pk-console.c:1389 ../client/pk-console.c:1401
+#: ../client/pk-console.c:1382 ../client/pk-console.c:1394
+#: ../client/pk-console.c:1406 ../client/pk-console.c:1418
msgid "A search term is required"
msgstr "Ein Suchbegriff ist erforderlich"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1411
+#: ../client/pk-console.c:1428
msgid "Invalid search type"
msgstr "Ungültige Suchart"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1434
msgid "A package name to install is required"
msgstr "Ein zu installierender Paketname ist erforderlich"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1443
msgid "A filename to install is required"
msgstr "Ein zu installierender Dateiname ist erforderlich"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1438
+#: ../client/pk-console.c:1455
msgid "A type, key_id and package_id are required"
msgstr "Ein Typ, Schlüsselkennung und Paketkennung sind erforderlich"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1449
+#: ../client/pk-console.c:1466
msgid "A package name to remove is required"
msgstr "Zum Entfernen ist ein Paketname erforderlich"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1475
msgid "A destination directory and the package names to download are required"
-msgstr "Ein Zielverzeichnis und die Namen der Pakete zum Herunterladen sind erforderlich"
+msgstr ""
+"Ein Zielverzeichnis und die Namen der Pakete zum Herunterladen sind "
+"erforderlich"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1465
+#: ../client/pk-console.c:1482
msgid "Directory not found"
msgstr "Verzeichnis nicht gefunden"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1491
msgid "A licence identifier (eula-id) is required"
msgstr "Eine Lizenzbezeichnung (eula-id) ist erforderlich"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1502
msgid "A transaction identifier (tid) is required"
msgstr "Eine Transaktionsbezeichnung (tid) ist erforderlich"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1506
+#: ../client/pk-console.c:1523
msgid "A package name to resolve is required"
msgstr "Ein Paketname ist zur Auflösung erforderlich"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1517 ../client/pk-console.c:1528
+#: ../client/pk-console.c:1534 ../client/pk-console.c:1545
msgid "A repository name is required"
msgstr "Ein Depotname wird benötigt"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1556
msgid "A repo name, parameter and value are required"
msgstr "Ein Depotname, Parameter und Wert sind erforderlich"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1556
+#: ../client/pk-console.c:1573
msgid "An action, e.g. 'update-system' is required"
msgstr "Ein Vorgang, z.B. »update-system«, wird benötigt"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1580
msgid "A correct role is required"
msgstr "Eine korrekte Rolle wird benötigt"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:1573 ../client/pk-console.c:1588
-#: ../client/pk-console.c:1597 ../client/pk-console.c:1617
-#: ../client/pk-console.c:1626 ../client/pk-generate-pack.c:298
+#: ../client/pk-console.c:1590 ../client/pk-console.c:1605
+#: ../client/pk-console.c:1614 ../client/pk-console.c:1634
+#: ../client/pk-console.c:1643 ../client/pk-generate-pack.c:316
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:1606
+#: ../client/pk-console.c:1623
msgid "A package provide string is required"
msgstr "Die Zeichenkette »Stellt bereit« wird benötigt"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1703
#, c-format
msgid "Option '%s' is not supported"
msgstr "Option »%s« wird nicht unterstützt"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1696
+#: ../client/pk-console.c:1713
msgid "Command failed"
msgstr "Ausführung des Befehls fehlgeschlagen"
#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:237
+#: ../client/pk-generate-pack.c:255
msgid "Set the file name of dependencies to be excluded"
msgstr "Den Dateinamen der Abhängigkeiten festlegen, die ausgeschlossen werden"
#. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:240
-msgid "The output file or directory (the current directory is used if ommitted)"
+#: ../client/pk-generate-pack.c:258
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
msgstr ""
"Die Ausgabedatei oder das Ausgabeverzeichnis (falls leer, wird das aktuelle "
"Verzeichnis verwendet)"
#. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-generate-pack.c:261
msgid "The package to be put into the service pack"
msgstr "Das Paket zum Hinzufügen in das Service-Pack"
#. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:246
+#: ../client/pk-generate-pack.c:264
msgid "Put all updates available in the service pack"
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:282
+#: ../client/pk-generate-pack.c:300
msgid "Neither --package or --updates option selected."
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:290
+#: ../client/pk-generate-pack.c:308
msgid "Both options selected."
msgstr "Beide Optionen ausgewählt."
#. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:306
+#: ../client/pk-generate-pack.c:324
msgid "A output directory or file name is required"
msgstr "Ein Ausgabeverzeichnis oder Dateiname ist erforderlich"
#. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
-#: ../client/pk-generate-pack.c:324
+#: ../client/pk-generate-pack.c:342
msgid "The dameon failed to startup"
msgstr "Der Daemon konnte nicht starten"
#. 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:335 ../client/pk-generate-pack.c:341
+#: ../client/pk-generate-pack.c:353 ../client/pk-generate-pack.c:359
msgid "The package manager cannot perform this type of operation."
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:348
+#: ../client/pk-generate-pack.c:366
msgid ""
"Service packs cannot be created as PackageKit was not built with libarchive "
"support."
@@ -585,66 +606,67 @@ msgstr ""
"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:359
+#: ../client/pk-generate-pack.c:377
msgid "If specifying a file, the service pack name must end with"
-msgstr "Wenn Sie eine Datei angeben, dann muss der Name des Service-Packs 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:375
+#: ../client/pk-generate-pack.c:393
msgid "A pack with the same name already exists, do you want to overwrite it?"
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:378
+#: ../client/pk-generate-pack.c:396
msgid "The pack was not overwritten."
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:391
+#: ../client/pk-generate-pack.c:409
msgid "Failed to create directory:"
msgstr "Verzeichnis konnte nicht erstellt werden:"
#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:403
+#: ../client/pk-generate-pack.c:421
msgid "Failed to open package list."
msgstr "Paketliste konnte nicht geöffnet werden."
#. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:412
+#: ../client/pk-generate-pack.c:430
msgid "Finding package name."
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:416
+#: ../client/pk-generate-pack.c:434
#, c-format
msgid "Failed to find package '%s': %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:424
+#: ../client/pk-generate-pack.c:442
msgid "Creating service pack..."
msgstr "Service-Pack wird erstellt â¦"
#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:439
+#: ../client/pk-generate-pack.c:457
#, c-format
msgid "Service pack created '%s'"
msgstr "Service-Pack »%s« wurde erstellt"
#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:444
+#: ../client/pk-generate-pack.c:462
#, c-format
msgid "Failed to create '%s': %s"
msgstr "Erzeugen von »%s« ist fehlgeschlagen: %s"
-#: ../client/pk-monitor.c:210
+#: ../client/pk-monitor.c:236
msgid "Failed to get daemon state"
msgstr "Daemon-Status konnte nicht abgerufen werden"
#. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:296
+#: ../client/pk-monitor.c:322
msgid "PackageKit Monitor"
msgstr "PackageKit-Monitor"
@@ -770,29 +792,30 @@ msgid "Please choose a command to run"
msgstr "Bitte wählen Sie einen Befehl zum Ausführen"
#. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:766
+#: ../contrib/command-not-found/pk-command-not-found.c:764
msgid "The package providing this file is:"
msgstr "Das folgende Paket stellt diese Datei bereit:"
#. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:771
+#: ../contrib/command-not-found/pk-command-not-found.c:769
#, c-format
msgid "Install package '%s' to provide command '%s'?"
-msgstr "Soll das Paket »%s« installiert werden, welches den Befehl »%s« bereitstellt?"
+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:795
+#: ../contrib/command-not-found/pk-command-not-found.c:793
msgid "Packages providing this file are:"
msgstr "Pakete, die diese Datei bereitstellen, sind:"
#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:805
+#: ../contrib/command-not-found/pk-command-not-found.c:803
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:814
+#: ../contrib/command-not-found/pk-command-not-found.c:812
msgid "Please choose a package to install"
msgstr "Bitte wählen Sie ein Paket zum Installieren"
@@ -811,7 +834,8 @@ msgstr ""
#. command line argument, simulate what would be done, but don't actually do it
#: ../contrib/debuginfo-install/pk-debuginfo-install.c:518
-msgid "Don't actually install any packages, only simulate what would be installed"
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
msgstr ""
"Keine Pakete tatsächlich installieren, sondern nur die Installation "
"simulieren"
@@ -994,92 +1018,93 @@ msgid "Disabled %i debugging sources."
msgstr "%i Fehlerdiagnose-Quellen wurden deaktiviert."
#. TRANSLATORS: couldn't open device to write
-#: ../contrib/device-rebind/pk-device-rebind.c:61
+#: ../contrib/device-rebind/pk-device-rebind.c:62
msgid "Failed to open file"
msgstr "Das Ãffnen der Datei ist fehlgeschlagen"
#. TRANSLATORS: could not write to the device
-#: ../contrib/device-rebind/pk-device-rebind.c:70
+#: ../contrib/device-rebind/pk-device-rebind.c:71
msgid "Failed to write to the file"
msgstr "Das Schreiben in die Datei ist fehlgeschlagen"
#. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:110
-#: ../contrib/device-rebind/pk-device-rebind.c:147
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
msgid "Failed to write to device"
msgstr "Das Schreiben auf dem Gerät ist fehlgeschlagen"
#. TRANSLATORS: the device could not be found in sysfs
-#: ../contrib/device-rebind/pk-device-rebind.c:175
+#: ../contrib/device-rebind/pk-device-rebind.c:176
msgid "Device could not be found"
msgstr "Das Gerät konnte nicht gefunden werden"
#. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:202
+#: ../contrib/device-rebind/pk-device-rebind.c:203
msgid "Failed to unregister driver"
msgstr "Treiber konnte nicht abgemeldet werden"
#. TRANSLATORS: we failed to bind the old driver
-#: ../contrib/device-rebind/pk-device-rebind.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:212
msgid "Failed to register driver"
msgstr "Treiber konnte nicht registriert werden"
#. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:260
+#: ../contrib/device-rebind/pk-device-rebind.c:261
msgid "Device path not found"
msgstr "Gerätepfad nicht gefunden"
#. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:268
+#: ../contrib/device-rebind/pk-device-rebind.c:269
msgid "Incorrect device path specified"
msgstr "Falschen Gerätepfad angegeben"
-#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../contrib/device-rebind/pk-device-rebind.c:294
msgid "Show extra debugging information"
msgstr "Erweiterte Fehlerdiagnose-Informationen anzeigen"
#. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/device-rebind/pk-device-rebind.c:296
+#: ../contrib/device-rebind/pk-device-rebind.c:297
msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr "Keine Hardware tatsächlich anrühren, sondern nur simulieren, was gemacht wird"
+msgstr ""
+"Keine Hardware tatsächlich anrühren, sondern nur simulieren, was gemacht wird"
#. TRANSLATORS: command line option: a list of files to install
-#: ../contrib/device-rebind/pk-device-rebind.c:299
+#: ../contrib/device-rebind/pk-device-rebind.c:300
msgid "Device paths"
msgstr "Gerätepfade"
#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
-#: ../contrib/device-rebind/pk-device-rebind.c:314
+#: ../contrib/device-rebind/pk-device-rebind.c:315
msgid "PackageKit Device Reloader"
msgstr "PackageKit Geräte-Aktualisierer"
#. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:322
+#: ../contrib/device-rebind/pk-device-rebind.c:323
msgid "You need to specify at least one valid device path"
msgstr "Sie müssen mindestens einen korrekten Gerätepfad angeben"
#. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:332
+#: ../contrib/device-rebind/pk-device-rebind.c:333
msgid "This script can only be used by the root user"
msgstr "Dieses Skript kann nur von dem Root-Benutzer verwendet werden."
#. TRANSLATORS: we're going to verify the path first
-#: ../contrib/device-rebind/pk-device-rebind.c:341
+#: ../contrib/device-rebind/pk-device-rebind.c:342
msgid "Verifying device path"
msgstr "Gerätepfad wird geprüft"
#. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:346
+#: ../contrib/device-rebind/pk-device-rebind.c:347
msgid "Failed to verify device path"
msgstr "Ãberprüfung des Gerätepfades ist fehlgeschlagen"
#. TRANSLATORS: we're going to try
-#: ../contrib/device-rebind/pk-device-rebind.c:360
+#: ../contrib/device-rebind/pk-device-rebind.c:361
msgid "Attempting to rebind device"
msgstr "Neu Einbinden des Gerätes wird versucht"
#. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:365
+#: ../contrib/device-rebind/pk-device-rebind.c:366
msgid "Failed to rebind device"
msgstr "Neu Einbinden des Gerätes ist fehlgeschlagen"
@@ -1711,7 +1736,8 @@ msgid "Authentication is required to accept a EULA"
msgstr "Legitimation ist zum Annehmen der EULA erforderlich"
#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to cancel a task that was not started by yourself"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
msgstr ""
"Legitimation ist zum Abbrechen einer Aufgabe erforderlich, die nicht von "
"Ihnen initiiert wurde"
@@ -1726,11 +1752,13 @@ msgstr ""
msgid ""
"Authentication is required to consider a key used for signing packages as "
"trusted"
-msgstr "Legitimation ist zum Vertrauen eines Paketsignaturschlüssels erforderlich"
+msgstr ""
+"Legitimation ist zum Vertrauen eines Paketsignaturschlüssels erforderlich"
#: ../policy/org.freedesktop.packagekit.policy.in.h:12
msgid "Authentication is required to install a signed package"
-msgstr "Legitimation ist zum Installieren eines signierten Paketes erforderlich"
+msgstr ""
+"Legitimation ist zum Installieren eines signierten Paketes erforderlich"
#: ../policy/org.freedesktop.packagekit.policy.in.h:13
msgid "Authentication is required to install an untrusted package"
@@ -1744,7 +1772,8 @@ msgstr "Legitimation ist zum Aktualisieren der Systemressourcen erforderlich"
#: ../policy/org.freedesktop.packagekit.policy.in.h:15
msgid "Authentication is required to reload the device with a new driver"
-msgstr "Legitimation ist erforderlich, um das Gerät mit einem neuen Treiber zu laden"
+msgstr ""
+"Legitimation ist erforderlich, um das Gerät mit einem neuen Treiber zu laden"
#: ../policy/org.freedesktop.packagekit.policy.in.h:16
msgid "Authentication is required to remove packages"
@@ -1887,7 +1916,8 @@ 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
@@ -2009,4 +2039,3 @@ msgstr "Optionen der Fehlerdiagnose"
#: ../src/egg-debug.c:469
msgid "Show debugging options"
msgstr "Fehlerdiagnose-Optionen anzeigen"
-
commit 83cbbfff483f12bfeaa488d4fff045a15f3f24f4
Author: zodman <zodman at gnome.juglas.name>
Date: Mon Feb 15 22:38:08 2010 +0100
trivial: getting conary backed works again
diff --git a/backends/conary/conaryBackend.py b/backends/conary/conaryBackend.py
index 9bf022d..a43166b 100755
--- a/backends/conary/conaryBackend.py
+++ b/backends/conary/conaryBackend.py
@@ -373,24 +373,27 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
if pkg_dict is None:
return None
log.info("doing a resolve")
-
filter = ConaryFilter(filters)
trove = None
trove_installed = self.conary.query( pkg_dict.get("name") )
+ log.info("end of conary query")
if trove_installed:
pkg = self._convert_package( trove_installed[0], pkg_dict )
log.info( pkg)
filter.add_installed( [ pkg ] )
-
+ log.info("filter installed end.. doing a rq")
trove_available = self.conary.request_query( pkg_dict.get("name") )
+ log.info("end of conary rquery")
if trove_available:
pkg = self._convert_package( trove_available[0], pkg_dict )
filter.add_available( [ pkg ] )
+ log.info("filter available end")
package_list = filter.post_process()
log.info("package_list %s" % package_list)
self._show_package_list(package_list)
+ log.info("end resolve ...................")
def _show_package_list(self, lst):
"""
diff --git a/backends/conary/pk-backend-conary.c b/backends/conary/pk-backend-conary.c
index c97dbc1..c6f945c 100644
--- a/backends/conary/pk-backend-conary.c
+++ b/backends/conary/pk-backend-conary.c
@@ -50,6 +50,7 @@ backend_destroy (PkBackend *backend)
/**
* backend_get_groups:
+*/
static PkBitfield
backend_get_groups (PkBackend *backend)
{
@@ -68,7 +69,7 @@ backend_get_groups (PkBackend *backend)
-1);
}
- */
+
/**
* backend_get_filters:
*/
@@ -170,8 +171,7 @@ backend_install_files (PkBackend *backend, gboolean only_trusted, const gchar *f
pk_backend_spawn_helper (spawn, "conaryBackend.py", "install-files", pk_backend_bool_to_string (only_trusted), full_paths, NULL);
g_free (package_ids_temp);
}
- */
-
+*/
/**
* backend_refresh_cache:
*/
@@ -212,38 +212,49 @@ backend_remove_packages (PkBackend *backend, gchar **package_ids, gboolean allow
* pk_backend_search_name:
*/
static void
-backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search)
+backend_search_name (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
+ gchar *search;
filters_text = pk_filter_bitfield_to_string (filters);
+ search = g_strjoinv ("&",values);
pk_backend_spawn_helper (spawn, "conaryBackend.py", "search-name", filters_text, search, NULL);
g_free (filters_text);
+ g_free (search);
}
/**
pk_backend_search_groups
+*/
static void
-backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search)
+backend_search_group (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
+ gchar *search;
filters_text = pk_filter_bitfield_to_string (filters);
+ search = g_strjoinv ("&",values);
+
pk_backend_spawn_helper (spawn, "conaryBackend.py", "search-group", filters_text, search, NULL);
g_free (filters_text);
+ g_free (search);
}
-*/
+
/**
pk_backend_search_details
*/
static void
-backend_search_details (PkBackend *backend, PkBitfield filters, const gchar *search)
+backend_search_details (PkBackend *backend, PkBitfield filters, gchar **values)
{
gchar *filters_text;
+ gchar *search;
filters_text = pk_filter_bitfield_to_string (filters);
+ search = g_strjoinv ("&",values);
pk_backend_spawn_helper (spawn, "conaryBackend.py", "search-details", filters_text, search, NULL);
g_free (filters_text);
+ g_free (search);
}
/**
@@ -318,10 +329,14 @@ backend_get_packages (PkBackend *backend, PkBitfield filters)
* pk_backend_search_file:
*/
static void
-backend_search_file (PkBackend *backend, PkBitfield filters, const gchar *search)
+backend_search_file (PkBackend *backend, PkBitfield filters, gchar **values)
{
- gchar *filters_text;
- filters_text = pk_filter_bitfield_to_string (filters);
+ gchar *filters_text;
+ gchar *search;
+ filters_text = pk_filter_bitfield_to_string (filters);
+ search = g_strjoinv ("&",values);
+
+
pk_backend_spawn_helper (spawn, "conaryBackend.py", "search-file", filters_text, search, NULL);
g_free (filters_text);
}
@@ -340,8 +355,7 @@ backend_get_distro_upgrades (PkBackend *backend)
/**
* pk_backend_get_repo_list:
*/
-static void
-backend_get_repo_list (PkBackend *backend, PkBitfield filters)
+static void backend_get_repo_list (PkBackend *backend, PkBitfield filters)
{
gchar *filters_text;
filters_text = pk_filter_bitfield_to_string (filters);
@@ -352,11 +366,10 @@ backend_get_repo_list (PkBackend *backend, PkBitfield filters)
PK_BACKEND_OPTIONS (
"Conary with XMLCache", /* description */
- "Andres Vargas <zodman at foresightlinux.org>",
- /* author */
+ "Andres Vargas <zodman at foresightlinux.org>", /* author */
backend_initialize, /* initalize */
backend_destroy, /* destroy */
- NULL,//backend_get_groups, /* get_groups */
+ backend_get_groups, /* get_groups */
backend_get_filters, /* get_filters */
NULL, /* get_roles */
NULL, /* get_mime_types */
@@ -370,8 +383,8 @@ PK_BACKEND_OPTIONS (
backend_get_packages, /* get_packages */
backend_get_repo_list, /* get_repo_list */
NULL, /* get_requires */
- backend_get_update_detail, /* get_update_detail */
- backend_get_updates, /* get_updates */
+ NULL,// backend_get_update_detail, /* get_update_detail */
+ NULL,// backend_get_updates, /* get_updates */
NULL, /* install_files */
backend_install_packages, /* install_packages */
NULL, /* install_signature */
@@ -383,7 +396,7 @@ PK_BACKEND_OPTIONS (
NULL, /* rollback */
backend_search_details, /* search_details */
backend_search_file, /* search_file */
- NULL, //backend_search_group, /* search_group */
+ backend_search_group, /* search_group */
backend_search_name, /* search_name */
backend_update_packages, /* update_packages */
backend_update_system, /* update_system */
@@ -391,6 +404,6 @@ PK_BACKEND_OPTIONS (
NULL, /* simulate_install_files */
NULL, /* simulate_install_packages */
NULL, /* simulate_remove_packages */
- NULL /* simulate_update_packages */
+ NULL /* simulate_update_packages */
);
commit 80cb2da24313799e3ae5679f533ecafcfa107076
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Feb 15 18:48:21 2010 +0000
Do not set the transaction id for all backends, it's a bad performance penalty
diff --git a/src/pk-backend-spawn.c b/src/pk-backend-spawn.c
index 19af668..2e00c5b 100644
--- a/src/pk-backend-spawn.c
+++ b/src/pk-backend-spawn.c
@@ -621,12 +621,15 @@ pk_backend_spawn_get_envp (PkBackendSpawn *backend_spawn)
array = g_ptr_array_new_with_free_func (g_free);
- /* transaction_id */
- g_object_get (priv->backend,
- "transaction-id", &transaction_id,
- NULL);
- line = g_strdup_printf ("%s=%s", "transaction_id", transaction_id);
- g_ptr_array_add (array, line);
+ /* don't do this for all backends as it's a performance penalty */
+ if (FALSE) {
+ /* transaction_id */
+ g_object_get (priv->backend,
+ "transaction-id", &transaction_id,
+ NULL);
+ line = g_strdup_printf ("%s=%s", "transaction_id", transaction_id);
+ g_ptr_array_add (array, line);
+ }
/* accepted eulas */
eulas = pk_backend_get_accepted_eula_string (priv->backend);
commit 5ca1a5b5c39a6eead8d3436e04bfc80f5733c7f2
Author: snicore <snicore at fedoraproject.org>
Date: Fri Feb 12 17:52:40 2010 +0000
Sending translation for Hungarian
diff --git a/po/hu.po b/po/hu.po
index 72459e5..206cfdb 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: packagekit master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-02-08 15:53+0000\n"
-"PO-Revision-Date: 2010-02-08 21:03+0100\n"
+"PO-Revision-Date: 2010-02-12 17:17+0100\n"
"Last-Translator: Nikolas Slivka <snicore at gmail.com>\n"
-"Language-Team: Hungarian <gnome at fsf dot hu>\n"
+"Language-Team: Hungarian <fedora-trans-hu at redhat.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -407,7 +407,7 @@ msgstr "Parancsot használva kihasználatlan hálózati sávszélességet és ke
#. TRANSLATORS: command line argument, just output without fancy formatting
#: ../client/pk-console.c:1276
msgid "Print to screen a machine readable output, rather than using animated widgets"
-msgstr ""
+msgstr "Gép által ovasható kimenetre Ãrás, mint hogy az animált widgetek használata"
#. TRANSLATORS: we failed to contact the daemon
#: ../client/pk-console.c:1298
@@ -1964,12 +1964,12 @@ msgstr "Hibakeresési információk megjelenÃtése az összes fájlhoz"
#. TRANSLATORS: a list of modules to debug
#: ../src/egg-debug.c:459
msgid "Debug these specific modules"
-msgstr ""
+msgstr "Ezek a specifikus modulok hibakeresése"
#. TRANSLATORS: a list of functions to debug
#: ../src/egg-debug.c:462
msgid "Debug these specific functions"
-msgstr ""
+msgstr "Ezek a specifikus funkciók hibakeresése"
#. TRANSLATORS: save to a log
#: ../src/egg-debug.c:465
@@ -1986,4 +1986,3 @@ msgstr "Hibakeresési lehetÅségek megjelenÃtése"
#~ msgid "Malicious software can damage your computer or cause other harm."
#~ msgstr "Rosszindulatú szoftver problémát vagy meghibásodást okozhat."
-
commit bf29de7a373588330a67788d63e46a56fd1624d4
Author: dichi <dichi at fedoraproject.org>
Date: Fri Feb 12 03:13:33 2010 +0000
Sending translation for po/id.po
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 0000000..7420bf8
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,1983 @@
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Dichi Al Faridi <dichi at alfaridi.info>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: \n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-10 20:56+0000\n"
+"PO-Revision-Date: 2010-02-12 09:54+0700\n"
+"Last-Translator: Dichi Al Faridi <dichi at alfaridi.info>\n"
+"Language-Team: American English <>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Lokalize 1.0\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#. TRANSLATORS: the role is the point of the transaction, e.g. update-system
+#: ../client/pk-console.c:175 ../client/pk-console.c:597
+msgid "Transaction"
+msgstr "Transaksi"
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:177
+msgid "System time"
+msgstr "Waktu sistem"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:179
+msgid "Succeeded"
+msgstr "Berhasil"
+
+#: ../client/pk-console.c:179
+msgid "True"
+msgstr "Benar"
+
+#: ../client/pk-console.c:179
+msgid "False"
+msgstr "Salah"
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#. TRANSLATORS: the trasaction role, e.g. update-system
+#: ../client/pk-console.c:181 ../src/pk-polkit-action-lookup.c:332
+msgid "Role"
+msgstr "Peran"
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:186
+msgid "Duration"
+msgstr "Durasi"
+
+#: ../client/pk-console.c:186
+msgid "(seconds)"
+msgstr "(detik)"
+
+#. 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:190 ../src/pk-polkit-action-lookup.c:346
+msgid "Command line"
+msgstr "Command line"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:192
+msgid "User ID"
+msgstr "User ID"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:199
+msgid "Username"
+msgstr "Username"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:203
+msgid "Real name"
+msgstr "Nama Sebenarnya"
+
+#: ../client/pk-console.c:211
+msgid "Affected packages:"
+msgstr "Paket yang berkaitan:"
+
+#: ../client/pk-console.c:213
+msgid "Affected packages: None"
+msgstr "Terpengaruh paket: Tidak ada"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:248
+msgid "Distribution"
+msgstr "Distribusi"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:250
+msgid "Type"
+msgstr "Tipe"
+
+#. TRANSLATORS: this is any summary text describing the upgrade
+#. TRANSLATORS: this is the summary of the group
+#: ../client/pk-console.c:252 ../client/pk-console.c:291
+msgid "Summary"
+msgstr "Ringkasan"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:280
+msgid "Category"
+msgstr "Kategori"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:282
+msgid "ID"
+msgstr "ID"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:285
+msgid "Parent"
+msgstr "Induk"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:288
+msgid "Name"
+msgstr "Nama"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:294
+msgid "Icon"
+msgstr "Ikon"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:340
+msgid "Details about the update:"
+msgstr "Rincian tentang update:"
+
+#. TRANSLATORS: details about the update, package name and version
+#. TRANSLATORS: the package that is being processed
+#. TRANSLATORS: the package that is not signed by a known key
+#. TRANSLATORS: the package name that was trying to be installed
+#. TRANSLATORS: title, the names of the packages that the method is processing
+#: ../client/pk-console.c:346 ../client/pk-console.c:616
+#: ../lib/packagekit-glib2/pk-task-text.c:126
+#: ../lib/packagekit-glib2/pk-task-text.c:208
+#: ../src/pk-polkit-action-lookup.c:357
+msgid "Package"
+msgid_plural "Packages"
+msgstr[0] "Paket"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:349
+msgid "Updates"
+msgstr "Update"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:353
+msgid "Obsoletes"
+msgstr "Non-aktif"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
+#: ../client/pk-console.c:357 ../lib/packagekit-glib2/pk-task-text.c:211
+msgid "Vendor"
+msgstr "Vendor"
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:361
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:365
+msgid "CVE"
+msgstr "CVE"
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:369
+msgid "Restart"
+msgstr "Restart"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:373
+msgid "Update text"
+msgstr "Teks update"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:377
+msgid "Changes"
+msgstr "Perubahan"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:381
+msgid "State"
+msgstr "Menyatakan"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:385
+msgid "Issued"
+msgstr "Diterbitkan"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#. TRANSLATORS: The action of the package, in past tense
+#: ../client/pk-console.c:389 ../lib/packagekit-glib2/pk-console-shared.c:510
+msgid "Updated"
+msgstr "Diperbarui"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:425
+msgid "Enabled"
+msgstr "Diaktifkan"
+
+#. TRANSLATORS: if the repo is disabled
+#: ../client/pk-console.c:428
+msgid "Disabled"
+msgstr "Dinonaktifkan"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:460
+msgid "System restart required by:"
+msgstr "Restart sistem yang diperlukan oleh:"
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:463
+msgid "Session restart required:"
+msgstr "Sesi restart diperlukan:"
+
+#. TRANSLATORS: a package requires the system to be restarted due to a security update
+#: ../client/pk-console.c:466
+msgid "System restart (security) required by:"
+msgstr "Sistem restart (keamanan) yang diperlukan oleh:"
+
+#. TRANSLATORS: a package requires the session to be restarted due to a security update
+#: ../client/pk-console.c:469
+msgid "Session restart (security) required:"
+msgstr "Session restart (keamanan) yang diperlukan:"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:472
+msgid "Application restart required by:"
+msgstr "Restart aplikasi yang diperlukan oleh:"
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:507
+msgid "Package description"
+msgstr "Paket deskripsi"
+
+#. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
+#: ../client/pk-console.c:538
+msgid "Message:"
+msgstr "Pesan:"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:559
+msgid "No files"
+msgstr "Tidak ada file"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:564
+msgid "Package files"
+msgstr "File paket"
+
+#. TRANSLATORS: the percentage complete of the transaction
+#: ../client/pk-console.c:632
+msgid "Percentage"
+msgstr "Persentasi"
+
+#. TRANSLATORS: the status of the transaction (e.g. downloading)
+#: ../client/pk-console.c:650
+msgid "Status"
+msgstr "Status"
+
+#. TRANSLATORS: the results from the transaction
+#: ../client/pk-console.c:679
+msgid "Results:"
+msgstr "Hasil:"
+
+#. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
+#: ../client/pk-console.c:686
+msgid "Fatal error"
+msgstr "Kesalahan Fatal"
+
+#. TRANSLATORS: the transaction failed in a way we could not expect
+#: ../client/pk-console.c:695
+#: ../contrib/command-not-found/pk-command-not-found.c:432
+#: ../contrib/command-not-found/pk-command-not-found.c:603
+msgid "The transaction failed"
+msgstr "Transaksi gagal"
+
+#. TRANSLATORS: print a message when there are no updates
+#: ../client/pk-console.c:726
+msgid "There are no updates available at this time."
+msgstr "Tidak ada pembaruan tersedia saat ini."
+
+#. TRANSLATORS: a package needs to restart their system
+#: ../client/pk-console.c:814
+msgid "Please restart the computer to complete the update."
+msgstr "Silakan restart komputer untuk menyelesaikan pembaruan."
+
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:817
+msgid "Please logout and login to complete the update."
+msgstr "Silahkan logout dan login untuk menyelesaikan pembaruan."
+
+#. TRANSLATORS: a package needs to restart their system (due to security)
+#: ../client/pk-console.c:820
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
+msgstr ""
+"Silakan restart komputer untuk menyelesaikan pembaruan karena pembaruan "
+"penting untuk keamanan telah diinstal."
+
+#. TRANSLATORS: a package needs to restart the session (due to security)
+#: ../client/pk-console.c:823
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
+msgstr ""
+"Silakan logout dan login untuk menyelesaikan pembaruan karena pembaruan "
+"penting untuk keamanan telah diinstal."
+
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
+#: ../client/pk-console.c:849
+#, c-format
+msgid ""
+"Extected package name, actually got file. Try using 'pkcon install-local %s' "
+"instead."
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:857
+#, c-format
+msgid "This tool could not find any available package: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:885
+#, c-format
+msgid "This tool could not find the installed package: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:913 ../client/pk-console.c:941
+#, c-format
+msgid "This tool could not find the package: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:969 ../client/pk-console.c:997
+#: ../client/pk-console.c:1025 ../client/pk-console.c:1053
+#: ../client/pk-console.c:1081
+#, c-format
+msgid "This tool could not find all the packages: %s"
+msgstr ""
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
+#: ../client/pk-console.c:1110
+msgid "The daemon crashed mid-transaction!"
+msgstr ""
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1144
+msgid "PackageKit Console Interface"
+msgstr ""
+
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1146
+msgid "Subcommands:"
+msgstr ""
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:1225
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
+
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1261 ../client/pk-monitor.c:306
+msgid "Show the program version and exit"
+msgstr ""
+
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1264
+msgid "Set the filter, e.g. installed"
+msgstr ""
+
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1267
+msgid "Exit without waiting for actions to complete"
+msgstr ""
+
+#. command line argument, do we ask questions
+#: ../client/pk-console.c:1270
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
+msgid "Install the packages without asking for confirmation"
+msgstr ""
+
+#. TRANSLATORS: command line argument, this command is not a priority
+#: ../client/pk-console.c:1273
+msgid "Run the command using idle network bandwidth and also using less power"
+msgstr ""
+
+#. TRANSLATORS: command line argument, just output without fancy formatting
+#: ../client/pk-console.c:1276
+msgid ""
+"Print to screen a machine readable output, rather than using animated widgets"
+msgstr ""
+
+#. TRANSLATORS: we failed to contact the daemon
+#: ../client/pk-console.c:1298
+msgid "Failed to contact PackageKit"
+msgstr ""
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1356
+msgid "The filter specified was invalid"
+msgstr ""
+
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1375
+msgid "A search type is required, e.g. name"
+msgstr ""
+
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1382 ../client/pk-console.c:1394
+#: ../client/pk-console.c:1406 ../client/pk-console.c:1418
+msgid "A search term is required"
+msgstr ""
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1428
+msgid "Invalid search type"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1434
+msgid "A package name to install is required"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1443
+msgid "A filename to install is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1455
+msgid "A type, key_id and package_id are required"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1466
+msgid "A package name to remove is required"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:1475
+msgid "A destination directory and the package names to download are required"
+msgstr ""
+
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:1482
+msgid "Directory not found"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1491
+msgid "A licence identifier (eula-id) is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1502
+msgid "A transaction identifier (tid) is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:1523
+msgid "A package name to resolve is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:1534 ../client/pk-console.c:1545
+msgid "A repository name is required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:1556
+msgid "A repo name, parameter and value are required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:1573
+msgid "An action, e.g. 'update-system' is required"
+msgstr ""
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:1580
+msgid "A correct role is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c:1590 ../client/pk-console.c:1605
+#: ../client/pk-console.c:1614 ../client/pk-console.c:1634
+#: ../client/pk-console.c:1643 ../client/pk-generate-pack.c:316
+msgid "A package name is required"
+msgstr ""
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:1623
+msgid "A package provide string is required"
+msgstr ""
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command line
+#: ../client/pk-console.c:1703
+#, c-format
+msgid "Option '%s' is not supported"
+msgstr ""
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:1713
+msgid "Command failed"
+msgstr ""
+
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:255
+msgid "Set the file name of dependencies to be excluded"
+msgstr ""
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:258
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:261
+msgid "The package to be put into the service pack"
+msgstr ""
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:264
+msgid "Put all updates available in the service pack"
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:300
+msgid "Neither --package or --updates option selected."
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:308
+msgid "Both options selected."
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:324
+msgid "A output directory or file name is required"
+msgstr ""
+
+#. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
+#: ../client/pk-generate-pack.c:342
+msgid "The dameon failed to startup"
+msgstr ""
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:353 ../client/pk-generate-pack.c:359
+msgid "The package manager cannot perform this type of operation."
+msgstr ""
+
+#. TRANSLATORS: This is when the distro didn't include libarchive support into PK
+#: ../client/pk-generate-pack.c:366
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
+msgstr ""
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:377
+msgid "If specifying a file, the service pack name must end with"
+msgstr ""
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:393
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr ""
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:396
+msgid "The pack was not overwritten."
+msgstr ""
+
+#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
+#: ../client/pk-generate-pack.c:409
+msgid "Failed to create directory:"
+msgstr ""
+
+#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
+#: ../client/pk-generate-pack.c:421
+msgid "Failed to open package list."
+msgstr ""
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:430
+msgid "Finding package name."
+msgstr ""
+
+#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
+#: ../client/pk-generate-pack.c:434
+#, c-format
+msgid "Failed to find package '%s': %s"
+msgstr ""
+
+#. TRANSLATORS: This is telling the user we are in the process of making the pack
+#: ../client/pk-generate-pack.c:442
+msgid "Creating service pack..."
+msgstr ""
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:457
+#, c-format
+msgid "Service pack created '%s'"
+msgstr ""
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:462
+#, c-format
+msgid "Failed to create '%s': %s"
+msgstr ""
+
+#: ../client/pk-monitor.c:236
+msgid "Failed to get daemon state"
+msgstr ""
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:322
+msgid "PackageKit Monitor"
+msgstr ""
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/pk-plugin-install.c:495
+msgid "Getting package information..."
+msgstr ""
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/pk-plugin-install.c:501
+#, c-format
+msgid "Run %s"
+msgstr ""
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:507
+msgid "Installed version"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#, c-format
+msgid "Run version %s now"
+msgstr ""
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/pk-plugin-install.c:521
+msgid "Run now"
+msgstr ""
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:527
+#, c-format
+msgid "Update to version %s"
+msgstr ""
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/pk-plugin-install.c:533
+#, c-format
+msgid "Install %s now"
+msgstr ""
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/pk-plugin-install.c:536
+msgid "Version"
+msgstr ""
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/pk-plugin-install.c:541
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/pk-plugin-install.c:546
+msgid "Installing..."
+msgstr ""
+
+#. TRANSLATORS: downloading repo data so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:365
+msgid "Downloading details about the software sources."
+msgstr ""
+
+#. TRANSLATORS: downloading file lists so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:369
+msgid "Downloading filelists (this may take some time to complete)."
+msgstr ""
+
+#. TRANSLATORS: waiting for native lock
+#: ../contrib/command-not-found/pk-command-not-found.c:373
+msgid "Waiting for package manager lock."
+msgstr ""
+
+#. TRANSLATORS: loading package cache so we can search
+#: ../contrib/command-not-found/pk-command-not-found.c:377
+msgid "Loading list of packages."
+msgstr ""
+
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:423
+msgid "Failed to search for file"
+msgstr ""
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:566
+msgid "Failed to launch:"
+msgstr ""
+
+#. TRANSLATORS: we failed to install the package
+#: ../contrib/command-not-found/pk-command-not-found.c:594
+msgid "Failed to install packages"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/command-not-found/pk-command-not-found.c:670
+msgid "PackageKit Command Not Found"
+msgstr ""
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:699
+msgid "Command not found."
+msgstr ""
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:706
+msgid "Similar command is:"
+msgstr ""
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:716
+msgid "Run similar command:"
+msgstr ""
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+#: ../contrib/command-not-found/pk-command-not-found.c:730
+#: ../contrib/command-not-found/pk-command-not-found.c:739
+msgid "Similar commands are:"
+msgstr ""
+
+#. TRANSLATORS: ask the user to choose a file to run
+#: ../contrib/command-not-found/pk-command-not-found.c:746
+msgid "Please choose a command to run"
+msgstr ""
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:764
+msgid "The package providing this file is:"
+msgstr ""
+
+#. TRANSLATORS: as the user if we want to install a package to provide the command
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#, c-format
+msgid "Install package '%s' to provide command '%s'?"
+msgstr ""
+
+#. TRANSLATORS: Show the user a list of packages that provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:793
+msgid "Packages providing this file are:"
+msgstr ""
+
+#. TRANSLATORS: Show the user a list of packages that they can install to provide this command
+#: ../contrib/command-not-found/pk-command-not-found.c:803
+msgid "Suitable packages are:"
+msgstr ""
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:812
+msgid "Please choose a package to install"
+msgstr ""
+
+#. TRANSLATORS: we are starting to install the packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:197
+msgid "Starting install"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:409
+#, c-format
+msgid "Failed to find the package %s, or already installed: %s"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:518
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
+msgstr ""
+
+#. command line argument, do we skip packages that depend on the ones specified
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:521
+msgid "Do not install dependencies of the core packages"
+msgstr ""
+
+#. command line argument, do we operate quietly
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:524
+msgid "Do not display information or progress"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:542
+msgid "PackageKit Debuginfo Installer"
+msgstr ""
+
+#. TRANSLATORS: the use needs to specify a list of package names on the command line
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
+#, c-format
+msgid "ERROR: Specify package names to install."
+msgstr ""
+
+#. TRANSLATORS: we are getting the list of repositories
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:592
+#, c-format
+msgid "Getting sources list"
+msgstr ""
+
+#. TRANSLATORS: operation was not successful
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:602
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:677
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:761
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:805
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:872
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:916
+msgid "FAILED."
+msgstr ""
+
+#. TRANSLATORS: all completed 100%
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:617
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:657
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:692
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:776
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:820
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:887
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
+#, c-format
+msgid "OK."
+msgstr ""
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:620
+#, c-format
+msgid "Found %i enabled and %i disabled sources."
+msgstr ""
+
+#. TRANSLATORS: we're finding repositories that match out pattern
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:627
+#, c-format
+msgid "Finding debugging sources"
+msgstr ""
+
+#. TRANSLATORS: tell the user what we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:660
+#, c-format
+msgid "Found %i disabled debuginfo repos."
+msgstr ""
+
+#. TRANSLATORS: we're now enabling all the debug sources we found
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:667
+#, c-format
+msgid "Enabling debugging sources"
+msgstr ""
+
+#. TRANSLATORS: tell the user how many we enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:695
+#, c-format
+msgid "Enabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: we're now finding packages that match in all the repos
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:702
+#, c-format
+msgid "Finding debugging packages"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:714
+#, c-format
+msgid "Failed to find the package %s: %s"
+msgstr ""
+
+#. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
+#, c-format
+msgid "Failed to find the debuginfo package %s: %s"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:765
+#, c-format
+msgid "Found no packages to install."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some packages, and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:779
+#, c-format
+msgid "Found %i packages:"
+msgstr ""
+
+#. TRANSLATORS: tell the user we are searching for deps
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:795
+#, c-format
+msgid "Finding packages that depend on these packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:808
+#, c-format
+msgid "Could not find dependant packages: %s"
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:824
+#, c-format
+msgid "Found %i extra packages."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some more packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
+#, c-format
+msgid "No extra packages required."
+msgstr ""
+
+#. TRANSLATORS: tell the user we found some packages (and deps), and then list them
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:837
+#, c-format
+msgid "Found %i packages to install:"
+msgstr ""
+
+#. TRANSLATORS: simulate mode is a testing mode where we quit before the action
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:850
+#, c-format
+msgid "Not installing packages in simulate mode"
+msgstr ""
+
+#. TRANSLATORS: we are now installing the debuginfo packages we found earlier
+#. TRANSLATORS: transaction state, installing packages
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:862
+#: ../lib/packagekit-glib2/pk-console-shared.c:282
+#, c-format
+msgid "Installing packages"
+msgstr ""
+
+#. TRANSLATORS: could not install, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:875
+#, c-format
+msgid "Could not install packages: %s"
+msgstr ""
+
+#. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:907
+#, c-format
+msgid "Disabling sources previously enabled"
+msgstr ""
+
+#. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:919
+#, c-format
+msgid "Could not disable the debugging sources: %s"
+msgstr ""
+
+#. TRANSLATORS: we disabled all the debugging repos that we enabled before
+#: ../contrib/debuginfo-install/pk-debuginfo-install.c:934
+#, c-format
+msgid "Disabled %i debugging sources."
+msgstr ""
+
+#. TRANSLATORS: couldn't open device to write
+#: ../contrib/device-rebind/pk-device-rebind.c:62
+msgid "Failed to open file"
+msgstr ""
+
+#. TRANSLATORS: could not write to the device
+#: ../contrib/device-rebind/pk-device-rebind.c:71
+msgid "Failed to write to the file"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
+msgid "Failed to write to device"
+msgstr ""
+
+#. TRANSLATORS: the device could not be found in sysfs
+#: ../contrib/device-rebind/pk-device-rebind.c:176
+msgid "Device could not be found"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:203
+msgid "Failed to unregister driver"
+msgstr ""
+
+#. TRANSLATORS: we failed to bind the old driver
+#: ../contrib/device-rebind/pk-device-rebind.c:212
+msgid "Failed to register driver"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:261
+msgid "Device path not found"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:269
+msgid "Incorrect device path specified"
+msgstr ""
+
+#: ../contrib/device-rebind/pk-device-rebind.c:294
+msgid "Show extra debugging information"
+msgstr ""
+
+#. command line argument, simulate what would be done, but don't actually do it
+#: ../contrib/device-rebind/pk-device-rebind.c:297
+msgid "Don't actually touch the hardware, only simulate what would be done"
+msgstr ""
+
+#. TRANSLATORS: command line option: a list of files to install
+#: ../contrib/device-rebind/pk-device-rebind.c:300
+msgid "Device paths"
+msgstr ""
+
+#. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
+#: ../contrib/device-rebind/pk-device-rebind.c:315
+msgid "PackageKit Device Reloader"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:323
+msgid "You need to specify at least one valid device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a valid device sysfs path
+#: ../contrib/device-rebind/pk-device-rebind.c:333
+msgid "This script can only be used by the root user"
+msgstr ""
+
+#. TRANSLATORS: we're going to verify the path first
+#: ../contrib/device-rebind/pk-device-rebind.c:342
+msgid "Verifying device path"
+msgstr ""
+
+#. TRANSLATORS: user did not specify a device sysfs path that exists
+#: ../contrib/device-rebind/pk-device-rebind.c:347
+msgid "Failed to verify device path"
+msgstr ""
+
+#. TRANSLATORS: we're going to try
+#: ../contrib/device-rebind/pk-device-rebind.c:361
+msgid "Attempting to rebind device"
+msgstr ""
+
+#. TRANSLATORS: we failed to release the current driver
+#: ../contrib/device-rebind/pk-device-rebind.c:366
+msgid "Failed to rebind device"
+msgstr ""
+
+#: ../data/packagekit-catalog.xml.in.h:1
+msgid "PackageKit Catalog"
+msgstr ""
+
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr ""
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr ""
+
+#: ../lib/packagekit-glib2/pk-console-shared.c:59
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr ""
+
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:183
+msgid "More than one package matches:"
+msgstr ""
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../lib/packagekit-glib2/pk-console-shared.c:196
+msgid "Please choose the correct package: "
+msgstr ""
+
+#. TRANSLATORS: This is when the transaction status is not known
+#: ../lib/packagekit-glib2/pk-console-shared.c:250
+msgid "Unknown state"
+msgstr ""
+
+#. TRANSLATORS: transaction state, the daemon is in the process of starting
+#: ../lib/packagekit-glib2/pk-console-shared.c:254
+msgid "Starting"
+msgstr ""
+
+#. TRANSLATORS: transaction state, the transaction is waiting for another to complete
+#: ../lib/packagekit-glib2/pk-console-shared.c:258
+msgid "Waiting in queue"
+msgstr ""
+
+#. TRANSLATORS: transaction state, just started
+#: ../lib/packagekit-glib2/pk-console-shared.c:262
+msgid "Running"
+msgstr ""
+
+#. TRANSLATORS: transaction state, is querying data
+#: ../lib/packagekit-glib2/pk-console-shared.c:266
+msgid "Querying"
+msgstr ""
+
+#. TRANSLATORS: transaction state, getting data from a server
+#: ../lib/packagekit-glib2/pk-console-shared.c:270
+msgid "Getting information"
+msgstr ""
+
+#. TRANSLATORS: transaction state, removing packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:274
+msgid "Removing packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading package files
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:278
+#: ../lib/packagekit-glib2/pk-console-shared.c:656
+msgid "Downloading packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, refreshing internal lists
+#: ../lib/packagekit-glib2/pk-console-shared.c:286
+msgid "Refreshing software list"
+msgstr ""
+
+#. TRANSLATORS: transaction state, installing updates
+#: ../lib/packagekit-glib2/pk-console-shared.c:290
+msgid "Installing updates"
+msgstr ""
+
+#. TRANSLATORS: transaction state, removing old packages, and cleaning config files
+#: ../lib/packagekit-glib2/pk-console-shared.c:294
+msgid "Cleaning up packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, obsoleting old packages
+#: ../lib/packagekit-glib2/pk-console-shared.c:298
+msgid "Obsoleting packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, checking the transaction before we do it
+#: ../lib/packagekit-glib2/pk-console-shared.c:302
+msgid "Resolving dependencies"
+msgstr ""
+
+#. TRANSLATORS: transaction state, checking if we have all the security keys for the operation
+#: ../lib/packagekit-glib2/pk-console-shared.c:306
+msgid "Checking signatures"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we return to a previous system state
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:310
+#: ../lib/packagekit-glib2/pk-console-shared.c:616
+msgid "Rolling back"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we're doing a test transaction
+#: ../lib/packagekit-glib2/pk-console-shared.c:314
+msgid "Testing changes"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we're writing to the system package database
+#: ../lib/packagekit-glib2/pk-console-shared.c:318
+msgid "Committing changes"
+msgstr ""
+
+#. TRANSLATORS: transaction state, requesting data from a server
+#: ../lib/packagekit-glib2/pk-console-shared.c:322
+msgid "Requesting data"
+msgstr ""
+
+#. TRANSLATORS: transaction state, all done!
+#: ../lib/packagekit-glib2/pk-console-shared.c:326
+msgid "Finished"
+msgstr ""
+
+#. TRANSLATORS: transaction state, in the process of cancelling
+#: ../lib/packagekit-glib2/pk-console-shared.c:330
+msgid "Cancelling"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:334
+msgid "Downloading repository information"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:338
+msgid "Downloading list of packages"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:342
+msgid "Downloading file lists"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:346
+msgid "Downloading lists of changes"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:350
+msgid "Downloading groups"
+msgstr ""
+
+#. TRANSLATORS: transaction state, downloading metadata
+#: ../lib/packagekit-glib2/pk-console-shared.c:354
+msgid "Downloading update information"
+msgstr ""
+
+#. TRANSLATORS: transaction state, repackaging delta files
+#: ../lib/packagekit-glib2/pk-console-shared.c:358
+msgid "Repackaging files"
+msgstr ""
+
+#. TRANSLATORS: transaction state, loading databases
+#: ../lib/packagekit-glib2/pk-console-shared.c:362
+msgid "Loading cache"
+msgstr ""
+
+#. TRANSLATORS: transaction state, scanning for running processes
+#: ../lib/packagekit-glib2/pk-console-shared.c:366
+msgid "Scanning applications"
+msgstr ""
+
+#. TRANSLATORS: transaction state, generating a list of packages installed on the system
+#: ../lib/packagekit-glib2/pk-console-shared.c:370
+msgid "Generating package lists"
+msgstr ""
+
+#. TRANSLATORS: transaction state, when we're waiting for the native tools to exit
+#: ../lib/packagekit-glib2/pk-console-shared.c:374
+msgid "Waiting for package manager lock"
+msgstr ""
+
+#. TRANSLATORS: transaction state, waiting for user to type in a password
+#: ../lib/packagekit-glib2/pk-console-shared.c:378
+msgid "Waiting for authentication"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are updating the list of processes
+#: ../lib/packagekit-glib2/pk-console-shared.c:382
+msgid "Updating running applications"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are checking executable files currently in use
+#: ../lib/packagekit-glib2/pk-console-shared.c:386
+msgid "Checking applications in use"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are checking for libraries currently in use
+#: ../lib/packagekit-glib2/pk-console-shared.c:390
+msgid "Checking libraries in use"
+msgstr ""
+
+#. TRANSLATORS: transaction state, we are copying package files before or after the transaction
+#: ../lib/packagekit-glib2/pk-console-shared.c:394
+msgid "Copying files"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:412
+msgid "Trivial"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:416
+msgid "Normal"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:420
+msgid "Important"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:424
+msgid "Security"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:428
+msgid "Bug fix "
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:432
+msgid "Enhancement"
+msgstr ""
+
+#. TRANSLATORS: The type of update
+#: ../lib/packagekit-glib2/pk-console-shared.c:436
+msgid "Blocked"
+msgstr ""
+
+#. TRANSLATORS: The state of a package
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:441
+#: ../lib/packagekit-glib2/pk-console-shared.c:514
+msgid "Installed"
+msgstr ""
+
+#. TRANSLATORS: The state of a package, i.e. not installed
+#: ../lib/packagekit-glib2/pk-console-shared.c:446
+msgid "Available"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:464
+msgid "Downloading"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:468
+msgid "Updating"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:472
+#: ../lib/packagekit-glib2/pk-console-shared.c:592
+msgid "Installing"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:476
+#: ../lib/packagekit-glib2/pk-console-shared.c:588
+msgid "Removing"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:480
+msgid "Cleaning up"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:484
+msgid "Obsoleting"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:488
+msgid "Reinstalling"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:506
+msgid "Downloaded"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:518
+msgid "Removed"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:522
+msgid "Cleaned up"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:526
+msgid "Obsoleted"
+msgstr ""
+
+#. TRANSLATORS: The action of the package, in past tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:530
+msgid "Reinstalled"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:548
+msgid "Unknown role type"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:552
+msgid "Getting dependencies"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:556
+msgid "Getting update details"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:560
+msgid "Getting details"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:564
+msgid "Getting requires"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:568
+msgid "Getting updates"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:572
+msgid "Searching by details"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:576
+msgid "Searching by file"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:580
+msgid "Searching groups"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:584
+msgid "Searching by name"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:596
+msgid "Installing files"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:600
+msgid "Refreshing cache"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:604
+msgid "Updating packages"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:608
+msgid "Updating system"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:612
+msgid "Canceling"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:620
+msgid "Getting repositories"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:624
+msgid "Enabling repository"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:628
+msgid "Setting data"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:632
+msgid "Resolving"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:636
+msgid "Getting file list"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:640
+msgid "Getting provides"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:644
+msgid "Installing signature"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:648
+msgid "Getting packages"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:652
+msgid "Accepting EULA"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:660
+msgid "Getting upgrades"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:664
+msgid "Getting categories"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:668
+msgid "Getting transactions"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:672
+#: ../lib/packagekit-glib2/pk-console-shared.c:676
+msgid "Simulating install"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:680
+msgid "Simulating remove"
+msgstr ""
+
+#. TRANSLATORS: The role of the transaction, in present tense
+#: ../lib/packagekit-glib2/pk-console-shared.c:684
+msgid "Simulating update"
+msgstr ""
+
+#. TRANSLATORS: ask the user if they are comfortable installing insecure packages
+#: ../lib/packagekit-glib2/pk-task-text.c:69
+msgid "Do you want to allow installing of unsigned software?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:74
+msgid "The unsigned software will not be installed."
+msgstr ""
+
+#. TRANSLATORS: the package repository is signed by a key that is not recognised
+#: ../lib/packagekit-glib2/pk-task-text.c:123
+msgid "Software source signature required"
+msgstr ""
+
+#. TRANSLATORS: the package repository name
+#: ../lib/packagekit-glib2/pk-task-text.c:129
+msgid "Software source name"
+msgstr ""
+
+#. TRANSLATORS: the key URL
+#: ../lib/packagekit-glib2/pk-task-text.c:132
+msgid "Key URL"
+msgstr ""
+
+#. TRANSLATORS: the username of the key
+#: ../lib/packagekit-glib2/pk-task-text.c:135
+msgid "Key user"
+msgstr ""
+
+#. TRANSLATORS: the key ID, usually a few hex digits
+#: ../lib/packagekit-glib2/pk-task-text.c:138
+msgid "Key ID"
+msgstr ""
+
+#. TRANSLATORS: the key fingerprint, again, yet more hex
+#: ../lib/packagekit-glib2/pk-task-text.c:141
+msgid "Key fingerprint"
+msgstr ""
+
+#. TRANSLATORS: the timestamp (a bit like a machine readable time)
+#: ../lib/packagekit-glib2/pk-task-text.c:144
+msgid "Key Timestamp"
+msgstr ""
+
+#. TRANSLATORS: ask the user if they want to import
+#: ../lib/packagekit-glib2/pk-task-text.c:157
+msgid "Do you accept this signature?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:162
+msgid "The signature was not accepted."
+msgstr ""
+
+#. TRANSLATORS: this is another name for a software licence that has to be read before installing
+#: ../lib/packagekit-glib2/pk-task-text.c:205
+msgid "End user licence agreement required"
+msgstr ""
+
+#. TRANSLATORS: the EULA text itself (long and boring)
+#: ../lib/packagekit-glib2/pk-task-text.c:214
+msgid "Agreement"
+msgstr ""
+
+#. TRANSLATORS: ask the user if they've read and accepted the EULA
+#: ../lib/packagekit-glib2/pk-task-text.c:223
+msgid "Do you accept this agreement?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything
+#: ../lib/packagekit-glib2/pk-task-text.c:228
+msgid "The agreement was not accepted."
+msgstr ""
+
+#. TRANSLATORS: the user needs to change media inserted into the computer
+#: ../lib/packagekit-glib2/pk-task-text.c:267
+msgid "Media change required"
+msgstr ""
+
+#. TRANSLATORS: the type, e.g. DVD, CD, etc
+#: ../lib/packagekit-glib2/pk-task-text.c:270
+msgid "Media type"
+msgstr ""
+
+#. TRANSLATORS: the media label, usually like 'disk-1of3'
+#: ../lib/packagekit-glib2/pk-task-text.c:273
+msgid "Media label"
+msgstr ""
+
+#. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
+#: ../lib/packagekit-glib2/pk-task-text.c:276
+msgid "Text"
+msgstr ""
+
+#. TRANSLATORS: ask the user to insert the media
+#: ../lib/packagekit-glib2/pk-task-text.c:282
+msgid "Please insert the correct media"
+msgstr ""
+
+#. TRANSLATORS: tell the user we've not done anything as they are lazy
+#: ../lib/packagekit-glib2/pk-task-text.c:287
+msgid "The correct media was not inserted."
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to remove other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:302
+msgid "The following packages have to be removed:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to install other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:307
+msgid "The following packages have to be installed:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to update other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:312
+msgid "The following packages have to be updated:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to reinstall other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:317
+msgid "The following packages have to be reinstalled:"
+msgstr ""
+
+#. TRANSLATORS: When processing, we might have to downgrade other dependencies
+#: ../lib/packagekit-glib2/pk-task-text.c:322
+msgid "The following packages have to be downgraded:"
+msgstr ""
+
+#. TRANSLATORS: ask the user if the proposed changes are okay
+#: ../lib/packagekit-glib2/pk-task-text.c:382
+msgid "Proceed with changes?"
+msgstr ""
+
+#. TRANSLATORS: tell the user we didn't do anything
+#: ../lib/packagekit-glib2/pk-task-text.c:387
+msgid "The transaction did not proceed."
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to accept new
+#. licence agreements.
+#. - Change this to 'auth_admin' for environments where users should not
+#. be given the option to make legal decisions.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Accept EULA"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to accept a EULA"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to change software source parameters"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid "Authentication is required to install a signed package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Authentication is required to install an untrusted package"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Authentication is required to refresh the system sources"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Authentication is required to reload the device with a new driver"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Authentication is required to remove packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Authentication is required to rollback a transaction"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
+msgstr ""
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Authentication is required to update packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users are allowed to cancel their own task without
+#. authentication, but a different user id needs the admin password
+#. to cancel another users task.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+msgid "Cancel foreign task"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to enable or disable
+#. software sources as this can be used to enable new updates or
+#. install different versions of software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+msgid "Change software source parameters"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not need authentication to install signed packages
+#. from signed repositories, as this cannot exploit a system.
+#. - Paranoid users (or parents!) can change this to 'auth_admin' or
+#. 'auth_admin_keep'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+msgid "Install signed package"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to install untrusted or
+#. unrecognised packages, as allowing users to do this without a
+#. password would be a massive security hole.
+#. - This is not retained as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+msgid "Install untrusted local file"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to refresh the
+#. cache, as this doesn't actually install or remove software.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+msgid "Refresh system sources"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to rebind a driver
+#. so that it works after we install firmware.
+#. - This should not be set to 'yes' as unprivileged users could then
+#. try to rebind drivers in use, for instance security authentication
+#. devices.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+msgid "Reload a device"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to remove packages as
+#. this can make the system unbootable or stop other applications from
+#. working.
+#. - Be sure to close the tool used to remove the packages after the
+#. admin authentication has been obtained, otherwise packages can still
+#. be removed. If this is not possible, change this authentication to
+#. 'auth_admin'.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+msgid "Remove package"
+msgstr ""
+
+#. 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:74
+msgid "Rollback to a previous transaction"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to set the proxy
+#. used for downloading packages.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+msgid "Set network proxy"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users require admin authentication to add signing keys.
+#. - This implies adding an explicit trust, and should not be granted
+#. without a secure authentication.
+#. - This is not kept as each package should be authenticated.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+msgid "Trust a key used for signing packages"
+msgstr ""
+
+#. SECURITY:
+#. - Normal users do not require admin authentication to update the
+#. system as the packages will be signed, and the action is required
+#. to update the system when unattended.
+#. - Changing this to anything other than 'yes' will break unattended
+#. updates.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+msgid "Update packages"
+msgstr ""
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
+msgid "Startup failed due to security policies on this machine."
+msgstr ""
+
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
+msgid "This can happen for two reasons:"
+msgstr ""
+
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
+msgid "The correct user is not launching the executable (usually root)"
+msgstr ""
+
+#. 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 ""
+
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:199
+msgid "Packaging backend to use, e.g. dummy"
+msgstr ""
+
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:202
+msgid "Daemonize and detach from the terminal"
+msgstr ""
+
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:205
+msgid "Disable the idle timer"
+msgstr ""
+
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:208
+msgid "Show version and exit"
+msgstr ""
+
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:211
+msgid "Exit after a small delay"
+msgstr ""
+
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:214
+msgid "Exit after the engine has loaded"
+msgstr ""
+
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:229
+msgid "PackageKit service"
+msgstr ""
+
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:266
+msgid "Cannot connect to the system bus"
+msgstr ""
+
+#. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
+#: ../src/pk-main.c:317
+msgid "Error trying to start:"
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:150
+msgid "To install debugging packages, extra sources need to be enabled"
+msgstr ""
+
+#. TRANSLATORS: is not GPG signed
+#: ../src/pk-polkit-action-lookup.c:171 ../src/pk-polkit-action-lookup.c:190
+msgid "The software is not from a trusted source."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:176
+msgid "Do not update this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:177
+msgid "Do not update these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:195
+msgid "Do not install this package unless you are sure it is safe to do so."
+msgstr ""
+
+#: ../src/pk-polkit-action-lookup.c:196
+msgid "Do not install these packages unless you are sure it is safe to do so."
+msgstr ""
+
+#. TRANSLATORS: too many packages to list each one
+#: ../src/pk-polkit-action-lookup.c:273
+msgid "Many packages"
+msgstr ""
+
+#. TRANSLATORS: if the transaction is forced to install only trusted packages
+#: ../src/pk-polkit-action-lookup.c:339
+msgid "Only trusted"
+msgstr ""
+
+#. TRANSLATORS: turn on all debugging
+#: ../src/egg-debug.c:388
+msgid "Show debugging information for all files"
+msgstr ""
+
+#. TRANSLATORS: a list of modules to debug
+#: ../src/egg-debug.c:459
+msgid "Debug these specific modules"
+msgstr ""
+
+#. TRANSLATORS: a list of functions to debug
+#: ../src/egg-debug.c:462
+msgid "Debug these specific functions"
+msgstr ""
+
+#. TRANSLATORS: save to a log
+#: ../src/egg-debug.c:465
+msgid "Log debugging data to a file"
+msgstr ""
+
+#: ../src/egg-debug.c:469
+msgid "Debugging Options"
+msgstr ""
+
+#: ../src/egg-debug.c:469
+msgid "Show debugging options"
+msgstr ""
+
commit 6188e8b6b39502868abb3ea3b026ab6df70e1240
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Feb 11 12:43:56 2010 +0000
trivial: ensure we set the role in the transaction after pk_backend_reset() has been called
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 94518c1..6f33b20 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1657,6 +1657,9 @@ pk_transaction_set_running (PkTransaction *transaction)
/* might have to reset again if we used the backend */
pk_backend_reset (transaction->priv->backend);
+ /* set the role again, as resetting will have cleared the value */
+ pk_backend_set_role (priv->backend, priv->role);
+
/* connect up the signals */
transaction->priv->signal_allow_cancel =
g_signal_connect (transaction->priv->backend, "allow-cancel",
commit 469899c293b5194bc8f42188f19b1176a1505298
Author: Richard Hughes <richard at hughsie.com>
Date: Thu Feb 11 12:43:27 2010 +0000
trivial: add internal function pk_backend_get_role()
diff --git a/src/pk-backend.c b/src/pk-backend.c
index 5a8de06..1163878 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -207,6 +207,16 @@ pk_backend_get_filters (PkBackend *backend)
}
/**
+ * pk_backend_get_role:
+ **/
+PkRoleEnum
+pk_backend_get_role (PkBackend *backend)
+{
+ g_return_val_if_fail (PK_IS_BACKEND (backend), PK_ROLE_ENUM_UNKNOWN);
+ return backend->priv->role;
+}
+
+/**
* pk_backend_get_roles:
**/
PkBitfield
diff --git a/src/pk-backend.h b/src/pk-backend.h
index 6bb3b29..2a93769 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -53,6 +53,7 @@ gboolean pk_backend_is_eula_valid (PkBackend *backend,
const gchar *eula_id);
gboolean pk_backend_set_role (PkBackend *backend,
PkRoleEnum role);
+PkRoleEnum pk_backend_get_role (PkBackend *backend);
gboolean pk_backend_set_status (PkBackend *backend,
PkStatusEnum status);
gboolean pk_backend_set_allow_cancel (PkBackend *backend,
commit 6fc6e4db4575b84a803cd2774110e9b3148b7ed6
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Wed Feb 10 10:16:47 2010 +0100
entropy: update TODO
diff --git a/backends/entropy/TODO b/backends/entropy/TODO
index 2fb9107..b753925 100644
--- a/backends/entropy/TODO
+++ b/backends/entropy/TODO
@@ -2,6 +2,7 @@ Entropy PackageKit backend developers' TODO:
- add support for FILTER_NOT_VISIBLE, FILTER_NOT_DEVELOPMENT,
FILTER_DEVELOPMENT, FILTER_VISIBLE
+ - implement security filter (Client.get_security_updates())
- add what_provides, repo_set_data
- bind get_distro_upgrades to branch hop?
- sys-apps/entropy is a syspkg
commit e2c0db2693b598822f344baf19d0da7c401f1b07
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Wed Feb 10 08:56:46 2010 +0100
portage: implement PackageKitPortageBackend.get_categories()
diff --git a/backends/portage/pk-backend-portage.c b/backends/portage/pk-backend-portage.c
index 61a5cb2..c98aaa5 100644
--- a/backends/portage/pk-backend-portage.c
+++ b/backends/portage/pk-backend-portage.c
@@ -149,7 +149,7 @@ backend_get_roles (PkBackend *backend)
PK_ROLE_ENUM_GET_REPO_LIST,
PK_ROLE_ENUM_REPO_ENABLE,
//PK_ROLE_ENUM_REPO_SET_DATA,
- //PK_ROLE_ENUM_GET_CATEGORIES,
+ PK_ROLE_ENUM_GET_CATEGORIES,
//PK_ROLE_ENUM_SIMULATE_INSTALL_FILES,
PK_ROLE_ENUM_SIMULATE_INSTALL_PACKAGES,
PK_ROLE_ENUM_SIMULATE_UPDATE_PACKAGES,
@@ -170,6 +170,15 @@ backend_cancel (PkBackend *backend)
}
/**
+ * pk_backend_get_categories:
+ */
+static void
+backend_get_categories (PkBackend *backend)
+{
+ pk_backend_spawn_helper (spawn, BACKEND_FILE, "get-categories", NULL);
+}
+
+/**
* backend_get_depends:
*/
static void
@@ -490,7 +499,7 @@ PK_BACKEND_OPTIONS (
NULL, /* get_mime_types */
backend_cancel, /* cancel */
NULL, /* download_packages */
- NULL, /* get_categories */
+ backend_get_categories, /* get_categories */
backend_get_depends, /* get_depends */
backend_get_details, /* get_details */
NULL, /* get_distro_upgrades */
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index c1a9a26..eb00ae0 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -245,6 +245,23 @@ class PackageKitPortageMixin(object):
"""
return self.pvar.settings.categories
+ def _get_portage_category_description(self, category):
+
+ from xml.dom import minidom
+ data = {}
+ portdir = self.pvar.settings['PORTDIR']
+ myfile = os.path.join(portdir, category, "metadata.xml")
+ if os.access(myfile, os.R_OK) and os.path.isfile(myfile):
+ doc = minidom.parse(myfile)
+ longdescs = doc.getElementsByTagName("longdescription")
+ for longdesc in longdescs:
+ data[longdesc.getAttribute("lang").strip()] = \
+ ' '.join([x.strip() for x in \
+ longdesc.firstChild.data.strip().split("\n")])
+
+ # Only return in plain English since Portage doesn't support i18n/l10n
+ return data.get('en', "No description")
+
def _get_portage_groups(self):
"""
Return an expanded version of PortagePackageGroups
@@ -800,6 +817,29 @@ class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
info = INFO_AVAILABLE
self.package(self._cpv_to_id(cpv), info, desc)
+ def get_categories(self):
+
+ self.status(STATUS_QUERY)
+ self.allow_cancel(True)
+
+ categories = self._get_portage_categories()
+ if not categories:
+ self.error(ERROR_GROUP_LIST_INVALID, "no package categories")
+ return
+
+ for name in categories:
+
+ summary = self._get_portage_category_description(name)
+
+ f_name = "/usr/share/pixmaps/portage/%s.png" % (name,)
+ if os.path.isfile(f_name) and os.access(f_name, os.R_OK):
+ icon = name
+ else:
+ icon = "image-missing"
+
+ cat_id = name # same thing
+ self.category("", cat_id, name, summary, icon)
+
def get_depends(self, filters, pkgs, recursive):
# TODO: use only myparams ?
# TODO: improve error management / info
commit 077254f83dc3e0656cb6761255194e32b17b2391
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Wed Feb 10 08:53:29 2010 +0100
entropy: fix error message typo
diff --git a/backends/entropy/entropyBackend.py b/backends/entropy/entropyBackend.py
index c5b8866..1179c5a 100755
--- a/backends/entropy/entropyBackend.py
+++ b/backends/entropy/entropyBackend.py
@@ -915,7 +915,7 @@ class PackageKitEntropyBackend(PackageKitBaseBackend, PackageKitEntropyMixin):
categories = self._entropy.get_package_categories()
if not categories:
- self.error(ERROR_GROUP_LIST_INVALID, "no package categires")
+ self.error(ERROR_GROUP_LIST_INVALID, "no package categories")
return
for name in categories:
commit e734c23088671f3f3fc25b00c09a6207e650d90a
Author: Fabio Erculiani <lxnay at sabayon.org>
Date: Wed Feb 10 08:42:33 2010 +0100
portage: factor out portage code from PackageKit overridden methods, several bug fixes
diff --git a/backends/portage/portageBackend.py b/backends/portage/portageBackend.py
index 2ae8c64..c1a9a26 100755
--- a/backends/portage/portageBackend.py
+++ b/backends/portage/portageBackend.py
@@ -26,8 +26,9 @@ from packagekit.progress import *
from packagekit.package import PackagekitPackage
# portage imports
-# TODO: why some python app are adding try / catch around this ?
import portage
+import portage.versions
+import portage.dep
import _emerge.actions
import _emerge.stdout_spinner
import _emerge.create_depgraph_params
@@ -58,195 +59,99 @@ from itertools import izip
# protection against signal when installing/removing
# Map Gentoo categories to the PackageKit group name space
-CATEGORY_GROUP_MAP = {
- "app-accessibility" : GROUP_ACCESSIBILITY,
- "app-admin" : GROUP_ADMIN_TOOLS,
- "app-antivirus" : GROUP_SYSTEM,
- "app-arch" : GROUP_OTHER, # TODO
- "app-backup" : GROUP_OTHER,
- "app-benchmarks" : GROUP_OTHER,
- "app-cdr" : GROUP_OTHER,
- "app-crypt" : GROUP_OTHER,
- "app-dicts" : GROUP_OTHER,
- "app-doc" : GROUP_OTHER,
- "app-editors" : GROUP_OTHER,
- "app-emacs" : GROUP_OTHER,
- "app-emulation" : GROUP_OTHER,
- "app-forensics" : GROUP_OTHER,
- "app-i18n" : GROUP_OTHER,
- "app-laptop" : GROUP_OTHER,
- "app-misc" : GROUP_OTHER,
- "app-mobilephone" : GROUP_OTHER,
- "app-office" : GROUP_OFFICE, # DONE
- "app-pda" : GROUP_OTHER, # TODO
- "app-portage" : GROUP_OTHER,
- "app-shells" : GROUP_OTHER,
- "app-text" : GROUP_OTHER,
- "app-vim" : GROUP_OTHER,
- "app-xemacs" : GROUP_OTHER,
- "dev-ada" : GROUP_PROGRAMMING, # DONE
- "dev-cpp" : GROUP_PROGRAMMING,
- "dev-db" : GROUP_PROGRAMMING,
- "dev-dotnet" : GROUP_PROGRAMMING,
- "dev-embedded" : GROUP_PROGRAMMING,
- "dev-games" : GROUP_PROGRAMMING,
- "dev-haskell" : GROUP_PROGRAMMING,
- "dev-java" : GROUP_PROGRAMMING,
- "dev-lang" : GROUP_PROGRAMMING,
- "dev-libs" : GROUP_PROGRAMMING,
- "dev-lisp" : GROUP_PROGRAMMING,
- "dev-ml" : GROUP_PROGRAMMING,
- "dev-perl" : GROUP_PROGRAMMING,
- "dev-php" : GROUP_PROGRAMMING,
- "dev-php5" : GROUP_PROGRAMMING,
- "dev-python" : GROUP_PROGRAMMING,
- "dev-ruby" : GROUP_PROGRAMMING,
- "dev-scheme" : GROUP_PROGRAMMING,
- "dev-tcltk" : GROUP_PROGRAMMING,
- "dev-tex" : GROUP_PROGRAMMING,
- "dev-texlive" : GROUP_PROGRAMMING,
- "dev-tinyos" : GROUP_PROGRAMMING,
- "dev-util" : GROUP_PROGRAMMING,
- "games-action" : GROUP_GAMES,
- "games-arcade" : GROUP_GAMES,
- "games-board" : GROUP_GAMES,
- "games-emulation" : GROUP_GAMES,
- "games-engines" : GROUP_GAMES,
- "games-fps" : GROUP_GAMES,
- "games-kids" : GROUP_GAMES,
- "games-misc" : GROUP_GAMES,
- "games-mud" : GROUP_GAMES,
- "games-puzzle" : GROUP_GAMES,
- "games-roguelike" : GROUP_GAMES,
- "games-rpg" : GROUP_GAMES,
- "games-server" : GROUP_GAMES,
- "games-simulation" : GROUP_GAMES,
- "games-sports" : GROUP_GAMES,
- "games-strategy" : GROUP_GAMES,
- "games-util" : GROUP_GAMES,
- "gnome-base" : GROUP_DESKTOP_GNOME,
- "gnome-extra" : GROUP_DESKTOP_GNOME,
- "gnustep-apps" : GROUP_OTHER, # TODO: from there
- "gnustep-base" : GROUP_OTHER,
- "gnustep-libs" : GROUP_OTHER,
- "gpe-base" : GROUP_OTHER,
- "gpe-utils" : GROUP_OTHER,
- "java-virtuals" : GROUP_OTHER,
- "kde-base" : GROUP_DESKTOP_KDE, # DONE from there
- "kde-misc" : GROUP_DESKTOP_KDE,
- "lxde-base" : GROUP_DESKTOP_OTHER,
- "mail-client" : GROUP_NETWORK,
- "mail-filter" : GROUP_NETWORK,
- "mail-mta" : GROUP_NETWORK,
- "media-fonts" : GROUP_FONTS,
- "media-gfx" : GROUP_GRAPHICS,
- "media-libs" : GROUP_OTHER, # TODO
- "media-plugins" : GROUP_OTHER,
- "media-radio" : GROUP_OTHER,
- "media-sound" : GROUP_OTHER,
- "media-tv" : GROUP_OTHER,
- "media-video" : GROUP_OTHER,
- "net-analyzer" : GROUP_OTHER,
- "net-dialup" : GROUP_OTHER,
- "net-dns" : GROUP_OTHER,
- "net-firewall" : GROUP_OTHER,
- "net-fs" : GROUP_OTHER,
- "net-ftp" : GROUP_OTHER,
- "net-im" : GROUP_OTHER,
- "net-irc" : GROUP_OTHER,
- "net-libs" : GROUP_OTHER,
- "net-mail" : GROUP_OTHER,
- "net-misc" : GROUP_OTHER,
- "net-nds" : GROUP_OTHER,
- "net-news" : GROUP_OTHER,
- "net-nntp" : GROUP_OTHER,
- "net-p2p" : GROUP_OTHER,
- "net-print" : GROUP_OTHER,
- "net-proxy" : GROUP_OTHER,
- "net-voip" : GROUP_OTHER,
- "net-wireless" : GROUP_OTHER,
- "net-zope" : GROUP_OTHER,
- "perl-core" : GROUP_OTHER,
- "rox-base" : GROUP_DESKTOP_OTHER, #DONE from there
- "rox-extra" : GROUP_DESKTOP_OTHER,
- "sci-astronomy" : GROUP_SCIENCE,
- "sci-biology" : GROUP_SCIENCE,
- "sci-calculators" : GROUP_SCIENCE,
- "sci-chemistry" : GROUP_SCIENCE,
- "sci-electronics" : GROUP_ELECTRONICS,
- "sci-geosciences" : GROUP_SCIENCE,
- "sci-libs" : GROUP_SCIENCE,
- "sci-mathematics" : GROUP_SCIENCE,
- "sci-misc" : GROUP_SCIENCE,
- "sci-physics" : GROUP_SCIENCE,
- "sci-visualization" : GROUP_SCIENCE,
- "sec-policy" : GROUP_SECURITY,
- "sys-apps" : GROUP_SYSTEM,
- "sys-auth" : GROUP_SYSTEM,
- "sys-block" : GROUP_SYSTEM,
- "sys-boot" : GROUP_SYSTEM,
- "sys-cluster" : GROUP_SYSTEM,
- "sys-devel" : GROUP_SYSTEM,
- "sys-freebsd" : GROUP_SYSTEM,
- "sys-fs" : GROUP_SYSTEM,
- "sys-kernel" : GROUP_SYSTEM,
- "sys-libs" : GROUP_SYSTEM,
- "sys-power" : GROUP_POWER_MANAGEMENT,
- "sys-process" : GROUP_SYSTEM,
- "virtual" : GROUP_OTHER, # TODO: what to do ?
- "www-apache" : GROUP_NETWORK,
- "www-apps" : GROUP_NETWORK,
- "www-client" : GROUP_NETWORK,
- "www-misc" : GROUP_NETWORK,
- "www-plugins" : GROUP_NETWORK,
- "www-servers" : GROUP_NETWORK,
- "x11-apps" : GROUP_OTHER, # TODO
- "x11-base" : GROUP_OTHER,
- "x11-drivers" : GROUP_OTHER,
- "x11-libs" : GROUP_OTHER,
- "x11-misc" : GROUP_OTHER,
- "x11-plugins" : GROUP_OTHER,
- "x11-proto" : GROUP_OTHER,
- "x11-terms" : GROUP_OTHER,
- "x11-themes" : GROUP_OTHER,
- "x11-wm" : GROUP_OTHER,
- "xfce-base" : GROUP_DESKTOP_XFCE, # DONE from there
- "xfce-extra" : GROUP_DESKTOP_XFCE
-}
-
-
-def sigquit(signum, frame):
- sys.exit(1)
-
-def get_group(cp):
- ''' Return the group of the package
- Argument could be cp or cpv. '''
- category = portage.catsplit(cp)[0]
- if category in CATEGORY_GROUP_MAP:
- return CATEGORY_GROUP_MAP[category]
-
- # TODO: add message ?
- return GROUP_UNKNOWN
-
-def get_search_list(keys):
- '''
- Get a string composed of keys (separated with spaces).
- Returns a list of compiled regular expressions.
- '''
- keys_list = keys.split(' ')
- search_list = []
-
- for k in keys_list:
- # not done entirely by pk-transaction
- k = re.escape(k)
- search_list.append(re.compile(k, re.IGNORECASE))
-
- return search_list
+class PortagePackageGroups(dict):
+ """
+ Portage Package categories group representation
+ """
+ def __init__(self):
+ dict.__init__(self)
+
+ data = {
+ 'accessibility': {
+ 'name': "Accessibility",
+ 'description': "Accessibility applications",
+ 'categories': ['app-accessibility'],
+ },
+ 'office': {
+ 'name': "Office",
+ 'description': "Applications used in office environments",
+ 'categories': ['app-office', 'app-pda', 'app-mobilephone',
+ 'app-cdr', 'app-antivirus', 'app-laptop', 'mail-',
+ ],
+ },
+ 'development': {
+ 'name': "Development",
+ 'description': "Applications or system libraries",
+ 'categories': ['dev-', 'sys-devel'],
+ },
+ 'system': {
+ 'name': "System",
+ 'description': "System applications or libraries",
+ 'categories': ['sys-'],
+ },
+ 'games': {
+ 'name': "Games",
+ 'description': "Games, enjoy your spare time",
+ 'categories': ['games-'],
+ },
+ 'gnome': {
+ 'name': "GNOME Desktop",
+ 'description': \
+ "Applications and libraries for the GNOME Desktop",
+ 'categories': ['gnome-'],
+ },
+ 'kde': {
+ 'name': "KDE Desktop",
+ 'description': \
+ "Applications and libraries for the KDE Desktop",
+ 'categories': ['kde-'],
+ },
+ 'xfce': {
+ 'name': "XFCE Desktop",
+ 'description': \
+ "Applications and libraries for the XFCE Desktop",
+ 'categories': ['xfce-'],
+ },
+ 'lxde': {
+ 'name': "LXDE Desktop",
+ 'description': \
+ "Applications and libraries for the LXDE Desktop",
+ 'categories': ['lxde-'],
+ },
+ 'multimedia': {
+ 'name': "Multimedia",
+ 'description': \
+ "Applications and libraries for Multimedia",
+ 'categories': ['media-'],
+ },
+ 'networking': {
+ 'name': "Networking",
+ 'description': \
+ "Applications and libraries for Networking",
+ 'categories': ['net-', 'www-'],
+ },
+ 'science': {
+ 'name': "Science",
+ 'description': \
+ "Scientific applications and libraries",
+ 'categories': ['sci-'],
+ },
+ 'security': {
+ 'name': "Security",
+ 'description': \
+ "Security orientend applications",
+ 'categories': ['app-antivirus', 'net-analyzer', 'net-firewall'],
+ },
+ 'x11': {
+ 'name': "X11",
+ 'description': \
+ "Applications and libraries for X11",
+ 'categories': ['x11-'],
+ },
+ }
+
+ self.update(data)
-def is_repository_enabled(layman_db, repo_name):
- if repo_name in layman_db.overlays.keys():
- return True
- return False
class PortageBridge():
'''
@@ -290,49 +195,111 @@ class PortageBridge():
self.settings.lock()
-class PackageKitPortageBackend(PackageKitBaseBackend):
+class PackageKitPortageMixin(object):
- def __init__(self, args):
- signal.signal(signal.SIGQUIT, sigquit)
- PackageKitBaseBackend.__init__(self, args)
+ def __init__(self):
+ object.__init__(self)
self.pvar = PortageBridge()
-
+ # TODO: should be removed when using non-verbose function API
+ # FIXME: avoid using /dev/null, dangerous (ro fs)
+ self._dev_null = open('/dev/null', 'w')
# TODO: atm, this stack keep tracks of elog messages
self._elog_messages = []
self._error_message = ""
self._error_phase = ""
- # TODO: should be removed when using non-verbose function API
- self.orig_out = None
- self.orig_err = None
+ # TODO: should be removed when using non-verbose function API
+ def _block_output(self):
+ sys.stdout = self._dev_null
+ sys.stderr = self._dev_null
- def get_ebuild_settings(self, cpv, metadata):
- settings = portage.config(clone=self.pvar.settings)
- settings.setcpv(cpv, mydb=metadata)
+ # TODO: should be removed when using non-verbose function API
+ def _unblock_output(self):
+ sys.stdout = sys.__stdout__
+ sys.stderr = sys.__stderr__
- return settings
+ def _is_repo_enabled(self, layman_db, repo_name):
+ if repo_name in layman_db.overlays.keys():
+ return True
+ return False
- # TODO: should be removed when using non-verbose function API
- def block_output(self):
- null_out = open('/dev/null', 'w')
- self.orig_out = sys.stdout
- self.orig_err = sys.stderr
- sys.stdout = null_out
- sys.stderr = null_out
+ def _get_search_list(self, keys):
+ '''
+ Get a string composed of keys (separated with spaces).
+ Returns a list of compiled regular expressions.
+ '''
+ keys_list = keys.split()
+ search_list = []
- # TODO: should be removed when using non-verbose function API
- def unblock_output(self):
- sys.stdout = self.orig_out
- sys.stderr = self.orig_err
+ for k in keys_list:
+ # not done entirely by pk-transaction
+ k = re.escape(k)
+ search_list.append(re.compile(k, re.IGNORECASE))
- def is_installed(self, cpv):
+ return search_list
+
+ def _get_portage_categories(self):
+ """
+ Return a list of available Portage categories
+ """
+ return self.pvar.settings.categories
+
+ def _get_portage_groups(self):
+ """
+ Return an expanded version of PortagePackageGroups
+ """
+ groups = PortagePackageGroups()
+ categories = self._get_portage_categories()
+
+ # expand categories
+ for data in list(groups.values()):
+
+ exp_cats = set()
+ for g_cat in data['categories']:
+ exp_cats.update([x for x in categories if x.startswith(g_cat)])
+ data['categories'] = sorted(exp_cats)
+
+ return groups
+
+ def _get_pk_group(self, cp):
+ """
+ Return PackageKit group belonging to given Portage package.
+ """
+ category = portage.versions.catsplit(cp)[0]
+ group_data = [key for key, data in self._get_portage_groups().items() \
+ if category in data['categories']]
+ try:
+ generic_group_name = group_data.pop(0)
+ except IndexError:
+ return GROUP_UNKNOWN
+
+ return PackageKitPortageBackend.GROUP_MAP[generic_group_name]
+
+ def _get_portage_group(self, pk_group):
+ """
+ Given a PackageKit group identifier, return Portage packages group.
+ """
+ group_map = PackageKitPortageBackend.GROUP_MAP
+ # reverse dict
+ group_map_reverse = dict((y, x) for x, y in group_map.items())
+ return group_map_reverse.get(pk_group, 'unknown')
+
+ def _get_ebuild_settings(self, cpv, metadata):
+ """
+ Return values of given metadata keys for given Portage CPV.
+ """
+ settings = portage.config(clone=self.pvar.settings)
+ settings.setcpv(cpv, mydb=metadata)
+ return settings
+
+ def _is_installed(self, cpv):
if self.pvar.vardb.cpv_exists(cpv):
return True
return False
- def is_cpv_valid(self, cpv):
- if self.is_installed(cpv):
+ def _is_cpv_valid(self, cpv):
+ if self._is_installed(cpv):
# actually if is_installed return True that means cpv is in db
return True
elif self.pvar.portdb.cpv_exists(cpv):
@@ -340,9 +307,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return False
- def get_real_license_str(self, cpv, metadata):
+ def _get_real_license_str(self, cpv, metadata):
# use conditionals info (w/ USE) in LICENSE and remove ||
- ebuild_settings = self.get_ebuild_settings(cpv, metadata)
+ ebuild_settings = self._get_ebuild_settings(cpv, metadata)
license = set(portage.flatten(portage.dep.use_reduce(
portage.dep.paren_reduce(metadata["LICENSE"]),
uselist=ebuild_settings.get("USE", "").split())))
@@ -351,7 +318,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return license
- def send_configuration_file_message(self):
+ def _signal_config_update(self):
result = list(portage.util.find_updated_config_files(
self.pvar.settings['ROOT'],
self.pvar.settings.get('CONFIG_PROTECT', '').split()))
@@ -362,7 +329,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
message += ";If you can't do that, ask your system administrator."
self.message(MESSAGE_CONFIG_FILES_CHANGED, message)
- def get_restricted_fetch_files(self, cpv, metadata):
+ def _get_restricted_fetch_files(self, cpv, metadata):
'''
This function checks files in SRC_URI and look if they are in DESTDIR.
Missing files are returned. If there is no issue, None is returned.
@@ -375,7 +342,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
so this function is a simplist fetch_check
'''
missing_files = []
- ebuild_settings = self.get_ebuild_settings(cpv, metadata)
+ ebuild_settings = self._get_ebuild_settings(cpv, metadata)
files = self.pvar.portdb.getFetchMap(cpv,
ebuild_settings['USE'].split())
@@ -390,10 +357,10 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return None
- def check_fetch_restrict(self, packages_list):
+ def _check_fetch_restrict(self, packages_list):
for p in packages_list:
if 'fetch' in p.metadata['RESTRICT']:
- files = self.get_restricted_fetch_files(p.cpv, p.metadata)
+ files = self._get_restricted_fetch_files(p.cpv, p.metadata)
if files:
message = "Package %s can't download some files." % p.cpv
message += ";Please, download manually the followonig file(s):"
@@ -401,7 +368,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
message += ";- %s then copy it to %s" % (' '.join(x[1]), x[0])
self.error(ERROR_RESTRICTED_DOWNLOAD, message)
- def elog_listener(self, settings, key, logentries, fulltext):
+ def _elog_listener(self, settings, key, logentries, fulltext):
'''
This is a listener for elog.
It's called each time elog is emitting log messages (at end of process).
@@ -440,7 +407,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
self._elog_messages.append(message)
self._error_message = message
- def send_merge_error(self, default):
+ def _send_merge_error(self, default):
# EAPI-2 compliant (at least)
# 'other' phase is ignored except this one, every phase should be there
if self._error_phase in ("setup", "unpack", "prepare", "configure",
@@ -458,8 +425,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
self.error(error_type, self._error_message)
- def get_file_list(self, cpv):
- cat, pv = portage.catsplit(cpv)
+ def _get_file_list(self, cpv):
+ cat, pv = portage.versions.catsplit(cpv)
db = portage.dblink(cat, pv, self.pvar.settings['ROOT'],
self.pvar.settings, treetype="vartree",
vartree=self.pvar.vardb)
@@ -470,20 +437,21 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return db.getcontents().keys()
- def cmp_cpv(self, cpv1, cpv2):
+ def _cmp_cpv(self, cpv1, cpv2):
'''
returns 1 if cpv1 > cpv2
returns 0 if cpv1 = cpv2
returns -1 if cpv1 < cpv2
'''
- return portage.pkgcmp(portage.pkgsplit(cpv1), portage.pkgsplit(cpv2))
+ return portage.versions.pkgcmp(portage.versions.pkgsplit(cpv1),
+ portage.versions.pkgsplit(cpv2))
- def get_newest_cpv(self, cpv_list, installed):
+ def _get_newest_cpv(self, cpv_list, installed):
newer = ""
# get the first cpv following the installed rule
for cpv in cpv_list:
- if self.is_installed(cpv) == installed:
+ if self._is_installed(cpv) == installed:
newer = cpv
break
@@ -491,19 +459,19 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return ""
for cpv in cpv_list:
- if self.is_installed(cpv) == installed:
- if self.cmp_cpv(cpv, newer) == 1:
+ if self._is_installed(cpv) == installed:
+ if self._cmp_cpv(cpv, newer) == 1:
newer = cpv
return newer
- def get_metadata(self, cpv, keys, in_dict = False, add_cache_keys = False):
+ def _get_metadata(self, cpv, keys, in_dict = False, add_cache_keys = False):
'''
This function returns required metadata.
If in_dict is True, metadata is returned in a dict object.
If add_cache_keys is True, cached keys are added to keys in parameter.
'''
- if self.is_installed(cpv):
+ if self._is_installed(cpv):
aux_get = self.pvar.vardb.aux_get
if add_cache_keys:
keys.extend(list(self.pvar.vardb._aux_cache_keys))
@@ -517,7 +485,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
else:
return aux_get(cpv, keys)
- def get_size(self, cpv):
+ def _get_size(self, cpv):
'''
Returns the installed size if the package is installed.
Otherwise, the size of files needed to be downloaded.
@@ -525,15 +493,15 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
only the remaining size will be considered.
'''
size = 0
- if self.is_installed(cpv):
- size = self.get_metadata(cpv, ["SIZE"])[0]
+ if self._is_installed(cpv):
+ size = self._get_metadata(cpv, ["SIZE"])[0]
if size == '':
size = 0
else:
size = int(size)
else:
self
- metadata = self.get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
+ metadata = self._get_metadata(cpv, ["IUSE", "SLOT"], in_dict=True)
package = _emerge.Package.Package(
type_name="ebuild",
@@ -550,11 +518,11 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return size
- def get_cpv_slotted(self, cpv_list):
+ def _get_cpv_slotted(self, cpv_list):
cpv_dict = {}
for cpv in cpv_list:
- slot = self.get_metadata(cpv, ["SLOT"])[0]
+ slot = self._get_metadata(cpv, ["SLOT"])[0]
if slot not in cpv_dict:
cpv_dict[slot] = [cpv]
else:
@@ -562,12 +530,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return cpv_dict
- def filter_free(self, cpv_list, fltlist):
- if len(cpv_list) == 0:
+ def _filter_free(self, cpv_list, fltlist):
+ if not cpv_list:
return cpv_list
def _has_validLicense(cpv):
- metadata = self.get_metadata(cpv, ["LICENSE", "USE", "SLOT"], True)
+ metadata = self._get_metadata(cpv, ["LICENSE", "USE", "SLOT"], True)
return not self.pvar.settings._getMissingLicenses(cpv, metadata)
if FILTER_FREE in fltlist or FILTER_NOT_FREE in fltlist:
@@ -592,7 +560,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return cpv_list
- def filter_newest(self, cpv_list, fltlist):
+ def _filter_newest(self, cpv_list, fltlist):
if len(cpv_list) == 0:
return cpv_list
@@ -603,7 +571,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# we have one package per slot, so it's the newest
return cpv_list
- cpv_dict = self.get_cpv_slotted(cpv_list)
+ cpv_dict = self._get_cpv_slotted(cpv_list)
# slots are sorted (dict), revert them to have newest slots first
slots = cpv_dict.keys()
@@ -615,16 +583,16 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
for k in slots:
# if not_intalled on, no need to check for newest installed
if FILTER_NOT_INSTALLED not in fltlist:
- newest_installed = self.get_newest_cpv(cpv_dict[k], True)
+ newest_installed = self._get_newest_cpv(cpv_dict[k], True)
if newest_installed != "":
cpv_list.append(newest_installed)
- newest_available = self.get_newest_cpv(cpv_dict[k], False)
+ newest_available = self._get_newest_cpv(cpv_dict[k], False)
if newest_available != "":
cpv_list.append(newest_available)
return cpv_list
- def get_all_cp(self, fltlist):
+ def _get_all_cp(self, fltlist):
# NOTES:
# returns a list of cp
#
@@ -647,7 +615,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return cp_list
- def get_all_cpv(self, cp, fltlist, filter_newest=True):
+ def _get_all_cpv(self, cp, fltlist, filter_newest=True):
# NOTES:
# returns a list of cpv
#
@@ -663,7 +631,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list = self.pvar.vardb.match(cp)
elif FILTER_NOT_INSTALLED in fltlist:
for cpv in self.pvar.portdb.match(cp):
- if not self.is_installed(cpv):
+ if not self._is_installed(cpv):
cpv_list.append(cpv)
else:
cpv_list = self.pvar.vardb.match(cp)
@@ -672,15 +640,15 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list.append(cpv)
# free filter
- cpv_list = self.filter_free(cpv_list, fltlist)
+ cpv_list = self._filter_free(cpv_list, fltlist)
# newest filter
if filter_newest:
- cpv_list = self.filter_newest(cpv_list, fltlist)
+ cpv_list = self._filter_newest(cpv_list, fltlist)
return cpv_list
- def id_to_cpv(self, pkgid):
+ def _id_to_cpv(self, pkgid):
'''
Transform the package id (packagekit) to a cpv (portage)
'''
@@ -698,12 +666,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return ret[0] + "-" + version
- def cpv_to_id(self, cpv):
+ def _cpv_to_id(self, cpv):
'''
Transform the cpv (portage) to a package id (packagekit)
'''
- package, version, rev = portage.pkgsplit(cpv)
- pkg_keywords, repo, slot = self.get_metadata(cpv,
+ package, version, rev = portage.versions.pkgsplit(cpv)
+ pkg_keywords, repo, slot = self._get_metadata(cpv,
["KEYWORDS", "repository", "SLOT"])
pkg_keywords = pkg_keywords.split()
@@ -717,7 +685,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# if no keywords, check in package.keywords
if not keywords:
key_dict = self.pvar.settings.pkeywordsdict.get(
- portage.dep_getkey(cpv))
+ portage.dep.dep_getkey(cpv))
if key_dict:
for _, keys in key_dict.iteritems():
for x in keys:
@@ -725,7 +693,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
if not keywords:
keywords.append("no keywords")
- self.message(MESSAGE_UNKNOWN, "No keywords have been found for %s" % cpv)
+ self.message(MESSAGE_UNKNOWN,
+ "No keywords have been found for %s" % cpv)
# don't want to see -r0
if rev != "r0":
@@ -735,12 +704,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
version = version + ':' + slot
# if installed, repo should be 'installed', packagekit rule
- if self.is_installed(cpv):
+ if self._is_installed(cpv):
repo = "installed"
return get_package_id(package, version, ' '.join(keywords), repo)
- def get_packages_required(self, cpv_input, recursive):
+ def _get_required_packages(self, cpv_input, recursive):
'''
Get a list of cpv and recursive parameter.
Returns the list of packages required for cpv list.
@@ -758,8 +727,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# 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]):
+ 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),
@@ -792,14 +761,44 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
def filter_cpv_input(x): return x.cpv not in cpv_input
return filter(filter_cpv_input, packages_list)
- def package(self, cpv, info=None):
- desc = self.get_metadata(cpv, ["DESCRIPTION"])[0]
+
+class PackageKitPortageBackend(PackageKitPortageMixin, PackageKitBaseBackend):
+
+ # Portage <-> PackageKit groups map
+ GROUP_MAP = {
+ 'accessibility': GROUP_ACCESSIBILITY,
+ 'development': GROUP_PROGRAMMING,
+ 'games': GROUP_GAMES,
+ 'gnome': GROUP_DESKTOP_GNOME,
+ 'kde': GROUP_DESKTOP_KDE,
+ 'lxde': GROUP_DESKTOP_OTHER,
+ 'multimedia': GROUP_MULTIMEDIA,
+ 'networking': GROUP_NETWORK,
+ 'office': GROUP_OFFICE,
+ 'science': GROUP_SCIENCE,
+ 'system': GROUP_SYSTEM,
+ 'security': GROUP_SECURITY,
+ 'x11': GROUP_OTHER,
+ 'xfce': GROUP_DESKTOP_XFCE,
+ 'unknown': GROUP_UNKNOWN,
+ }
+
+ def __sigquit(self, signum, frame):
+ raise SystemExit(1)
+
+ def __init__(self, args):
+ signal.signal(signal.SIGQUIT, self.__sigquit)
+ PackageKitPortageMixin.__init__(self)
+ PackageKitBaseBackend.__init__(self, args)
+
+ def _package(self, cpv, info=None):
+ desc = self._get_metadata(cpv, ["DESCRIPTION"])[0]
if not info:
- if self.is_installed(cpv):
+ if self._is_installed(cpv):
info = INFO_INSTALLED
else:
info = INFO_AVAILABLE
- PackageKitBaseBackend.package(self, self.cpv_to_id(cpv), info, desc)
+ self.package(self._cpv_to_id(cpv), info, desc)
def get_depends(self, filters, pkgs, recursive):
# TODO: use only myparams ?
@@ -820,8 +819,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list = []
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ cpv = self._id_to_cpv(pkg)
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_PACKAGE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
@@ -888,12 +887,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
del tmp_list
# free filter
- cpv_list = self.filter_free(cpv_list, fltlist)
+ cpv_list = self._filter_free(cpv_list, fltlist)
for cpv in cpv_list:
# prevent showing input packages
if '=' + cpv not in cpv_input:
- self.package(cpv)
+ self._package(cpv)
def get_details(self, pkgs):
self.status(STATUS_INFO)
@@ -904,21 +903,22 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
pkg_processed = 0.0
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_PACKAGE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
- metadata = self.get_metadata(cpv,
+ metadata = self._get_metadata(cpv,
["DESCRIPTION", "HOMEPAGE", "IUSE", "LICENSE", "SLOT"],
in_dict=True)
- license = self.get_real_license_str(cpv, metadata)
+ license = self._get_real_license_str(cpv, metadata)
- self.details(self.cpv_to_id(cpv), license, get_group(cpv),
- metadata["DESCRIPTION"], metadata["HOMEPAGE"],
- self.get_size(cpv))
+ self.details(self._cpv_to_id(cpv), license,
+ self._get_pk_group(cpv),
+ metadata["DESCRIPTION"], metadata["HOMEPAGE"],
+ self._get_size(cpv))
pkg_processed += 100.0
self.percentage(int(pkg_processed/nb_pkg))
@@ -934,19 +934,19 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
pkg_processed = 0.0
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_PACKAGE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
- if not self.is_installed(cpv):
+ if not self._is_installed(cpv):
self.error(ERROR_CANNOT_GET_FILELIST,
"get-files is only available for installed packages")
continue
- files = self.get_file_list(cpv)
+ files = self._get_file_list(cpv)
files = sorted(files)
files = ";".join(files)
@@ -963,13 +963,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
self.percentage(0)
fltlist = filters.split(';')
- cp_list = self.get_all_cp(fltlist)
+ cp_list = self._get_all_cp(fltlist)
nb_cp = float(len(cp_list))
cp_processed = 0.0
- for cp in self.get_all_cp(fltlist):
- for cpv in self.get_all_cpv(cp, fltlist):
- self.package(cpv)
+ for cp in self._get_all_cp(fltlist):
+ for cpv in self._get_all_cpv(cp, fltlist):
+ self._package(cpv)
cp_processed += 100.0
self.percentage(int(cp_processed/nb_cp))
@@ -999,7 +999,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
if available_layman_db.overlays[o].is_official() \
and available_layman_db.overlays[o].is_supported():
self.repo_detail(o, o,
- is_repository_enabled(installed_layman_db, o))
+ self._is_repo_enabled(installed_layman_db, o))
def get_requires(self, filters, pkgs, recursive):
# TODO: manage non-installed package
@@ -1024,20 +1024,20 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_PACKAGE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
- if not self.is_installed(cpv):
+ if not self._is_installed(cpv):
self.error(ERROR_CANNOT_GET_REQUIRES,
"get-requires is only available for installed packages at the moment")
continue
cpv_input.append(cpv)
- packages_list = self.get_packages_required(cpv_input, recursive)
+ packages_list = self._get_required_packages(cpv_input, recursive)
# now we can populate cpv_list
cpv_list = []
@@ -1046,12 +1046,12 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
del packages_list
# free filter
- cpv_list = self.filter_free(cpv_list, fltlist)
+ cpv_list = self._filter_free(cpv_list, fltlist)
for cpv in cpv_list:
# prevent showing input packages
if '=' + cpv not in cpv_input:
- self.package(cpv)
+ self._package(cpv)
def get_update_detail(self, pkgs):
# TODO: a lot of informations are missing
@@ -1067,17 +1067,17 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
bugzilla_url = ""
cve_url = ""
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
if not self.pvar.portdb.cpv_exists(cpv):
self.message(MESSAGE_COULD_NOT_FIND_PACKAGE, "could not find %s" % pkg)
- for cpv in self.pvar.vardb.match(portage.pkgsplit(cpv)[0]):
+ for cpv in self.pvar.vardb.match(portage.versions.pkgsplit(cpv)[0]):
updates.append(cpv)
updates = "&".join(updates)
# temporarily set vendor_url = homepage
- homepage = self.get_metadata(cpv, ["HOMEPAGE"])[0]
+ homepage = self._get_metadata(cpv, ["HOMEPAGE"])[0]
vendor_url = homepage
issued = ""
updated = ""
@@ -1126,8 +1126,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list_inst = self.pvar.vardb.match(cp)
cpv_list_avai = self.pvar.portdb.match(cp)
- cpv_dict_inst = self.get_cpv_slotted(cpv_list_inst)
- cpv_dict_avai = self.get_cpv_slotted(cpv_list_avai)
+ cpv_dict_inst = self._get_cpv_slotted(cpv_list_inst)
+ cpv_dict_avai = self._get_cpv_slotted(cpv_list_avai)
dict_upda = {}
dict_down = {}
@@ -1148,7 +1148,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
tmp_list_avai.reverse()
for cpv in tmp_list_avai:
- if self.cmp_cpv(cpv_inst, cpv) == -1:
+ if self._cmp_cpv(cpv_inst, cpv) == -1:
cpv_list_updates.append(cpv)
else: # because the list is sorted
break
@@ -1164,13 +1164,13 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
else:
dict_down[s] = [tmp_list_avai.pop()]
- cpv_list_updates = self.filter_free(cpv_list_updates, fltlist)
+ cpv_list_updates = self._filter_free(cpv_list_updates, fltlist)
if len(cpv_list_updates) == 0:
break
if FILTER_NEWEST in fltlist:
- best_cpv = portage.best(cpv_list_updates)
+ best_cpv = portage.versions.best(cpv_list_updates)
cpv_list_updates = [best_cpv]
dict_upda[s] = cpv_list_updates
@@ -1185,28 +1185,28 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
initial_atoms=self.pvar.root_config.setconfig.getSetAtoms("security")):
# send update message and remove atom from cpv_updates
if atom.cp in cpv_updates:
- slot = self.get_metadata(atom.cpv, ["SLOT"])[0]
+ slot = self._get_metadata(atom.cpv, ["SLOT"])[0]
if slot in cpv_updates[atom.cp]:
tmp_cpv_list = cpv_updates[atom.cp][slot][:]
for cpv in tmp_cpv_list:
- if self.cmp_cpv(cpv, atom.cpv) >= 0:
+ if self._cmp_cpv(cpv, atom.cpv) >= 0:
# cpv is a security update and removed from list
cpv_updates[atom.cp][slot].remove(cpv)
- self.package(cpv, INFO_SECURITY)
+ self._package(cpv, INFO_SECURITY)
else: # update also non-world and non-system packages if security
- self.package(atom.cpv, INFO_SECURITY)
+ self._package(atom.cpv, INFO_SECURITY)
# downgrades
for cp in cpv_downgra:
for slot in cpv_downgra[cp]:
for cpv in cpv_downgra[cp][slot]:
- self.package(cpv, INFO_IMPORTANT)
+ self._package(cpv, INFO_IMPORTANT)
# normal updates
for cp in cpv_updates:
for slot in cpv_updates[cp]:
for cpv in cpv_updates[cp][slot]:
- self.package(cpv, INFO_NORMAL)
+ self._package(cpv, INFO_NORMAL)
def simulate_install_packages(self, pkgs):
return self._install_packages(False, pkgs, simulate=True)
@@ -1228,14 +1228,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list = []
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_PACKAGE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
- if self.is_installed(cpv):
+ if self._is_installed(cpv):
self.error(ERROR_PACKAGE_ALREADY_INSTALLED,
"Package %s is already installed" % pkg)
continue
@@ -1266,7 +1266,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return
# check fetch restrict, can stop the function via error signal
- self.check_fetch_restrict(depgraph.altlist())
+ self._check_fetch_restrict(depgraph.altlist())
self.status(STATUS_INSTALL)
@@ -1274,30 +1274,30 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return
# get elog messages
- portage.elog.add_listener(self.elog_listener)
+ portage.elog.add_listener(self._elog_listener)
try:
- self.block_output()
+ self._block_output()
# compiling/installing
mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
self.pvar.trees, self.pvar.mtimedb, myopts, None,
depgraph.altlist(), favorites, depgraph.schedulerGraph())
rval = mergetask.merge()
finally:
- self.unblock_output()
+ self._unblock_output()
# when an error is found print error messages
if rval != os.EX_OK:
- self.send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
+ self._send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
# show elog messages and clean
- portage.elog.remove_listener(self.elog_listener)
+ portage.elog.remove_listener(self._elog_listener)
for msg in self._elog_messages:
# TODO: use specific message ?
self.message(MESSAGE_UNKNOWN, msg)
self._elog_messages = []
- self.send_configuration_file_message()
+ self._signal_config_update()
def refresh_cache(self, force):
# NOTES: can't manage progress even if it could be better
@@ -1319,7 +1319,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
os.remove(timestamp_path)
try:
- self.block_output()
+ self._block_output()
for o in installed_layman_db.overlays.keys():
installed_layman_db.sync(o, quiet=True)
_emerge.actions.action_sync(self.pvar.settings, self.pvar.trees,
@@ -1327,7 +1327,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
except:
self.error(ERROR_INTERNAL_ERROR, traceback.format_exc())
finally:
- self.unblock_output()
+ self._unblock_output()
def remove_packages(self, allowdep, autoremove, pkgs):
return self._remove_packages(allowdep, autoremove, pkgs)
@@ -1355,20 +1355,20 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# create cpv_list
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_PACKAGE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
- if not self.is_installed(cpv):
+ if not self._is_installed(cpv):
self.error(ERROR_PACKAGE_NOT_INSTALLED,
"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:
+ if portage.versions.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
@@ -1381,7 +1381,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
"Portage backend do not implement autoremove option")
# get packages needing candidates for removal
- required_packages = self.get_packages_required(cpv_list, recursive=True)
+ required_packages = self._get_required_packages(cpv_list, recursive=True)
# if there are required packages, allowdep must be on
if required_packages and not allowdep:
@@ -1403,7 +1403,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# and now, packages we want really to remove
for cpv in cpv_list:
- metadata = self.get_metadata(cpv, [],
+ metadata = self._get_metadata(cpv, [],
in_dict=True, add_cache_keys=True)
package = _emerge.Package.Package(
type_name="ebuild",
@@ -1424,24 +1424,24 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
favorites.append('=' + p.cpv)
# get elog messages
- portage.elog.add_listener(self.elog_listener)
+ portage.elog.add_listener(self._elog_listener)
# now, we can remove
try:
- self.block_output()
+ self._block_output()
mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
self.pvar.trees, self.pvar.mtimedb, mergelist=packages,
myopts={}, spinner=None, favorites=favorites, digraph=None)
rval = mergetask.merge()
finally:
- self.unblock_output()
+ self._unblock_output()
# when an error is found print error messages
if rval != os.EX_OK:
- self.send_merge_error(ERROR_PACKAGE_FAILED_TO_REMOVE)
+ self._send_merge_error(ERROR_PACKAGE_FAILED_TO_REMOVE)
# show elog messages and clean
- portage.elog.remove_listener(self.elog_listener)
+ portage.elog.remove_listener(self._elog_listener)
for msg in self._elog_messages:
# TODO: use specific message ?
self.message(MESSAGE_UNKNOWN, msg)
@@ -1472,7 +1472,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# disabling (removing) a db
# if repository already disabled, ignoring
- if not enable and is_repository_enabled(installed_layman_db, repoid):
+ if not enable and self._is_repo_enabled(installed_layman_db, repoid):
try:
installed_layman_db.delete(installed_layman_db.select(repoid))
except Exception, e:
@@ -1482,15 +1482,15 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# enabling (adding) a db
# if repository already enabled, ignoring
- if enable and not is_repository_enabled(installed_layman_db, repoid):
+ if enable and not self._is_repo_enabled(installed_layman_db, repoid):
try:
# TODO: clean the trick to prevent outputs from layman
- self.block_output()
+ self._block_output()
installed_layman_db.add(available_layman_db.select(repoid),
quiet=True)
- self.unblock_output()
+ self._unblock_output()
except Exception, e:
- self.unblock_output()
+ self._unblock_output()
self.error(ERROR_INTERNAL_ERROR,
"Failed to enable repository "+repoid+" : "+str(e))
return
@@ -1501,7 +1501,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
self.percentage(0)
fltlist = filters.split(';')
- cp_list = self.get_all_cp(fltlist)
+ cp_list = self._get_all_cp(fltlist)
nb_cp = float(len(cp_list))
cp_processed = 0.0
@@ -1515,8 +1515,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
for cp in cp_list:
if s.match(cp):
- for cpv in self.get_all_cpv(cp, fltlist):
- self.package(cpv)
+ for cpv in self._get_all_cpv(cp, fltlist):
+ self._package(cpv)
cp_processed += 100.0
self.percentage(int(cp_processed/nb_cp))
@@ -1530,10 +1530,10 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
self.percentage(0)
fltlist = filters.split(';')
- cp_list = self.get_all_cp(fltlist)
+ cp_list = self._get_all_cp(fltlist)
nb_cp = float(len(cp_list))
cp_processed = 0.0
- search_list = get_search_list(keys)
+ search_list = self._get_search_list(keys)
for cp in cp_list:
# unfortunatelly, everything is related to cpv, not cp
@@ -1543,14 +1543,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
# newest filter can't be executed now
# because some cpv are going to be filtered by search conditions
# and newest filter could be alterated
- for cpv in self.get_all_cpv(cp, fltlist, filter_newest=False):
+ for cpv in self._get_all_cpv(cp, fltlist, filter_newest=False):
match = True
- metadata = self.get_metadata(cpv,
+ metadata = self._get_metadata(cpv,
["DESCRIPTION", "HOMEPAGE", "IUSE",
"LICENSE", "repository", "SLOT"],
in_dict=True)
# update LICENSE to correspond to system settings
- metadata["LICENSE"] = self.get_real_license_str(cpv, metadata)
+ metadata["LICENSE"] = self._get_real_license_str(cpv, metadata)
for s in search_list:
found = False
for x in metadata:
@@ -1564,10 +1564,10 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list.append(cpv)
# newest filter
- cpv_list = self.filter_newest(cpv_list, fltlist)
+ cpv_list = self._filter_newest(cpv_list, fltlist)
for cpv in cpv_list:
- self.package(cpv)
+ self._package(cpv)
cp_processed += 100.0
self.percentage(int(cp_processed/nb_cp))
@@ -1601,14 +1601,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
searchre = re.compile("/" + key + "$", re.IGNORECASE)
# free filter
- cpv_list = self.filter_free(cpv_list, fltlist)
+ cpv_list = self._filter_free(cpv_list, fltlist)
nb_cpv = float(len(cpv_list))
for cpv in cpv_list:
- for f in self.get_file_list(cpv):
+ for f in self._get_file_list(cpv):
if (is_full_path and key == f) \
or (not is_full_path and searchre.search(f)):
- self.package(cpv)
+ self._package(cpv)
break
cpv_processed += 100.0
@@ -1623,14 +1623,14 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
self.percentage(0)
fltlist = filters.split(';')
- cp_list = self.get_all_cp(fltlist)
+ cp_list = self._get_all_cp(fltlist)
nb_cp = float(len(cp_list))
cp_processed = 0.0
for cp in cp_list:
- if get_group(cp) == group:
- for cpv in self.get_all_cpv(cp, fltlist):
- self.package(cpv)
+ if self._get_pk_group(cp) == group:
+ for cpv in self._get_all_cpv(cp, fltlist):
+ self._package(cpv)
cp_processed += 100.0
self.percentage(int(cp_processed/nb_cp))
@@ -1649,7 +1649,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
keys_list = keys.split(' ')
for k in keys_list[:]:
if "/" in k:
- cat, cp = portage.catsplit(k)
+ cat, cp = portage.versions.catsplit(k)
categories.append(cat)
keys_list[keys_list.index(k)] = cp
@@ -1661,7 +1661,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
elif len(categories) == 1:
category_filter = categories[0]
- # do not use get_search_list because of this category feature
+ # do not use self._get_search_list because of this category feature
search_list = []
for k in keys_list:
# not done entirely by pk-transaction
@@ -1669,17 +1669,17 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
search_list.append(re.compile(k, re.IGNORECASE))
fltlist = filters.split(';')
- cp_list = self.get_all_cp(fltlist)
+ cp_list = self._get_all_cp(fltlist)
nb_cp = float(len(cp_list))
cp_processed = 0.0
for cp in cp_list:
if category_filter:
- cat, pkg_name = portage.catsplit(cp)
+ cat, pkg_name = portage.versions.catsplit(cp)
if cat != category_filter:
continue
else:
- pkg_name = portage.catsplit(cp)[1]
+ pkg_name = portage.versions.catsplit(cp)[1]
found = True
# pkg name has to correspond to _every_ keys
@@ -1688,8 +1688,8 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
found = False
break
if found:
- for cpv in self.get_all_cpv(cp, fltlist):
- self.package(cpv)
+ for cpv in self._get_all_cpv(cp, fltlist):
+ self._package(cpv)
cp_processed += 100.0
self.percentage(int(cp_processed/nb_cp))
@@ -1715,9 +1715,9 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
cpv_list = []
for pkg in pkgs:
- cpv = self.id_to_cpv(pkg)
+ cpv = self._id_to_cpv(pkg)
- if not self.is_cpv_valid(cpv):
+ if not self._is_cpv_valid(cpv):
self.error(ERROR_UPDATE_NOT_FOUND,
"Package %s was not found" % pkg)
continue
@@ -1748,7 +1748,7 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return
# check fetch restrict, can stop the function via error signal
- self.check_fetch_restrict(depgraph.altlist())
+ self._check_fetch_restrict(depgraph.altlist())
self.status(STATUS_INSTALL)
@@ -1756,30 +1756,30 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return
# get elog messages
- portage.elog.add_listener(self.elog_listener)
+ portage.elog.add_listener(self._elog_listener)
try:
- self.block_output()
+ self._block_output()
# compiling/installing
mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
self.pvar.trees, self.pvar.mtimedb, myopts, None,
depgraph.altlist(), favorites, depgraph.schedulerGraph())
rval = mergetask.merge()
finally:
- self.unblock_output()
+ self._unblock_output()
# when an error is found print error messages
if rval != os.EX_OK:
- self.send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
+ self._send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
# show elog messages and clean
- portage.elog.remove_listener(self.elog_listener)
+ portage.elog.remove_listener(self._elog_listener)
for msg in self._elog_messages:
# TODO: use specific message ?
self.message(MESSAGE_UNKNOWN, msg)
self._elog_messages = []
- self.send_configuration_file_message()
+ self._signal_config_update()
def update_system(self, only_trusted):
self.status(STATUS_RUNNING)
@@ -1812,35 +1812,35 @@ class PackageKitPortageBackend(PackageKitBaseBackend):
return
# check fetch restrict, can stop the function via error signal
- self.check_fetch_restrict(depgraph.altlist())
+ self._check_fetch_restrict(depgraph.altlist())
self.status(STATUS_INSTALL)
# get elog messages
- portage.elog.add_listener(self.elog_listener)
+ portage.elog.add_listener(self._elog_listener)
try:
- self.block_output()
+ self._block_output()
# compiling/installing
mergetask = _emerge.Scheduler.Scheduler(self.pvar.settings,
self.pvar.trees, self.pvar.mtimedb, myopts, None,
depgraph.altlist(), None, depgraph.schedulerGraph())
rval = mergetask.merge()
finally:
- self.unblock_output()
+ self._unblock_output()
# when an error is found print error messages
if rval != os.EX_OK:
- self.send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
+ self._send_merge_error(ERROR_PACKAGE_FAILED_TO_INSTALL)
# show elog messages and clean
- portage.elog.remove_listener(self.elog_listener)
+ portage.elog.remove_listener(self._elog_listener)
for msg in self._elog_messages:
# TODO: use specific message ?
self.message(MESSAGE_UNKNOWN, msg)
self._elog_messages = []
- self.send_configuration_file_message()
+ self._signal_config_update()
def main():
backend = PackageKitPortageBackend("")
More information about the PackageKit-commit
mailing list