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

Richard Hughes hughsient at kemper.freedesktop.org
Wed Feb 18 04:50:19 PST 2009


 backends/alpm/pk-backend-alpm.c            |  122 ++--
 backends/dummy/pk-backend-dummy.c          |   37 +
 backends/yum/yumBackend.py                 |    1 
 client/pk-console.c                        |   10 
 configure.ac                               |    6 
 docs/api/spec/pk-concepts.xml              |    4 
 docs/app-install-v1.draft                  |    4 
 lib/packagekit-glib/pk-client.c            |   60 +
 lib/packagekit-glib/pk-enum.c              |    2 
 lib/packagekit-glib/pk-enum.h              |    2 
 lib/packagekit-qt/src/CMakeLists.txt       |    1 
 lib/packagekit-qt/src/Makefile.am          |    2 
 lib/packagekit-qt/src/client.cpp           |   32 +
 lib/packagekit-qt/src/client.h             |   13 
 lib/packagekit-qt/src/clientprivate.h      |    2 
 lib/packagekit-qt/src/package.h            |    1 
 lib/packagekit-qt/test/transactiontest.cpp |    8 
 lib/packagekit-qt/test/transactiontest.h   |    2 
 po/pt_BR.po                                |  877 ++++++++++++++---------------
 19 files changed, 694 insertions(+), 492 deletions(-)

New commits:
commit 75214fd81bfb3dd3d15813ef8fb22630ea467018
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Feb 18 12:41:06 2009 +0000

    dummy: add a simple rollback action

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index 25d4ebb..a800522 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -557,12 +557,47 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **packages)
 }
 
 /**
+ * backend_rollback_timeout:
+ */
+static gboolean
+backend_rollback_timeout (gpointer data)
+{
+	PkBackend *backend = (PkBackend *) data;
+	if (_progress_percentage == 0) {
+		_updated_gtkhtml = FALSE;
+		_updated_kernel = FALSE;
+		_updated_powertop = FALSE;
+		pk_backend_set_status (backend, PK_STATUS_ENUM_ROLLBACK);
+	}
+	if (_progress_percentage == 20)
+		pk_backend_set_allow_cancel (backend, FALSE);
+	if (_progress_percentage == 100) {
+		pk_backend_finished (backend);
+		return FALSE;
+	}
+	_progress_percentage += 10;
+	pk_backend_set_percentage (backend, _progress_percentage);
+	return TRUE;
+}
+
+
+/**
  * backend_rollback:
  */
 static void
 backend_rollback (PkBackend *backend, const gchar *transaction_id)
 {
-	pk_backend_finished (backend);
+	/* allow testing error condition */
+	if (egg_strequal (transaction_id, "/397_eeecadad_data")) {
+		pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR, "invalid transaction_id");
+		pk_backend_finished (backend);
+		return;
+	}
+	_progress_percentage = 0;
+	pk_backend_set_percentage (backend, PK_BACKEND_PERCENTAGE_INVALID);
+	pk_backend_set_allow_cancel (backend, TRUE);
+	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+	_signal_timeout = g_timeout_add (2000, backend_rollback_timeout, backend);
 }
 
 /**
commit 0bb19f54296e2b54a3c16abebbcdf311430600cf
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Feb 18 12:40:50 2009 +0000

    bugfix: fix up resolve in pkcon and from libpackagekit-glib

diff --git a/client/pk-console.c b/client/pk-console.c
index fef0a17..8346b4b 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -1703,6 +1703,8 @@ pk_console_get_summary (void)
 		g_string_append_printf (string, "  %s\n", "get-update-detail [package]");
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_PACKAGES))
 		g_string_append_printf (string, "  %s\n", "get-packages");
+	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_ROLLBACK))
+		g_string_append_printf (string, "  %s\n", "rollback");
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_GET_REPO_LIST))
 		g_string_append_printf (string, "  %s\n", "repo-list");
 	if (pk_bitfield_contain (roles, PK_ROLE_ENUM_REPO_ENABLE))
@@ -1972,6 +1974,14 @@ main (int argc, char *argv[])
 		ret = pk_client_accept_eula (client_async, value, &error);
 		maybe_sync = FALSE;
 
+	} else if (strcmp (mode, "rollback") == 0) {
+		if (value == NULL) {
+			/* TRANSLATORS: geeky error, 99.9999% of users won't see this */
+			error = g_error_new (1, 0, "%s", _("A transaction identifier (tid) is required"));
+			goto out;
+		}
+		ret = pk_client_rollback (client_async, value, &error);
+
 	} else if (strcmp (mode, "update") == 0) {
 		if (value == NULL) {
 			/* do the system update */
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 7e2ab78..68debd3 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -2265,6 +2265,29 @@ pk_client_get_update_detail (PkClient *client, gchar **package_ids, GError **err
 }
 
 /**
+ * pk_client_rollback_action:
+ **/
+static gboolean
+pk_client_rollback_action (PkClient *client, const gchar *transaction_id, GError **error)
+{
+	gboolean ret;
+
+	g_return_val_if_fail (client != NULL, FALSE);
+	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
+	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+	/* check to see if we have a valid proxy */
+	if (client->priv->proxy == NULL) {
+		*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
+		return FALSE;
+	}
+	ret = dbus_g_proxy_call (client->priv->proxy, "Rollback", error,
+				 G_TYPE_STRING, transaction_id,
+				 G_TYPE_INVALID, G_TYPE_INVALID);
+	return ret;
+}
+
+/**
  * pk_client_rollback:
  * @client: a valid #PkClient instance
  * @transaction_id: a transaction_id structure
@@ -2279,6 +2302,7 @@ gboolean
 pk_client_rollback (PkClient *client, const gchar *transaction_id, GError **error)
 {
 	gboolean ret;
+	GError *error_local = NULL;
 
 	g_return_val_if_fail (PK_IS_CLIENT (client), FALSE);
 	g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
@@ -2299,15 +2323,33 @@ pk_client_rollback (PkClient *client, const gchar *transaction_id, GError **erro
 	client->priv->role = PK_ROLE_ENUM_ROLLBACK;
 	client->priv->cached_transaction_id = g_strdup (transaction_id);
 
-	/* check to see if we have a valid proxy */
-	if (client->priv->proxy == NULL) {
-		if (error != NULL)
-			*error = g_error_new (PK_CLIENT_ERROR, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
-		return FALSE;
+	/* hopefully do the operation first time */
+	ret = pk_client_rollback_action (client, transaction_id, &error_local);
+
+	/* we were refused by policy */
+	if (!ret && pk_client_error_refused_by_policy (error_local)) {
+		/* try to get auth */
+		if (pk_client_error_auth_obtain (error_local)) {
+			/* clear old error */
+			g_clear_error (&error_local);
+
+			/* get a new tid */
+			ret = pk_client_allocate_transaction_id (client, &error_local);
+			if (!ret)
+				goto out;
+
+			/* retry the action now we have got auth */
+			ret = pk_client_rollback_action (client, transaction_id, &error_local);
+		}
 	}
-	ret = dbus_g_proxy_call (client->priv->proxy, "Rollback", error,
-				 G_TYPE_STRING, transaction_id,
-				 G_TYPE_INVALID, G_TYPE_INVALID);
+
+out:
+	/* we failed one of these, return the error to the user */
+	if (!ret) {
+		pk_client_error_fixup (&error_local);
+		g_propagate_error (error, error_local);
+	}
+
 	if (ret && !client->priv->is_finished) {
 		/* allow clients to respond in the status changed callback */
 		pk_client_change_status (client, PK_STATUS_ENUM_WAIT);
@@ -2316,7 +2358,7 @@ pk_client_rollback (PkClient *client, const gchar *transaction_id, GError **erro
 		if (client->priv->synchronous)
 			g_main_loop_run (client->priv->loop);
 	}
-	pk_client_error_fixup (error);
+
 	return ret;
 }
 
commit 53c05120678bae9cd00bc43167723619db3a3995
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Wed Feb 18 12:14:48 2009 +0000

    yum: adds an auto_close attribute to the rpmdb object
    
    This patch to PK should enable it to use the feature (if yum is patched.
    If yum is not patched then this attribute set should do nothing at all)

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 502fe0d..47ffc5c 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2322,6 +2322,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
 
         # set bandwidth throttle to 90%
         self.yumbase.conf.throttle = "90%"
+        self.yumbase.rpmdb.auto_close = True
         self.dnlCallback = DownloadCallback(self, showNames=True)
         self.yumbase.repos.setProgressBar(self.dnlCallback)
 
commit bbea3ddf2219687d43fe4a623d68325999c1dd11
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Feb 18 12:03:35 2009 +0000

    bugfix: the QT lib now depends on QtSql, so add this to the configure

diff --git a/configure.ac b/configure.ac
index 9324035..1ce261c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -120,6 +120,7 @@ POLKIT_GRANT_REQUIRED=0.8
 QTCORE_REQUIRED=4.4.0
 QTDBUS_REQUIRED=4.4.0
 QTGUI_REQUIRED=4.4.0
+QTSQL_REQUIRED=4.4.0
 
 dnl ---------------------------------------------------------------------------
 dnl - Make above strings available for packaging files (e.g. rpm spec files)
@@ -168,6 +169,11 @@ if test x$enable_qt = xyes; then
 	AC_SUBST(QTGUI_CFLAGS)
 	AC_SUBST(QTGUI_LIBS)
 
+
+	PKG_CHECK_MODULES(QTSQL, QtSql >= $QTSQL_REQUIRED)
+	AC_SUBST(QTSQL_CFLAGS)
+	AC_SUBST(QTSQL_LIBS)
+
 	PKG_CHECK_MODULES(CPPUNIT, cppunit)
 	AC_SUBST(CPPUNIT_CFLAGS)
 	AC_SUBST(CPPUNIT_LIBS)
diff --git a/lib/packagekit-qt/src/Makefile.am b/lib/packagekit-qt/src/Makefile.am
index fa7e8ff..ff26355 100644
--- a/lib/packagekit-qt/src/Makefile.am
+++ b/lib/packagekit-qt/src/Makefile.am
@@ -5,6 +5,7 @@ NULL =
 INCLUDES = \
 	$(QTCORE_CFLAGS)					\
 	$(QTDBUS_CFLAGS)					\
+	$(QTSQL_CFLAGS)						\
 	$(POLKIT_CFLAGS)					\
 	-DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
 
@@ -60,6 +61,7 @@ libpackagekit_qt_la_SOURCES =					\
 libpackagekit_qt_la_LIBADD =					\
 	$(QTCORE_LIBS)						\
 	$(QTDBUS_LIBS)						\
+	$(QTSQL_LIBS)						\
 	$(POLKIT_LIBS)						\
 	$(NULL)
 
commit 50d39435a110685b41b811d871992e7b915c96e6
Author: Igor Pires Soares <igorsoares at gmail.com>
Date:   Wed Feb 18 03:48:55 2009 +0000

    Updated Brazilian Portuguese translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 17e9fd0..2cc76e0 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,15 +1,15 @@
 # Brazilian Portuguese translation of PackageKit.
-# Copyright (C) 2008 Free Software Foundation, Inc.
+# Copyright (C) 2008,2009 Free Software Foundation, Inc.
 # This file is distributed under the same license as the packagekit package.
 #
-# Igor Pires Soares <igor at projetofedora.org>, 2008.
+# Igor Pires Soares <igor at projetofedora.org>, 2008,2009.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-01-15 16:57+0000\n"
-"PO-Revision-Date: 2008-11-24 11:29-0300\n"
+"POT-Creation-Date: 2009-02-17 08:37+0000\n"
+"PO-Revision-Date: 2009-02-18 00:44-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -22,695 +22,760 @@ msgstr ""
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:230
 msgid "Transaction"
-msgstr ""
+msgstr "Transação"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
 #: ../client/pk-console.c:232
 msgid "System time"
-msgstr ""
+msgstr "Horário do sistema"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
 #: ../client/pk-console.c:234
 msgid "Succeeded"
-msgstr ""
+msgstr "Concluído"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:234
+#: ../client/pk-console.c:401
 msgid "True"
-msgstr ""
+msgstr "Verdadeiro"
 
-#: ../client/pk-console.c:234 ../client/pk-console.c:377
+#: ../client/pk-console.c:234
+#: ../client/pk-console.c:401
 msgid "False"
-msgstr ""
+msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #: ../client/pk-console.c:236
 msgid "Role"
-msgstr ""
+msgstr "Modo"
 
 #. TRANSLATORS: this is The duration of the transaction
 #: ../client/pk-console.c:241
 msgid "Duration"
-msgstr ""
+msgstr "Duração"
 
 #: ../client/pk-console.c:241
 msgid "(seconds)"
-msgstr ""
+msgstr "(segundos)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #: ../client/pk-console.c:245
-#, fuzzy
 msgid "Command line"
-msgstr "O comando falhou"
+msgstr "Linha de comando"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
 #: ../client/pk-console.c:247
 msgid "User ID"
-msgstr ""
+msgstr "ID do usuário"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
 #: ../client/pk-console.c:254
 msgid "Username"
-msgstr ""
+msgstr "Nome de usuário"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
 #: ../client/pk-console.c:258
 msgid "Real name"
-msgstr ""
+msgstr "Nome real"
 
 #: ../client/pk-console.c:266
-#, fuzzy
 msgid "Affected packages:"
-msgstr "Atualizar pacote"
+msgstr "Pacotes afetados:"
 
 #: ../client/pk-console.c:268
 msgid "Affected packages: None"
-msgstr ""
+msgstr "Pacotes afetados: nenhum"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
 #: ../client/pk-console.c:293
 msgid "Distribution"
-msgstr ""
+msgstr "Distribuição"
 
 #. TRANSLATORS: this is type of update, stable or testing
 #: ../client/pk-console.c:295
 msgid "Type"
-msgstr ""
+msgstr "Tipo"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297 ../client/pk-console.c:319
+#: ../client/pk-console.c:297
+#: ../client/pk-console.c:320
 msgid "Summary"
-msgstr ""
+msgstr "Sumário"
 
 #. TRANSLATORS: this is the group category name
 #: ../client/pk-console.c:309
 msgid "Category"
-msgstr ""
+msgstr "Categoria"
 
 #. TRANSLATORS: this is group identifier
 #: ../client/pk-console.c:311
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
 #: ../client/pk-console.c:314
 msgid "Parent"
-msgstr ""
+msgstr "Pai"
 
-#: ../client/pk-console.c:316
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:317
 msgid "Name"
-msgstr ""
+msgstr "Nome"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:322
+#: ../client/pk-console.c:323
 msgid "Icon"
-msgstr ""
+msgstr "Ícone"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:337
+#: ../client/pk-console.c:338
 msgid "Details about the update:"
 msgstr "Detalhes sobre a atualização:"
 
-#: ../client/pk-console.c:338
-#, fuzzy
+#. TRANSLATORS: details about the update, package name and version
+#: ../client/pk-console.c:340
 msgid "Package"
-msgstr "Arquivos do pacote"
+msgstr "Pacote"
 
-#: ../client/pk-console.c:340
-#, fuzzy
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:343
 msgid "Updates"
-msgstr "Atualizar pacote"
+msgstr "Atualiza"
 
-#: ../client/pk-console.c:342
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:347
 msgid "Obsoletes"
-msgstr ""
+msgstr "Obsoletos"
 
-#: ../client/pk-console.c:344
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:351
 msgid "Vendor"
-msgstr ""
+msgstr "Fornecedor"
 
-#: ../client/pk-console.c:346
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:355
 msgid "Bugzilla"
-msgstr ""
+msgstr "Bugzilla"
 
-#: ../client/pk-console.c:348
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:359
 msgid "CVE"
-msgstr ""
+msgstr "CVE"
 
-#: ../client/pk-console.c:350
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:363
 msgid "Restart"
-msgstr ""
+msgstr "Reinício"
 
-#: ../client/pk-console.c:352
-#, fuzzy
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:367
 msgid "Update text"
-msgstr "Detalhe da atualização"
+msgstr "Descrição da atualização"
 
-#: ../client/pk-console.c:354
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:371
 msgid "Changes"
-msgstr ""
+msgstr "Alterações"
 
-#: ../client/pk-console.c:356
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:375
 msgid "State"
-msgstr ""
+msgstr "Estado"
 
-#: ../client/pk-console.c:359
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:380
 msgid "Issued"
-msgstr ""
+msgstr "Emissão"
 
-#: ../client/pk-console.c:362
-#, fuzzy
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:385
 msgid "Updated"
-msgstr "Detalhe da atualização"
+msgstr "Atualizado em"
 
-#: ../client/pk-console.c:448 ../client/pk-console.c:450
+#: ../client/pk-console.c:472
+#: ../client/pk-console.c:474
 msgid "Percentage"
-msgstr ""
+msgstr "Porcentagem"
 
-#: ../client/pk-console.c:450
+#: ../client/pk-console.c:474
 msgid "Unknown"
-msgstr ""
+msgstr "Desconhecido"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:501
-#, fuzzy
+#: ../client/pk-console.c:525
 msgid "System restart required by:"
-msgstr "É necessário reiniciar o sistema"
+msgstr "O reinício do sistema é requerido por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:504
-#, fuzzy
+#: ../client/pk-console.c:528
 msgid "Session restart required:"
-msgstr "É necessário reiniciar o sistema"
+msgstr "É necessário reiniciar a sessão:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:507
-#, fuzzy
+#: ../client/pk-console.c:531
 msgid "Application restart required by:"
-msgstr "É necessário reiniciar a aplicação"
+msgstr "O reinício do aplicativo é requerido por:"
 
-#: ../client/pk-console.c:543
+#. TRANSLATORS: a package needs to restart they system
+#: ../client/pk-console.c:568
 msgid "Please restart the computer to complete the update."
 msgstr "Por favor, reinicie o computador para completar a atualização."
 
-#: ../client/pk-console.c:545
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:571
 msgid "Please logout and login to complete the update."
-msgstr ""
-"Por favor, encerre a sessão e inicie-a novamente para completar a "
-"atualização."
+msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização."
 
-#: ../client/pk-console.c:547
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:574
 msgid "Please restart the application as it is being used."
 msgstr "Por favor, reinicie o aplicativo que está sendo usado."
 
 #. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:659
+#: ../client/pk-console.c:687
 #, c-format
 msgid "The package %s is already installed"
 msgstr "O pacote %s já está instalado"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:667
+#: ../client/pk-console.c:695
 #, c-format
 msgid "The package %s could not be installed: %s"
 msgstr "O pacote %s não pôde ser instalado: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:692 ../client/pk-console.c:719
-#: ../client/pk-console.c:815 ../client/pk-console.c:932
-#: ../client/pk-tools-common.c:61 ../client/pk-tools-common.c:79
+#: ../client/pk-console.c:720
+#: ../client/pk-console.c:747
+#: ../client/pk-console.c:843
+#: ../client/pk-console.c:960
+#: ../client/pk-tools-common.c:61
+#: ../client/pk-tools-common.c:79
 #: ../client/pk-tools-common.c:86
 #, c-format
 msgid "Internal error: %s"
 msgstr "Erro interno: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:700 ../client/pk-console.c:1327
+#: ../client/pk-console.c:728
+#: ../client/pk-console.c:1355
 #, c-format
 msgid "This tool could not install the packages: %s"
 msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:727
+#: ../client/pk-console.c:755
 #, c-format
 msgid "This tool could not install the files: %s"
 msgstr "Esta ferramenta não pôde instalar os arquivos: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:783
+#: ../client/pk-console.c:811
 #, c-format
 msgid "This tool could not remove %s: %s"
 msgstr "Esta ferramenta não pôde remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:806 ../client/pk-console.c:844
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:834
+#: ../client/pk-console.c:872
+#: ../client/pk-console.c:905
 #, c-format
 msgid "This tool could not remove the packages: %s"
 msgstr "Esta ferramente não pôde remover os pacotes: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:856
+#: ../client/pk-console.c:884
 msgid "The following packages have to be removed:"
 msgstr "Os seguintes pacotes têm que ser removidos:"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:863
+#: ../client/pk-console.c:891
 msgid "Proceed removing additional packages?"
 msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:896
 msgid "The package removal was canceled!"
 msgstr "A remoção do pacote foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:909
+#: ../client/pk-console.c:937
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
+msgstr "Esta ferramenta não pôde baixar o pacote %s, pois ele não foi localizado"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:940
+#: ../client/pk-console.c:968
 #, c-format
 msgid "This tool could not download the packages: %s"
 msgstr "Esta ferramenta não pôde baixar os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:967 ../client/pk-console.c:976
+#: ../client/pk-console.c:995
+#: ../client/pk-console.c:1004
 #, c-format
 msgid "This tool could not update %s: %s"
 msgstr "Esta ferramenta não pôde atualizar %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:998 ../client/pk-console.c:1006
+#: ../client/pk-console.c:1026
+#: ../client/pk-console.c:1034
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
 msgstr "Esta ferramenta não pôde obter os requerimentos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1028 ../client/pk-console.c:1036
+#: ../client/pk-console.c:1056
+#: ../client/pk-console.c:1064
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
 msgstr "Esta ferramenta não pôde obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1058 ../client/pk-console.c:1066
+#: ../client/pk-console.c:1086
+#: ../client/pk-console.c:1094
 #, c-format
 msgid "This tool could not get package details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes do pacote para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1088
+#: ../client/pk-console.c:1116
 #, c-format
 msgid "This tool could not find the files for %s: %s"
 msgstr "Esta ferramenta não pôde localizar os arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1096
+#: ../client/pk-console.c:1124
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
 msgstr "Esta ferramenta não pôde obter a lista de arquivos para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1118
+#: ../client/pk-console.c:1146
 #, c-format
 msgid "File already exists: %s"
 msgstr "O arquivo já existe: %s"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1123 ../client/pk-console.c:1179
-#: ../client/pk-console.c:1254
+#: ../client/pk-console.c:1151
+#: ../client/pk-console.c:1207
+#: ../client/pk-console.c:1282
 msgid "Getting package list"
 msgstr "Obtendo lista de pacotes"
 
 #. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1129 ../client/pk-console.c:1185
-#: ../client/pk-console.c:1260
+#: ../client/pk-console.c:1157
+#: ../client/pk-console.c:1213
+#: ../client/pk-console.c:1288
 #, c-format
 msgid "This tool could not get package list: %s"
 msgstr "Esta ferramente não pôde obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1140
-#, c-format
+#: ../client/pk-console.c:1168
 msgid "Failed to save to disk"
 msgstr "Falha ao salvar no disco"
 
 #. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1174 ../client/pk-console.c:1249
+#: ../client/pk-console.c:1202
+#: ../client/pk-console.c:1277
 #, c-format
 msgid "File does not exist: %s"
 msgstr "O arquivo não existe: %s"
 
 #. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1234
 msgid "Packages to add"
 msgstr "Pacotes a serem adicionados"
 
 #. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1214
+#: ../client/pk-console.c:1242
 msgid "Packages to remove"
 msgstr "Pacotes a serem removidos"
 
 #. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1282
-#, c-format
+#: ../client/pk-console.c:1310
 msgid "No new packages need to be installed"
 msgstr "Nenhum pacote novo precisa ser instalado"
 
 #. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1316
 msgid "To install"
 msgstr "Instalando"
 
 #. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1299
+#: ../client/pk-console.c:1327
 msgid "Searching for package: "
 msgstr "Pesquisando pelo pacote:"
 
 #. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1303
+#: ../client/pk-console.c:1331
 msgid "not found."
 msgstr "não encontrado."
 
 #. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1314
-#, c-format
+#: ../client/pk-console.c:1342
 msgid "No packages can be found to install"
 msgstr "Nenhum pacote pôde ser localizado para instalação"
 
 #. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1320
+#: ../client/pk-console.c:1348
 msgid "Installing packages"
 msgstr "Instalando pacotes"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1384
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr ""
-"Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
+msgstr "Esta ferramenta não pôde localizar os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1364
+#: ../client/pk-console.c:1392
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
 msgstr "Esta ferramenta não pôde obter os detalhes de atualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1410
+#: ../client/pk-console.c:1438
 msgid "Error:"
 msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1424
+#: ../client/pk-console.c:1452
 msgid "Package description"
 msgstr "Descrição do pacote"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1486
 msgid "Package files"
 msgstr "Arquivos do pacote"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1494
 msgid "No files"
 msgstr "Nenhum arquivo"
 
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1489
+#: ../client/pk-console.c:1517
 msgid "Repository signature required"
 msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1499
+#: ../client/pk-console.c:1527
 msgid "Do you accept this signature?"
 msgstr "Você aceita essa assinatura?"
 
 #. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1531
 msgid "The signature was not accepted."
 msgstr "A assinatura não foi aceita."
 
 #. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1537
+#: ../client/pk-console.c:1565
 msgid "End user license agreement required"
 msgstr "É necessário um contrato de licença para o usuário final"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1544
+#: ../client/pk-console.c:1572
 msgid "Do you agree to this license?"
 msgstr "Você concorda com a licença?"
 
 #. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1548
+#: ../client/pk-console.c:1576
 msgid "The license was refused."
 msgstr "A licença foi recusada."
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1577
+#: ../client/pk-console.c:1605
 msgid "The daemon crashed mid-transaction!"
 msgstr "O daemon travou no meio da transação!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1630
+#: ../client/pk-console.c:1658
 msgid "PackageKit Console Interface"
 msgstr "Interface em Console do PackageKit"
 
-#: ../client/pk-console.c:1630
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1660
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
-#: ../client/pk-console.c:1719 ../client/pk-generate-pack.c:184
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1750
+#: ../client/pk-generate-pack.c:185
 #: ../client/pk-monitor.c:115
 #: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../src/pk-main.c:192
+#: ../src/pk-main.c:199
 msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
 
-#: ../client/pk-console.c:1721 ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1753
+#: ../client/pk-monitor.c:117
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão do programa e sair"
 
-#: ../client/pk-console.c:1723
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1756
 msgid "Set the filter, e.g. installed"
 msgstr "Definir o filtro, p. ex.: instalados"
 
-#: ../client/pk-console.c:1725
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1759
 msgid "Exit without waiting for actions to complete"
 msgstr "Sair sem esperar pelo término das ações"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1752
+#: ../client/pk-console.c:1786
 msgid "This tool could not connect to system DBUS."
 msgstr "Esta ferramenta não pôde conectar ao DBUS do sistema."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1839
+#: ../client/pk-console.c:1873
 msgid "The filter specified was invalid"
 msgstr "O filtro especificado era inválido"
 
-#: ../client/pk-console.c:1856
-msgid "You need to specify a search type, e.g. name"
-msgstr "Você precisa especificar um tipo de pesquisa, p. ex. nome"
-
-#: ../client/pk-console.c:1861 ../client/pk-console.c:1868
-#: ../client/pk-console.c:1875 ../client/pk-console.c:1882
-#: ../client/pk-console.c:1990 ../client/pk-console.c:2000
-#: ../client/pk-console.c:2007 ../client/pk-console.c:2014
-msgid "You need to specify a search term"
-msgstr "Você precisa especificar um termo de pesquisa"
-
-#: ../client/pk-console.c:1887
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1891
+msgid "A search type is required, e.g. name"
+msgstr "Um tipo de pesquisa é requerido, p. ex. nome"
+
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1897
+#: ../client/pk-console.c:1905
+#: ../client/pk-console.c:1913
+#: ../client/pk-console.c:1921
+msgid "A search term is required"
+msgstr "Um termo de pesquisa é requerido"
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1927
 msgid "Invalid search type"
 msgstr "Tipo de pesquisa inválido"
 
-#: ../client/pk-console.c:1892
-msgid "You need to specify a package or file to install"
-msgstr "Você precisa especificar um pacote ou programa a ser instalado"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1933
+msgid "A package name or filename to install is required"
+msgstr "O nome do pacote ou arquivo é requerido"
 
-#: ../client/pk-console.c:1899
-msgid "You need to specify a type, key_id and package_id"
-msgstr "Você precisa especificar um tipo, key_id e package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1941
+msgid "A type, key_id and package_id are required"
+msgstr "Um tipo, key_id e package_id são requeridos"
 
-#: ../client/pk-console.c:1906
-msgid "You need to specify a package to remove"
-msgstr "Você precisa especificar um pacote a ser removido"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1949
+msgid "A package name to remove is required"
+msgstr "O nome do pacote para remoção é requerido"
 
-#: ../client/pk-console.c:1912
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
-msgstr ""
-"Você precisa especificar o diretório de destino e em seguida os pacotes a "
-"serem baixados"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:1956
+msgid "A destination directory and then the package names to download are required"
+msgstr "O diretório de destino seguido dos nomes dos pacotes a serem baixados é requerido"
 
-#: ../client/pk-console.c:1917
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:1962
 msgid "Directory not found"
 msgstr "Diretório não encontrado"
 
-#: ../client/pk-console.c:1923
-msgid "You need to specify a licence identifier (eula-id)"
-msgstr "Você precisa especificar um identificador de licença (eula-id)"
-
-#: ../client/pk-console.c:1939
-msgid "You need to specify a package name to resolve"
-msgstr "Você precisa especificar um nome de pacote a ser analisado"
-
-#: ../client/pk-console.c:1946 ../client/pk-console.c:1953
-msgid "You need to specify a repository name"
-msgstr "Você precisa especificar um nome de repositório"
-
-#: ../client/pk-console.c:1960
-msgid "You need to specify a repo name/parameter and value"
-msgstr "Você precisa especificar um nome/parâmetro de repositório e um valor"
-
-#: ../client/pk-console.c:1972
-msgid "You need to specify an action, e.g. 'update-system'"
-msgstr "Você precisa especificar uma ação, p. ex. \"update-system\""
-
-#: ../client/pk-console.c:1977
-msgid "You need to specify a correct role"
-msgstr "Você precisa especificar um papel correto"
-
-#: ../client/pk-console.c:1982
-msgid "Failed to get last time"
-msgstr "Falha ao obter o último horário"
-
-#: ../client/pk-console.c:2021
-msgid "You need to specify a package to find the details for"
-msgstr ""
-"Você precisa especificar o pacote para o qual você quer localizar os detalhes"
-
-#: ../client/pk-console.c:2028
-msgid "You need to specify a package to find the files for"
-msgstr ""
-"Você precisa especificar o pacote para o qual você quer localizar os arquivos"
-
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1969
+msgid "A licence identifier (eula-id) is required"
+msgstr "Um identificador de licença (eula-id) é requerido"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:1986
+msgid "A package name to resolve is required"
+msgstr "O nome de pacote a ser analisado é requerido"
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:1994
+#: ../client/pk-console.c:2002
+msgid "A repository name is required"
+msgstr "O nome do repositório é requerido"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2010
+msgid "A repo name, parameter and value are required"
+msgstr "Um nome de repositório, parâmetro e um valor são requeridos"
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2023
+msgid "An action, e.g. 'update-system' is required"
+msgstr "Uma ação, p. ex. \"update-system\" é requerida"
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2029
+msgid "A correct role is required"
+msgstr "Um modo correto é requerido"
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
 #: ../client/pk-console.c:2035
-msgid "You need to specify a list file to create"
-msgstr "Você precisa especificar um arquivo de lista a ser criado"
-
-#: ../client/pk-console.c:2043 ../client/pk-console.c:2051
-msgid "You need to specify a list file to open"
-msgstr "Você precisa especificar um arquivo de lista a ser aberto"
+msgid "Failed to get the time since this action was last completed"
+msgstr "Falha ao obter o tempo em que essa ação foi completada pela última vez"
+
+#. 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:2044
+#: ../client/pk-console.c:2055
+#: ../client/pk-console.c:2063
+#: ../client/pk-console.c:2079
+#: ../client/pk-console.c:2087
+#: ../client/pk-generate-pack.c:241
+msgid "A package name is required"
+msgstr "O nome do pacote é requerido"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2071
+msgid "A package provide string is required"
+msgstr "É necessário especificar o que o pacote fornece"
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2095
+msgid "A list file name to create is required"
+msgstr "O nome de arquivo da lista a ser criada é requerido"
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2113
+msgid "A list file to open is required"
+msgstr "Uma lista de arquivos a serem abertos é requerida"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2104
+#: ../client/pk-console.c:2166
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "A opção \"%s\" não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2117
-msgid "You don't have the necessary privileges for this operation"
-msgstr "Você não tem os privilégios necessários para esta operação"
+#: ../client/pk-console.c:2179
+msgid "Incorrect privileges for this operation"
+msgstr "Privilégios incorretos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2120
+#: ../client/pk-console.c:2182
 msgid "Command failed"
 msgstr "O comando falhou"
 
 #. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
 msgid "Downloading"
 msgstr "Baixando"
 
 #. TRANSLATORS: This is when the main packages are being downloaded
-#: ../client/pk-generate-pack.c:120
+#: ../client/pk-generate-pack.c:121
 msgid "Downloading packages"
 msgstr "Baixando pacotes"
 
 #. TRANSLATORS: This is when the dependency packages are being downloaded
-#: ../client/pk-generate-pack.c:125
+#: ../client/pk-generate-pack.c:126
 msgid "Downloading dependencies"
 msgstr "Baixando dependências"
 
-#: ../client/pk-generate-pack.c:186
+#. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
+#: ../client/pk-generate-pack.c:188
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Defina o nome de arquivo das dependências a serem excluídas"
 
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
-msgstr "O diretório de saída (o diretório atual é usado, caso omitido)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "O diretório ou arquivo de saída (o diretório atual é usado se omitido)"
 
-#: ../client/pk-generate-pack.c:190
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
 msgid "The package to be put into the service pack"
 msgstr "O pacote a ser incluído no pacote de serviços"
 
-#: ../client/pk-generate-pack.c:192
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
 msgstr "Incluir todas as atualizações disponíveis no pacote de serviços"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:220
+#: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
 msgstr "Nenhuma das opções --package ou --updates foi selecionada."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
 msgstr "Ambas opções selecionadas."
 
+#. TRANSLATORS: This is when the user fails to supply the output
+#: ../client/pk-generate-pack.c:249
+msgid "A output directory or file name is required"
+msgstr "Um diretório ou arquivo de saída é requerido"
+
+#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
+#. TRANSLATORS: This is when the backend doesn't have the capability to download
+#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:273
+msgid "The package manager cannot perform this type of operation."
+msgstr "O gerenciador de pacotes não pode realizar este tipo de operação."
+
+#. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
+#: ../client/pk-generate-pack.c:285
+msgid "If specifying a file, the service pack name must end with"
+msgstr "Se um arquivo for especificado, o nome do pacote de serviços deve terminar com"
+
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:261
+#: ../client/pk-generate-pack.c:301
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
-"Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
+msgstr "Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:264
+#: ../client/pk-generate-pack.c:304
 msgid "The pack was not overwritten."
 msgstr "O pacote não foi sobrescrito"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:276
+#: ../client/pk-generate-pack.c:317
 msgid "Failed to create directory:"
 msgstr "Falha ao criar o diretório:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:285
+#: ../client/pk-generate-pack.c:327
 msgid "Failed to open package list."
 msgstr "Falha ao abrir a lista de pacotes"
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:295
+#: ../client/pk-generate-pack.c:338
 msgid "Finding package name."
 msgstr "Localizando o nome do pacote."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:299
+#: ../client/pk-generate-pack.c:342
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Falha ao localizar o pacote \"%s\": %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:315
+#: ../client/pk-generate-pack.c:359
 msgid "Creating service pack..."
 msgstr "Criando o pacote de serviços"
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:322
+#: ../client/pk-generate-pack.c:366
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Pacote de serviços \"%s\" criado"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:371
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Falha ao criar \"%s\": %s"
 
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:133
 msgid "PackageKit Monitor"
 msgstr "Monitor do PackageKit"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:114
-#, c-format
 msgid "The package could not be found"
 msgstr "O pacote não pôde ser encontrado"
 
@@ -731,80 +796,72 @@ msgstr "Por favor, insira um número entre 1 e %i: "
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:361
-#, fuzzy
 msgid "Failed to search for file"
-msgstr "Falha ao salvar no disco"
+msgstr "Falha ao pesquisar pelo arquivo"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
 #: ../contrib/command-not-found/pk-command-not-found.c:485
-#, fuzzy
 msgid "Failed to launch:"
-msgstr "Falha ao obter o último horário"
+msgstr "Falha ao executar:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/command-not-found/pk-command-not-found.c:526
-#, fuzzy
 msgid "PackageKit Command Not Found"
-msgstr "Monitor do PackageKit"
+msgstr "Comando do PackageKit não localizado"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
 #: ../contrib/command-not-found/pk-command-not-found.c:548
-#, fuzzy
 msgid "Command not found."
-msgstr "não encontrado."
+msgstr "Comando não localizado."
 
 #. TRANSLATORS: tell the user what we think the command is
 #: ../contrib/command-not-found/pk-command-not-found.c:555
-#, fuzzy
 msgid "Similar command is:"
-msgstr "Subcomandos:"
+msgstr "O comando similar é:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
 #: ../contrib/command-not-found/pk-command-not-found.c:564
 msgid "Run similar command:"
-msgstr ""
+msgstr "Executar comando similar:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
 #: ../contrib/command-not-found/pk-command-not-found.c:576
 #: ../contrib/command-not-found/pk-command-not-found.c:585
-#, fuzzy
 msgid "Similar commands are:"
-msgstr "Subcomandos:"
+msgstr "Os comandos similares são:"
 
 #. TRANSLATORS: ask the user to choose a file to run
 #: ../contrib/command-not-found/pk-command-not-found.c:592
 msgid "Please choose a command to run"
-msgstr ""
+msgstr "Por favor, escolha um comando a ser executado"
 
 #. TRANSLATORS: tell the user what package provides the command
 #: ../contrib/command-not-found/pk-command-not-found.c:607
-#, fuzzy
 msgid "The package providing this file is:"
-msgstr "O pacote %s já está instalado"
+msgstr "O pacote que fornece esse arquivo é:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
 #: ../contrib/command-not-found/pk-command-not-found.c:612
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
+msgstr "Instalar pacote \"%s\" para fornecer o comando \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
 #: ../contrib/command-not-found/pk-command-not-found.c:633
 msgid "Packages providing this file are:"
-msgstr ""
+msgstr "Os pacotes que fornecem esse arquivo são:"
 
 #. 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:642
 msgid "Suitable packages are:"
-msgstr ""
+msgstr "Os pacotes apropriados são:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
 #: ../contrib/command-not-found/pk-command-not-found.c:650
-#, fuzzy
 msgid "Please choose a package to install"
-msgstr "Por favor, escolha o pacote correto: "
+msgstr "Por favor, escolha um pacote a ser instalado"
 
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/src/contents.cpp:298
@@ -828,6 +885,7 @@ msgstr "Versão instalada"
 msgid "Run version %s now"
 msgstr "Executar a versão %s agora"
 
+#. TRANSLATORS: run the application now
 #: ../contrib/browser-plugin/src/contents.cpp:324
 msgid "Run now"
 msgstr "Executar agora"
@@ -871,310 +929,267 @@ msgstr "Lista de Pacotes do PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Pacote de serviços do PackageKit"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr "Aceitar a licença EULA"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr "É necessário autenticar para aceitar uma licença EULA"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-#, fuzzy
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
-"É necessário autenticar para alterar os parâmetros das fontes de programas"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-msgid "Authentication is required to change software source parameters"
-msgstr ""
-"É necessário autenticar para alterar os parâmetros das fontes de programas"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-#, fuzzy
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr "É necessário autenticar para recarregar a lista de pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-#, fuzzy
-msgid "Authentication is required to install a signed package"
-msgstr "É necessário autenticar para instalar um pacote"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-#, fuzzy
-msgid "Authentication is required to install an untrusted package"
-msgstr "É necessário autenticar para instalar um pacote"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-#, fuzzy
-msgid "Authentication is required to refresh the system sources"
-msgstr "É necessário autenticar para recarregar a lista de pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to remove packages"
-msgstr "É necessário autenticar para remover pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-msgid "Authentication is required to rollback a transaction"
-msgstr "É necessário autenticar para retroceder uma transação"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-#, fuzzy
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr "É necessário autenticar para remover pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Authentication is required to update packages"
-msgstr "É necessário autenticar para atualizar os pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Cancel foreign task"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Change software source parameters"
-msgstr "Altere parâmetros das fontes de programas"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-#, fuzzy
-msgid "Install signed package"
-msgstr "Instalando pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-#, fuzzy
-msgid "Install untrusted local file"
-msgstr "Instalar um arquivo local"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Remove package"
-msgstr "Remover pacote"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Rollback to a previous transaction"
-msgstr "Retroceder para uma transação anterior"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-msgid "Set network proxy"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:21
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:22
-#, fuzzy
-msgid "Update packages"
-msgstr "Atualizar pacote"
-
-#: ../src/pk-main.c:86
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
 msgstr "A inicialização falhou devido à políticas de segurança desta máquina"
 
-#: ../src/pk-main.c:87
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
 msgstr "Isso pode acontecer por duas razões:"
 
-#: ../src/pk-main.c:88
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
 msgstr "O usuário correto não está iniciando o executável (normalmente o root)"
 
-#: ../src/pk-main.c:89
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório do "
-"sistema:"
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório do sistema:"
 
-#: ../src/pk-main.c:188
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:193
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "O backend de empacotamento a ser utilizado, p. ex.: dummy"
 
-#: ../src/pk-main.c:190
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:196
 msgid "Daemonize and detach from the terminal"
 msgstr "Tornar um daemon e separar do terminal"
 
-#: ../src/pk-main.c:194
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:202
 msgid "Disable the idle timer"
 msgstr "Desabilitar o tempo de ociosidade"
 
-#: ../src/pk-main.c:196
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:205
 msgid "Show version and exit"
 msgstr "Mostrar a versão e sair"
 
-#: ../src/pk-main.c:198
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:208
 msgid "Exit after a small delay"
 msgstr "Sair após um pequeno atraso"
 
-#: ../src/pk-main.c:200
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:211
 msgid "Exit after the engine has loaded"
 msgstr "Sair após o carregamento do mecanismo"
 
-#: ../src/pk-main.c:214
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:226
 msgid "PackageKit service"
 msgstr "Serviço do PackageKit"
 
-#: ../src/pk-main.c:250
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:263
 msgid "Cannot connect to the system bus"
 msgstr "Não foi possível conectar ao barramento do sistema"
 
-#: ../src/pk-main.c:299
+#. TRANSLATORS: cannot register on system bus, unknown reason
+#: ../src/pk-main.c:313
 #, c-format
 msgid "Error trying to start: %s\n"
 msgstr "Erro ao tentar iniciar: %s\n"
 
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "Você precisa especificar um tipo de pesquisa, p. ex. nome"
+#~ msgid "You need to specify a search term"
+#~ msgstr "Você precisa especificar um termo de pesquisa"
+#~ msgid "You need to specify a package or file to install"
+#~ msgstr "Você precisa especificar um pacote ou programa a ser instalado"
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "Você precisa especificar um pacote a ser removido"
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "Você precisa especificar um nome de pacote a ser analisado"
+#~ msgid "You need to specify a repository name"
+#~ msgstr "Você precisa especificar um nome de repositório"
+#~ msgid "You need to specify a correct role"
+#~ msgstr "Você precisa especificar um papel correto"
+#~ msgid "Failed to get last time"
+#~ msgstr "Falha ao obter o último horário"
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr ""
+#~ "Você precisa especificar o pacote para o qual você quer localizar os "
+#~ "detalhes"
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr ""
+#~ "Você precisa especificar o pacote para o qual você quer localizar os "
+#~ "arquivos"
+#~ msgid "You need to specify a list file to create"
+#~ msgstr "Você precisa especificar um arquivo de lista a ser criado"
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "Você precisa especificar um arquivo de lista a ser aberto"
+#~ msgid "Accept EULA"
+#~ msgstr "Aceitar a licença EULA"
+#~ msgid "Authentication is required to accept a EULA"
+#~ msgstr "É necessário autenticar para aceitar uma licença EULA"
+
+#, fuzzy
+#~ msgid ""
+#~ "Authentication is required to cancel a task that was not started by "
+#~ "yourself"
+#~ msgstr ""
+#~ "É necessário autenticar para alterar os parâmetros das fontes de programas"
+#~ msgid "Authentication is required to change software source parameters"
+#~ msgstr ""
+#~ "É necessário autenticar para alterar os parâmetros das fontes de programas"
+
+#, fuzzy
+#~ msgid ""
+#~ "Authentication is required to consider a key used for signing packages as "
+#~ "trusted"
+#~ msgstr "É necessário autenticar para recarregar a lista de pacotes"
+
+#, fuzzy
+#~ msgid "Authentication is required to install a signed package"
+#~ msgstr "É necessário autenticar para instalar um pacote"
+
+#, fuzzy
+#~ msgid "Authentication is required to install an untrusted package"
+#~ msgstr "É necessário autenticar para instalar um pacote"
+
+#, fuzzy
+#~ msgid "Authentication is required to refresh the system sources"
+#~ msgstr "É necessário autenticar para recarregar a lista de pacotes"
+#~ msgid "Authentication is required to remove packages"
+#~ msgstr "É necessário autenticar para remover pacotes"
+#~ msgid "Authentication is required to rollback a transaction"
+#~ msgstr "É necessário autenticar para retroceder uma transação"
+
+#, fuzzy
+#~ msgid ""
+#~ "Authentication is required to set the network proxy used for downloading "
+#~ "packages"
+#~ msgstr "É necessário autenticar para remover pacotes"
+#~ msgid "Authentication is required to update packages"
+#~ msgstr "É necessário autenticar para atualizar os pacotes"
+#~ msgid "Change software source parameters"
+#~ msgstr "Altere parâmetros das fontes de programas"
+
+#, fuzzy
+#~ msgid "Install signed package"
+#~ msgstr "Instalando pacotes"
+
+#, fuzzy
+#~ msgid "Install untrusted local file"
+#~ msgstr "Instalar um arquivo local"
+#~ msgid "Remove package"
+#~ msgstr "Remover pacote"
+#~ msgid "Rollback to a previous transaction"
+#~ msgstr "Retroceder para uma transação anterior"
+
+#, fuzzy
+#~ msgid "Update packages"
+#~ msgstr "Atualizar pacote"
 #~ msgid "This tool could not remove the packages: '%s'"
 #~ msgstr "Esta ferramente não pôde remover os pacotes: \"%s\""
-
 #~ msgid "Install local file"
 #~ msgstr "Instalar um arquivo local"
-
 #~ msgid "Okay to import key?"
 #~ msgstr "A chave pode ser importada?"
-
 #~ msgid "Did not import key"
 #~ msgstr "Não importar a chave"
-
 #~ msgid "Eula required"
 #~ msgstr "Uma Eula é necessária"
-
 #~ msgid "Do you agree?"
 #~ msgstr "Você concorda?"
-
-#~ msgid "A logout and login is required"
-#~ msgstr "É necessário sair da sessão e autenticar novamente"
-
 #~ msgid "Could not find package to remove"
 #~ msgstr "Não foi possível localizar o pacote a ser removido"
-
 #~ msgid "Cancelled!"
 #~ msgstr "Cancelado!"
-
 #~ msgid "Could not find package to update"
 #~ msgstr "Não foi possível localizar o pacote a ser atualizado"
-
 #~ msgid "Could not find what packages require"
 #~ msgstr "Não foi possível localizar quais pacotes necessitam desse pacote"
-
 #~ msgid "Could not find details for"
 #~ msgstr "Não foi possível localizar os detalhes para"
-
 #~ msgid "Could not find a package match"
 #~ msgstr "Não foi possível encontrar um pacote correspondente"
-
 #~ msgid "failed to download: invalid package_id and/or directory"
 #~ msgstr "falha ao baixar: package_id e/ou diretório inválidos"
-
 #~ msgid "Could not find a valid metadata file"
 #~ msgstr "Não foi possível localizar um arquivo de metadados válido"
-
 #~ msgid "Okay to download the additional packages"
 #~ msgstr "Os pacotes adicionais podem ser baixados"
-
 #~ msgid "You need to specify the pack name and packages to be packed\n"
 #~ msgstr ""
 #~ "Você precisa especificar o nome do pacote de serviços e os pacotes a "
 #~ "serem incluídos\n"
-
 #~ msgid ""
 #~ "Invalid name for the service pack, Specify a name with .servicepack "
 #~ "extension\n"
 #~ msgstr ""
 #~ "Nome inválido para o pacote de serviços. Especifique um nome com a "
 #~ "extensão .servicepack\n"
-
 #~ msgid "Could not set database readonly"
 #~ msgstr "Não foi possível configurar o banco de dados para somente leitura"
-
 #~ msgid "Could not open database: %s"
 #~ msgstr "Não foi possível abrir o banco de dados: %s"
-
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Você provavelmente precisa executar este programa como usuário root"
-
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Executar %s</span>"
-
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar versão %s agora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar agora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Atualizar para a versão %s</span>"
-
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Instalar %s agora</"
 #~ "span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Versão: %s</small>"
-
 #~ msgid ""
 #~ "You need to specify the package to download and the destination directory"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote a ser baixado e o diretório de destino"
-
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para instalar ou o "
 #~ "pacote já está instalado"
-
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para ser atualizado"
-
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "É necessário autenticar para instalar um arquivo local"
-
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "É necessário autenticar para instalar uma assinatura de segurança"
-
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "É necessário autenticar para atualizar todos os pacotes"
-
 #~ msgid "Install security signature"
 #~ msgstr "Instalar uma assinatura de segurança"
-
 #~ msgid "Refresh package lists"
 #~ msgstr "Recarregar listas de pacotes"
-
 #~ msgid "Update all packages"
 #~ msgstr "Atualizar todos os pacotes"
-
 #~ msgid "Could not find a description for this package"
 #~ msgstr "Não foi possível encontrar uma descrição para esse pacote"
+
commit acdeadef6aa71b53ad782aa7bb4158e172b7bbea
Merge: 49144c2... 1bee071...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Feb 17 22:15:43 2009 -0300

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

commit 49144c287a5319eb1468514fbd5deb98e492dfc5
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Feb 17 22:14:52 2009 -0300

    Packagekit-qt fix to make what provides work

diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index aef5723..aff5825 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -57,6 +57,7 @@ class Client : public QObject
 	Q_ENUMS(ErrorType)
 	Q_ENUMS(RestartType)
 	Q_ENUMS(UpgradeType)
+	Q_ENUMS(ProvidesType)
 
 public:
 	/**
commit 1bee071c31b6d88ad18ec3b2cd73bfa6d991ae0f
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Wed Feb 18 00:57:30 2009 +0100

    PackageKit-Qt : Add a searchFromDesktopFile method which can be used to search in the desktop-files.db SQLite database.

diff --git a/lib/packagekit-qt/src/CMakeLists.txt b/lib/packagekit-qt/src/CMakeLists.txt
index dea923c..81417c4 100644
--- a/lib/packagekit-qt/src/CMakeLists.txt
+++ b/lib/packagekit-qt/src/CMakeLists.txt
@@ -39,6 +39,7 @@ set_target_properties( packagekit-qt PROPERTIES VERSION 2.0 SOVERSION 2 )
 target_link_libraries(packagekit-qt
   ${QT_QTCORE_LIBRARY}
   ${QT_QTDBUS_LIBRARY}
+  ${QT_QTSQL_LIBRARY}
   polkit-dbus
   dbus-1
 )
diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index 0bf727e..b80461b 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -18,6 +18,8 @@
  * Boston, MA 02110-1301, USA.
  */
 
+#include <QtSql>
+
 #include "client.h"
 #include "clientprivate.h"
 
@@ -53,10 +55,19 @@ Client::Client(QObject* parent) : QObject(parent)
 	connect(d->daemon, SIGNAL(RepoListChanged()), this, SIGNAL(repoListChanged()));
 	connect(d->daemon, SIGNAL(RestartSchedule()), this, SIGNAL(restartScheduled()));
 	connect(d->daemon, SIGNAL(TransactionListChanged(const QStringList&)), d, SLOT(transactionListChanged(const QStringList&)));
+
+	// Set up database for desktop files
+	d->desktopDB = QSqlDatabase::addDatabase("QSQLITE");
+	d->desktopDB.setDatabaseName ("/var/lib/PackageKit/desktop-files.db");
+	if (!d->desktopDB.open()) {
+		qDebug() << "Failed to initialize the desktop files database";
+	}
 }
 
 Client::~Client()
 {
+	d->desktopDB.close();
+	delete d;
 }
 
 Client::Actions Client::getActions()
@@ -664,6 +675,27 @@ Transaction* Client::searchName(const QString& search, Filter filter)
 	return Client::searchName(search, Filters() << filter);
 }
 
+Package* Client::searchFromDesktopFile(const QString& path)
+{
+	if (!d->desktopDB.isOpen()) {
+		qDebug() << "Desktop files database is not open";
+		return NULL;
+	}
+
+	QSqlQuery q(d->desktopDB);
+	q.prepare("SELECT package FROM cache WHERE filename = :path");
+	q.bindValue(":path", path);
+	if(!q.exec()) {
+		qDebug() << "Error while running query " << q.executedQuery();
+		return NULL;
+	}
+
+	if (!q.next()) return NULL; // Return NULL if no results
+
+	return new Package(q.value(0).toString());
+
+}
+
 Transaction* Client::updatePackages(const QList<Package*>& packages)
 {
 	if(!PolkitClient::instance()->getAuth(AUTH_SYSTEM_UPDATE)) {
diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index ed234f7..223913f 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -654,6 +654,16 @@ public:
 	Transaction* searchName(const QString& search, Filter filter);
 
 	/**
+	 * \brief Tries to find a package name from a desktop file
+	 *
+	 * This function looks into /var/lib/PackageKit/desktop-files.db and searches for the associated package name.
+	 *
+	 * \p path the path to the desktop file (as shipped by the package)
+	 * \return The associated package, or NULL if there's no result
+	 */
+	Package* searchFromDesktopFile(const QString& path);
+
+	/**
 	 * Update the given \p packages
 	 */
 	Transaction* updatePackages(const QList<Package*>& packages);
diff --git a/lib/packagekit-qt/src/clientprivate.h b/lib/packagekit-qt/src/clientprivate.h
index f593681..0551545 100644
--- a/lib/packagekit-qt/src/clientprivate.h
+++ b/lib/packagekit-qt/src/clientprivate.h
@@ -22,6 +22,7 @@
 #define CLIENTPRIVATE_H
 
 #include <QtCore>
+#include <QtSql>
 #include "client.h"
 
 namespace PackageKit {
@@ -39,6 +40,7 @@ public:
 
 	DaemonProxy* daemon;
 	Client* c;
+	QSqlDatabase desktopDB; // Used to search in /var/lib/PackageKit/desktop-files.db
 
 	QString locale;
 
diff --git a/lib/packagekit-qt/src/package.h b/lib/packagekit-qt/src/package.h
index cebd2da..6ac0b88 100644
--- a/lib/packagekit-qt/src/package.h
+++ b/lib/packagekit-qt/src/package.h
@@ -308,6 +308,7 @@ private:
 	friend class Transaction;
 	friend class TransactionPrivate;
 	friend class Details;
+	friend class Client;
 	Package(const QString& packageId, const QString& state = QString(), const QString& summary = QString());
 	void setDetails(Details* det);
 	class Private;
diff --git a/lib/packagekit-qt/test/transactiontest.cpp b/lib/packagekit-qt/test/transactiontest.cpp
index be31fcf..5f50be3 100644
--- a/lib/packagekit-qt/test/transactiontest.cpp
+++ b/lib/packagekit-qt/test/transactiontest.cpp
@@ -24,6 +24,14 @@ void TransactionTest::searchName()
 	CPPUNIT_ASSERT_MESSAGE("searchName", success);
 }
 
+void TransactionTest::searchDesktop()
+{
+	success = FALSE;
+	Package* p = PackageKit::Client::instance()->searchFromDesktopFile("/usr/share/applications/nautilus-cd-burner.desktop");
+	qDebug() << "searchDesktop";
+	CPPUNIT_ASSERT_MESSAGE("searchDesktop", p);
+}
+
 void TransactionTest::resolveAndInstallAndRemove()
 {
 	success = FALSE;
diff --git a/lib/packagekit-qt/test/transactiontest.h b/lib/packagekit-qt/test/transactiontest.h
index 8eb6118..f517918 100644
--- a/lib/packagekit-qt/test/transactiontest.h
+++ b/lib/packagekit-qt/test/transactiontest.h
@@ -13,6 +13,7 @@ class TransactionTest : public QObject, public CppUnit::TestFixture
 
 	CPPUNIT_TEST_SUITE(TransactionTest);
 	CPPUNIT_TEST(searchName);
+	CPPUNIT_TEST(searchDesktop);
 	CPPUNIT_TEST(resolveAndInstallAndRemove);
 	CPPUNIT_TEST(refreshCache);
 	CPPUNIT_TEST(getDistroUpgrades);
@@ -24,6 +25,7 @@ public:
 	~TransactionTest();
 
 	void searchName();
+	void searchDesktop();
 	void resolveAndInstallAndRemove();
 	void refreshCache();
 	void getDistroUpgrades();
commit 6b88583e368d7b5b1688cdbdf56f14d9dbac4971
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Wed Feb 18 00:26:45 2009 +0100

    PackageKit-Qt : add support for application filter

diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index aef5723..ed234f7 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -161,6 +161,8 @@ public:
 		FilterNotSource,
 		FilterCollections,
 		FilterNotCollections,
+		FilterApplication,
+		FilterNotApplication,
 		UnknownFilter = -1
 	} Filter;
 	typedef QSet<Filter> Filters;
commit 1fbc53f5cf1f81b711f4c3b117c5456b535631f9
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Tue Feb 17 22:27:10 2009 +0200

    alpm: changed strcmp to egg_strequal where possible; added experimental support for progress indication

diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index b0380f1..cd58432 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -1,6 +1,7 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  * Copyright (C) 2007 Andreas Obergrusberger <tradiaz at yahoo.de>
+ * Copyright (C) 2008, 2009 Valeriy Lyasotskiy <onestep at ukr.net>
  *
  * Licensed under the GNU General Public License Version 2
  *
@@ -48,15 +49,16 @@
 #include <string.h>
 #include <ctype.h>
 
-int progress_percentage;
-int subprogress_percentage;
 PkBackend *backend_instance = NULL;
 
 GHashTable *group_map;
 
 alpm_list_t *syncfirst = NULL;
 alpm_list_t *downloaded_files = NULL;
-gchar *current = NULL;
+gchar *current_file = NULL;
+
+off_t trans_xfered;
+off_t trans_total;
 
 typedef enum {
 	PK_ALPM_SEARCH_TYPE_NULL,
@@ -85,19 +87,19 @@ pkg_from_package_id_str (const gchar *package_id_str)
 	PkPackageId *pkg_id = pk_package_id_new_from_string (package_id_str);
 
 	/* do all this fancy stuff */
-	if (strcmp (ALPM_LOCAL_DB_ALIAS, pkg_id->data) == 0)
+	if (egg_strequal (ALPM_LOCAL_DB_ALIAS, pk_package_id_get_data (pkg_id)))
 		repo = alpm_option_get_localdb ();
 	else {
 		alpm_list_t *iterator;
 		for (iterator = alpm_option_get_syncdbs (); iterator; iterator = alpm_list_next (iterator)) {
 			repo = alpm_list_getdata (iterator);
-			if (strcmp (alpm_db_get_name (repo), pkg_id->data) == 0)
+			if (egg_strequal (alpm_db_get_name (repo), pk_package_id_get_data (pkg_id)) == 0)
 				break;
 		}
 	}
 
 	if (repo != NULL)
-		pkg = alpm_db_get_pkg (repo, pkg_id->name);
+		pkg = alpm_db_get_pkg (repo, pk_package_id_get_name (pkg_id));
 	else
 		pkg = NULL;
 
@@ -211,28 +213,33 @@ cb_trans_conv (pmtransconv_t conv, void *data1, void *data2, void *data3, int *r
 }
 
 static void
-cb_trans_progress (pmtransprog_t event, const char *pkgname, int percent, int howmany, int remain)
+cb_trans_progress (pmtransprog_t event, const char *pkgname, int percent, int howmany, int current)
 {
-	egg_debug ("alpm: transaction percentage for %s is %i", pkgname, percent);
-	// pk_backend_set_percentage ((PkBackend *) backend_instance, percent);
+	if (event == PM_TRANS_PROGRESS_ADD_START || event == PM_TRANS_PROGRESS_UPGRADE_START || event == PM_TRANS_PROGRESS_REMOVE_START) {
+		int trans_percent;
+
+		egg_debug ("alpm: transaction percentage for %s is %i", pkgname, percent);
+		egg_debug ("alpm: current is %i", current);
+		trans_percent = (int) ((float) ((current - 1) * 100 + percent)) / ((float) (howmany * 100)) * 100;
+		pk_backend_set_sub_percentage ((PkBackend *) backend_instance, percent);
+		pk_backend_set_percentage ((PkBackend *) backend_instance, trans_percent);
+	}
 }
 
 static void
-cb_dl_progress (const char *filename, off_t xfered, off_t total)
+cb_dl_progress (const char *filename, off_t file_xfered, off_t file_total)
 {
-	int percent;
+	int file_percent;
+	int trans_percent;
 
 	if (g_str_has_suffix (filename, ALPM_PKG_EXT)) {
-		if (xfered == total)
-			downloaded_files = alpm_list_add (downloaded_files, g_strdup (filename));
-
-		if (g_strcmp0 (filename, current) != 0) {
+		if (!egg_strequal (filename, current_file)) {
 			unsigned int iterator;
 			gchar *package_id = NULL;
 			gchar **package_ids = pk_backend_get_strv (backend_instance, "package_ids");
 
-			g_free (current);
-			current = g_strdup (filename);
+			g_free (current_file);
+			current_file = g_strdup (filename);
 
 			/* search for this package in package_ids */
 			for (iterator = 0; package_id == NULL && iterator < g_strv_length (package_ids); ++iterator) {
@@ -252,9 +259,24 @@ cb_dl_progress (const char *filename, off_t xfered, off_t total)
 		}
 	}
 
-	percent = (int) ((float) xfered) / ((float) total) * 100;
-	egg_debug ("alpm: download percentage for %s is %i", filename, percent);
-	// pk_backend_set_percentage ((PkBackend *) backend_instance, percent);
+	file_percent = (int) ((float) file_xfered) / ((float) file_total) * 100;
+	trans_percent = (int) ((float) (trans_xfered + file_xfered)) / ((float) trans_total) * 100;
+	pk_backend_set_sub_percentage ((PkBackend *) backend_instance, file_percent);
+	pk_backend_set_percentage((PkBackend *) backend_instance, trans_percent);
+
+	if (file_xfered == file_total) {
+		downloaded_files = alpm_list_add (downloaded_files, g_strdup (filename));
+		trans_xfered = trans_xfered + file_total;
+	}
+}
+
+static void
+cb_dl_total (off_t total)
+{
+	trans_total = total;
+	/* zero total size means that download is finished, so clear trans_xfered */
+	if (total == 0)
+		trans_xfered = 0;
 }
 
 static void
@@ -444,11 +466,11 @@ parse_config (const char *file, const char *givensection, pmdb_t * const givendb
 			egg_debug ("config: new section '%s'", section);
 			if (!strlen (section)) {
 				egg_debug ("config file %s, line %d: bad section name", file, linenum);
-				return (1);
+				return 1;
 			}
 
 			/* if we are not looking at the options section, register a db */
-			if (strcmp (section, "options") != 0)
+			if (!egg_strequal (section, "options"))
 				db = alpm_db_register_sync (section);
 		} else {
 			/* directive */
@@ -462,80 +484,80 @@ parse_config (const char *file, const char *givensection, pmdb_t * const givendb
 
 			if (key == NULL) {
 				egg_error ("config file %s, line %d: syntax error in config file - missing key.", file, linenum);
-				return (1);
+				return 1;
 			}
 			if (section == NULL) {
 				egg_error ("config file %s, line %d: all directives must belong to a section.", file, linenum);
-				return (1);
+				return 1;
 			}
 
-			if (ptr == NULL && strcmp (section, "options") == 0) {
+			if (ptr == NULL && egg_strequal (section, "options")) {
 				/* directives without settings, all in [options] */
-				if (strcmp (key, "NoPassiveFTP") == 0) {
+				if (egg_strequal (key, "NoPassiveFTP")) {
 					alpm_option_set_nopassiveftp (1);
 					egg_debug ("config: nopassiveftp");
-				} else if (strcmp (key, "UseSyslog") == 0) {
+				} else if (egg_strequal (key, "UseSyslog")) {
 					alpm_option_set_usesyslog (1);
 					egg_debug ("config: usesyslog");
-				} else if (strcmp (key, "UseDelta") == 0) {
+				} else if (egg_strequal (key, "UseDelta")) {
 					alpm_option_set_usedelta (1);
 					egg_debug ("config: usedelta");
 				} else {
 					egg_error ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
-					return(1);
+					return 1;
 				}
 			} else {
 				/* directives with settings */
-				if (strcmp (key, "Include") == 0) {
+				if (egg_strequal (key, "Include")) {
 					egg_debug ("config: including %s", ptr);
 					parse_config(ptr, section, db);
 					/* Ignore include failures... assume non-critical */
-				} else if (strcmp (section, "options") == 0) {
-					if (strcmp (key, "NoUpgrade") == 0) {
+				} else if (egg_strequal (section, "options")) {
+					if (egg_strequal (key, "NoUpgrade")) {
 						set_repeating_option (ptr, "NoUpgrade", alpm_option_add_noupgrade);
-					} else if (strcmp (key, "NoExtract") == 0) {
+					} else if (egg_strequal (key, "NoExtract")) {
 						set_repeating_option (ptr, "NoExtract", alpm_option_add_noextract);
-					} else if (strcmp (key, "IgnorePkg") == 0) {
+					} else if (egg_strequal (key, "IgnorePkg")) {
 						set_repeating_option (ptr, "IgnorePkg", alpm_option_add_ignorepkg);
-					} else if (strcmp (key, "IgnoreGroup") == 0) {
+					} else if (egg_strequal (key, "IgnoreGroup")) {
 						set_repeating_option (ptr, "IgnoreGroup", alpm_option_add_ignoregrp);
-					} else if (strcmp (key, "HoldPkg") == 0) {
+					} else if (egg_strequal (key, "HoldPkg")) {
 						set_repeating_option (ptr, "HoldPkg", alpm_option_add_holdpkg);
-					} else if (strcmp (key, "SyncFirst") == 0) {
+					} else if (egg_strequal (key, "SyncFirst")) {
 						set_repeating_option (ptr, "SyncFirst", option_add_syncfirst);
-					} else if (strcmp (key, "DBPath") == 0) {
+					} else if (egg_strequal (key, "DBPath")) {
 						alpm_option_set_dbpath (ptr);
-					} else if (strcmp (key, "CacheDir") == 0) {
+					} else if (egg_strequal (key, "CacheDir")) {
 						if (alpm_option_add_cachedir(ptr) != 0) {
 							egg_error ("problem adding cachedir '%s' (%s)", ptr, alpm_strerrorlast ());
-							return (1);
+							return 1;
 						}
 						egg_debug ("config: cachedir: %s", ptr);
-					} else if (strcmp (key, "RootDir") == 0) {
+					} else if (egg_strequal (key, "RootDir")) {
 						alpm_option_set_root (ptr);
 						egg_debug ("config: rootdir: %s", ptr);
-					} else if (strcmp (key, "LogFile") == 0) {
+					} else if (egg_strequal (key, "LogFile")) {
 						alpm_option_set_logfile (ptr);
 						egg_debug ("config: logfile: %s", ptr);
-					} else if (strcmp (key, "XferCommand") == 0) {
+					} else if (egg_strequal (key, "XferCommand")) {
 						alpm_option_set_xfercommand (ptr);
 						egg_debug ("config: xfercommand: %s", ptr);
 					} else {
 						egg_error ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
-						return (1);
+						return 1;
 					}
-				} else if (strcmp (key, "Server") == 0) {
+				} else if (egg_strequal (key, "Server")) {
 					/* let's attempt a replacement for the current repo */
 					char *server = strreplace (ptr, "$repo", section);
 
 					if (alpm_db_setserver (db, server) != 0) {
 						/* pm_errno is set by alpm_db_setserver */
-						return (1);
+						return 1;
 					}
 					free (server);
 				} else {
 					egg_error ("config file %s, line %d: directive '%s' not recognized.", file, linenum, key);
-					return (1);
+					return 1;
 				}
 			}
 		}
@@ -581,6 +603,7 @@ backend_initialize (PkBackend *backend)
 	}
 
 	alpm_option_set_dlcb (cb_dl_progress);
+	alpm_option_set_totaldlcb (cb_dl_total);
 
 	/* fill in group mapping */
 	group_map = g_hash_table_new (g_str_hash, g_str_equal);
@@ -952,7 +975,7 @@ backend_search (PkBackend *backend, pmdb_t *repo, const gchar *needle, PkAlpmSea
 				match = TRUE;
 				break;
 			case PK_ALPM_SEARCH_TYPE_RESOLVE:
-				match = strcmp (alpm_pkg_get_name (pkg), needle) == 0;
+				match = egg_strequal (alpm_pkg_get_name (pkg), needle);
 				break;
 			case PK_ALPM_SEARCH_TYPE_NAME:
 				match = strstr (alpm_pkg_get_name (pkg), needle) != NULL;
@@ -972,7 +995,7 @@ backend_search (PkBackend *backend, pmdb_t *repo, const gchar *needle, PkAlpmSea
 					gchar *group = (gchar *) g_hash_table_lookup (group_map, (char *) alpm_list_getdata (groups));
 					if (group == NULL)
 						group = (gchar *) "other";
-					match = strcmp (group, needle) == 0;
+					match = egg_strequal (group, needle);
 				}
 				break;
 			case PK_ALPM_SEARCH_TYPE_PROVIDES:
@@ -1508,4 +1531,3 @@ PK_BACKEND_OPTIONS (
 	NULL,						/* update_system */
 	backend_what_provides				/* what_provides */
 );
-
commit 1877214d5c914a0dd3e1dc34f6631babb36865b1
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Feb 17 16:54:56 2009 +0000

    trivial: we need the repo name for pk-app-install-merge-cache

diff --git a/docs/app-install-v1.draft b/docs/app-install-v1.draft
index 0235fd1..4894dc3 100644
--- a/docs/app-install-v1.draft
+++ b/docs/app-install-v1.draft
@@ -1,4 +1,4 @@
-***                     app-install version 1                                ***
+                     app-install version 1
 
 Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
 Copyright (C) 2009 Roderick B. Greening <roderick.greening at gmail.com>
@@ -81,6 +81,7 @@ TABLE localised:
 STRING application_id (name of the desktop file, with no extension)
 STRING application_name (Name in desktop file, in locale)
 STRING application_summary (Comment in desktop file, in locale)
+STRING repo_name (for adding and removal)
 STRING locale
 
 TABLE general
@@ -88,6 +89,7 @@ STRING application_id (name of the desktop file, with no extension)
 STRING package_name (to save on expensive SearchFile's)
 STRING icon_name (without path or extension)
 STRING group (Categories from desktop file, _not_ PK groups or PK categories)
+STRING repo_name (for adding and removal)
 STRING application_name (Name in desktop file)
 STRING application_summary (Comment in desktop file)
 
commit 4a42c74d153564d24c8b90dd70f6c6ecb13f880e
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Feb 17 16:49:18 2009 +0000

    trivial: provide the application filter enum

diff --git a/docs/api/spec/pk-concepts.xml b/docs/api/spec/pk-concepts.xml
index 23e0e94..2bfa380 100644
--- a/docs/api/spec/pk-concepts.xml
+++ b/docs/api/spec/pk-concepts.xml
@@ -164,6 +164,10 @@
             <entry>GUI programs typically depend on gtk, libkde or libxfce.</entry>
           </row>
           <row>
+            <entry><literal>application</literal> or <literal>~application</literal></entry>
+            <entry>Applications provide desktop files.</entry>
+          </row>
+          <row>
             <entry><literal>free</literal> or <literal>~free</literal></entry>
             <entry>
               Free software. The package contains only software and
diff --git a/lib/packagekit-glib/pk-enum.c b/lib/packagekit-glib/pk-enum.c
index 717c80f..5939024 100644
--- a/lib/packagekit-glib/pk-enum.c
+++ b/lib/packagekit-glib/pk-enum.c
@@ -224,6 +224,8 @@ static const PkEnumMatch enum_filter[] = {
 	{PK_FILTER_ENUM_NOT_SOURCE,		"~source"},
 	{PK_FILTER_ENUM_COLLECTIONS,		"collections"},
 	{PK_FILTER_ENUM_NOT_COLLECTIONS,	"~collections"},
+	{PK_FILTER_ENUM_APPLICATION,		"application"},
+	{PK_FILTER_ENUM_NOT_APPLICATION,	"~application"},
 	{0, NULL}
 };
 
diff --git a/lib/packagekit-glib/pk-enum.h b/lib/packagekit-glib/pk-enum.h
index f42dead..21da819 100644
--- a/lib/packagekit-glib/pk-enum.h
+++ b/lib/packagekit-glib/pk-enum.h
@@ -194,6 +194,8 @@ typedef enum {
 	PK_FILTER_ENUM_NOT_SOURCE,
 	PK_FILTER_ENUM_COLLECTIONS,
 	PK_FILTER_ENUM_NOT_COLLECTIONS,
+	PK_FILTER_ENUM_APPLICATION,
+	PK_FILTER_ENUM_NOT_APPLICATION,
 	PK_FILTER_ENUM_UNKNOWN
 } PkFilterEnum;
 


More information about the PackageKit-commit mailing list