[PackageKit-commit] packagekit: Branch 'master' - 10 commits
Richard Hughes
hughsient at kemper.freedesktop.org
Mon Mar 9 02:47:41 PDT 2009
NEWS | 41 +
RELEASE | 2
configure.ac | 10
contrib/Makefile.am | 4
contrib/app-install/.gitignore | 11
contrib/app-install/Makefile.am | 67 --
contrib/app-install/README | 5
contrib/app-install/egg-debug.c | 1
contrib/app-install/egg-debug.h | 1
contrib/app-install/pk-app-install-add.c | 262 -------
contrib/app-install/pk-app-install-common.h | 30
contrib/app-install/pk-app-install-create.c | 133 ---
contrib/app-install/pk-app-install-generate.c | 560 ----------------
contrib/app-install/pk-app-install-remove.c | 221 ------
docs/html/pk-download.html | 1
lib/packagekit-qt/src/client.cpp | 13
lib/packagekit-qt/src/clientprivate.h | 1
lib/packagekit-qt/src/package.cpp | 35 -
lib/packagekit-qt/src/package.h | 32
po/POTFILES.in | 4
po/ca.po | 865 +++++++++++++++++++-------
po/es.po | 362 ++++++----
22 files changed, 936 insertions(+), 1725 deletions(-)
New commits:
commit 31ae111ca83ba37b1445d212b855111fc8b66d01
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Mar 9 09:46:24 2009 +0000
Release version 0.4.5
diff --git a/NEWS b/NEWS
index 2ab0e35..a59c9f8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,44 @@
+Version 0.4.5
+~~~~~~~~~~~~~
+Released: 2009-03-09
+
+Translations:
+ - Updated Punjabi translation (A S Alam)
+ - Updated Spanish translation (Domingo Becker)
+ - Updated Brazilian Portuguese translation (Igor Pires Soares)
+ - Updated German translation (Jens-Uwe Peter)
+ - Updated Spanish translation (Jorge A Gallegos)
+ - Updated Polish translation (Piotr DrÄ
g)
+ - Updated Marathi Translations (Sandeep Sheshrao Shedmake)
+ - Updated Catalan translation (Xavier Conde)
+
+New Features:
+ - Enable ptrace() on libpackagekit, it was always a bandaid (Richard Hughes)
+ - python: add a PkError exception class to better handle nested errors (Richard Hughes)
+ - Clarify the spec that a Details::size value of zero of a non-installed file
+ indicates it's in cache and doesn't need to be downloaded (Richard Hughes)
+ - Remove the app-install feature, it's now it's own project (Richard Hughes)
+ - Allow backends to enable simultaneous mode to do actions in parallel (Richard Hughes)
+ - Updated QPackageKit soname version to 0.4.1 (Daniel Nicoletti)
+ - Made package methods const and added an operator== to package (Daniel Nicoletti)
+
+Bugfixes:
+ - When we reset a PkClient, get a new reference to a PkPackageList (Richard Hughes)
+ - Ensure we set PK_STATUS_ENUM_FINISHED when we return cached updates (Richard Hughes)
+ - glib: When we cancel a transaction, don't overwrite the role as Cancel (Richard Hughes)
+ - Fix the self test by using actual provides in the catalog file (Richard Hughes)
+
+Backends:
+ - apt: Update the postinst script to store desktop file information in the desktop.db (Sebastian Heinlein)
+ - conary: Fix some typos for search methods (Andres Vargas)
+ - conary: Fix the unicode decode (Andres Vargas)
+ - conary: Remove chars what break the backend (Andres Vargas)
+ - dummy: Add other package details for updates (Richard Hughes)
+ - dummy: Make the gpg and eula prompts configurable (Richard Hughes)
+ - yum: Do proper error handling to avoid exiting the script on correctable errors (Richard Hughes)
+ - yum: Support the 'any' provide search (Richard Hughes)
+ - yum: Output a Details::size value of zero if the file is in cache (Richard Hughes)
+
Version 0.4.4
~~~~~~~~~~~~~
Released: 2009-02-23
diff --git a/RELEASE b/RELEASE
index 7104e74..7e6ba6c 100644
--- a/RELEASE
+++ b/RELEASE
@@ -22,7 +22,7 @@ git push --tags git+ssh://hughsient@git.freedesktop.org/git/packagekit
5. Commit changes in gnome-packagekit git:
git commit -a -m "Release version 0.4.5"
-git-tag GNOME_PACKAGEKIT_0_4_5
+git tag GNOME_PACKAGEKIT_0_4_5
git push --tags
git push
diff --git a/configure.ac b/configure.ac
index 259b1f7..a168db8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@ DEVELOPMENT_RELEASE=yes
# AGE If libpackagekit can be linked into executables which can be
# built with previous versions of this library. Don't use.
LT_CURRENT=11
-LT_REVISION=3
+LT_REVISION=4
LT_AGE=0
AC_SUBST(LT_CURRENT)
AC_SUBST(LT_REVISION)
diff --git a/docs/html/pk-download.html b/docs/html/pk-download.html
index 7b30a44..c2b97ce 100644
--- a/docs/html/pk-download.html
+++ b/docs/html/pk-download.html
@@ -68,6 +68,7 @@ Releases are normally once every 1-2 weeks.
</p>
<table>
<tr><td><b>Version</b></td><td> </td><td><b>Date</b></td></tr>
+<tr><td>0.4.5</td><td></td><td>2009-03-09</td></tr>
<tr><td>0.4.4</td><td></td><td>2009-02-23</td></tr>
<tr><td>0.4.3</td><td></td><td>2009-02-02</td></tr>
<tr><td>0.4.2</td><td></td><td>2009-01-19</td></tr>
commit 60e4e000d24ed4465a997bae6aabfffb3312b216
Author: Richard Hughes <richard at hughsie.com>
Date: Mon Mar 9 09:37:49 2009 +0000
trivial: fix build
diff --git a/po/POTFILES.in b/po/POTFILES.in
index c760546..9887fec 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -7,10 +7,6 @@ client/pk-monitor.c
client/pk-tools-common.c
contrib/command-not-found/pk-command-not-found.c
contrib/browser-plugin/src/contents.cpp
-contrib/app-install/pk-app-install-add.c
-contrib/app-install/pk-app-install-create.c
-contrib/app-install/pk-app-install-generate.c
-contrib/app-install/pk-app-install-remove.c
data/packagekit-catalog.xml.in
data/packagekit-package-list.xml.in
data/packagekit-servicepack.xml.in
commit df30eedb281a211193e2fbcf8e7f4897f2ebc8ec
Author: Domingo Becker <domingobecker at gmail.com>
Date: Sun Mar 8 23:29:23 2009 +0000
updated Spanish translation
Transmitted-via: Transifex (translate.fedoraproject.org)
diff --git a/po/es.po b/po/es.po
index 8f4b711..34b88c5 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,5 +1,5 @@
-# Spanish translation of packagekit.
-# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Javier Alejandro Castro <javier.alejandro.castro at gmail.com>, 2008.
#
@@ -8,12 +8,13 @@ msgstr ""
"Project-Id-Version: packagekit\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-05 15:42+0000\n"
-"PO-Revision-Date: 2009-03-07 00:57-0600\n"
+"PO-Revision-Date: 2009-03-08 21:11-0300\n"
"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
-"Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
+"Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
#. TRANSLATORS: this is an atomic transaction
#: ../client/pk-console.c:234
@@ -31,11 +32,13 @@ msgid "Succeeded"
msgstr "Existosa"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:238
+#: ../client/pk-console.c:405
msgid "True"
msgstr "Verdadero"
-#: ../client/pk-console.c:238 ../client/pk-console.c:405
+#: ../client/pk-console.c:238
+#: ../client/pk-console.c:405
msgid "False"
msgstr "Falso"
@@ -93,7 +96,8 @@ msgstr "Tipo"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:301 ../client/pk-console.c:324
+#: ../client/pk-console.c:301
+#: ../client/pk-console.c:324
msgid "Summary"
msgstr "Resúmen"
@@ -187,7 +191,8 @@ msgstr "Emitido"
msgid "Updated"
msgstr "Actualizado"
-#: ../client/pk-console.c:476 ../client/pk-console.c:478
+#: ../client/pk-console.c:476
+#: ../client/pk-console.c:478
msgid "Percentage"
msgstr "Porcentaje"
@@ -238,16 +243,20 @@ msgid "The package %s could not be installed: %s"
msgstr "El paquete %s no se pudo instalar: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:724 ../client/pk-console.c:751
-#: ../client/pk-console.c:847 ../client/pk-console.c:964
-#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-console.c:724
+#: ../client/pk-console.c:751
+#: ../client/pk-console.c:847
+#: ../client/pk-console.c:964
+#: ../client/pk-tools-common.c:62
+#: ../client/pk-tools-common.c:81
#: ../client/pk-tools-common.c:89
#, c-format
msgid "Internal error: %s"
msgstr "Error interno: %s"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:732 ../client/pk-console.c:1360
+#: ../client/pk-console.c:732
+#: ../client/pk-console.c:1360
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "Esta herramienta no pudo instalar los paquetes: %s"
@@ -265,7 +274,8 @@ msgid "This tool could not remove %s: %s"
msgstr "Esta herramienta no pudo eliminar %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:838 ../client/pk-console.c:876
+#: ../client/pk-console.c:838
+#: ../client/pk-console.c:876
#: ../client/pk-console.c:909
#, c-format
msgid "This tool could not remove the packages: %s"
@@ -290,9 +300,7 @@ msgstr "¡La eliminación de paquetes fue cancelada!"
#: ../client/pk-console.c:941
#, c-format
msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
-"Esta herramienta no pudo descargar el paquete %s debido a que no fue "
-"encontrado"
+msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no fue encontrado"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
#: ../client/pk-console.c:972
@@ -301,25 +309,29 @@ msgid "This tool could not download the packages: %s"
msgstr "Esta herramienta no pudo descargar los paquetes: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:999 ../client/pk-console.c:1008
+#: ../client/pk-console.c:999
+#: ../client/pk-console.c:1008
#, c-format
msgid "This tool could not update %s: %s"
msgstr "Esta herramienta no pudo actualizar %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
+#: ../client/pk-console.c:1030
+#: ../client/pk-console.c:1038
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
+#: ../client/pk-console.c:1060
+#: ../client/pk-console.c:1068
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
+#: ../client/pk-console.c:1090
+#: ../client/pk-console.c:1098
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
@@ -343,13 +355,15 @@ msgid "File already exists: %s"
msgstr "El archivo ya existe: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
+#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1211
#: ../client/pk-console.c:1286
msgid "Getting package list"
msgstr "Obteniendo la lista de paquetes"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
+#: ../client/pk-console.c:1161
+#: ../client/pk-console.c:1217
#: ../client/pk-console.c:1292
#, c-format
msgid "This tool could not get package list: %s"
@@ -361,7 +375,8 @@ msgid "Failed to save to disk"
msgstr "Falló al guardar en el disco"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
+#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1281
#, c-format
msgid "File does not exist: %s"
msgstr "El archivo no existe: %s"
@@ -410,15 +425,13 @@ msgstr "Instalando paquetes"
#: ../client/pk-console.c:1389
#, c-format
msgid "This tool could not find the update details for %s: %s"
-msgstr ""
-"Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
+msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
#: ../client/pk-console.c:1397
#, c-format
msgid "This tool could not get the update details for %s: %s"
-msgstr ""
-"Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
+msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
#: ../client/pk-console.c:1443
@@ -487,18 +500,21 @@ msgstr "Subcomandos:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1757
+#: ../client/pk-generate-pack.c:185
#: ../client/pk-monitor.c:125
#: ../contrib/command-not-found/pk-command-not-found.c:510
#: ../contrib/app-install/pk-app-install-add.c:130
#: ../contrib/app-install/pk-app-install-create.c:48
#: ../contrib/app-install/pk-app-install-generate.c:392
-#: ../contrib/app-install/pk-app-install-remove.c:105 ../src/pk-main.c:199
+#: ../contrib/app-install/pk-app-install-remove.c:105
+#: ../src/pk-main.c:199
msgid "Show extra debugging information"
msgstr "Mostrar información extra de depuración"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1760
+#: ../client/pk-monitor.c:127
msgid "Show the program version and exit"
msgstr "Mostrar la versión del programa y salir"
@@ -528,8 +544,10 @@ msgid "A search type is required, e.g. name"
msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
-#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
+#: ../client/pk-console.c:1904
+#: ../client/pk-console.c:1912
+#: ../client/pk-console.c:1920
+#: ../client/pk-console.c:1928
msgid "A search term is required"
msgstr "Se necesita un término de búsqueda"
@@ -555,11 +573,8 @@ msgstr "Necesita dar un nombre de paquete a eliminar"
#. TRANSLATORS: the user did not specify anything about what to download or where
#: ../client/pk-console.c:1963
-msgid ""
-"A destination directory and then the package names to download are required"
-msgstr ""
-"Debe especificar el directorio destino y luego los nombres paquetes a "
-"descargar"
+msgid "A destination directory and then the package names to download are required"
+msgstr "Debe especificar el directorio destino y luego los nombres paquetes a descargar"
#. TRANSLATORS: the directory does not exist, so we can't continue
#: ../client/pk-console.c:1969
@@ -582,7 +597,8 @@ msgid "A package name to resolve is required"
msgstr "Se necesita un nombre de paquete a resolver"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
+#: ../client/pk-console.c:2009
+#: ../client/pk-console.c:2017
msgid "A repository name is required"
msgstr "Se necesita un nombre de repositorio"
@@ -608,9 +624,12 @@ msgstr "Falló al obtener la hora de la última vez que se completó esta acció
#. 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:2059 ../client/pk-console.c:2070
-#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
-#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2059
+#: ../client/pk-console.c:2070
+#: ../client/pk-console.c:2078
+#: ../client/pk-console.c:2094
+#: ../client/pk-console.c:2102
+#: ../client/pk-generate-pack.c:241
msgid "A package name is required"
msgstr "Se necesita un nombre de paquete"
@@ -625,7 +644,8 @@ msgid "A list file name to create is required"
msgstr "Se necesita un nombre de archivo de la lista"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
+#: ../client/pk-console.c:2119
+#: ../client/pk-console.c:2128
msgid "A list file to open is required"
msgstr "Se necesita un archivo de lista a abrir"
@@ -667,10 +687,8 @@ msgstr "Ponga el nombre del archivo de dependencias a excluir"
#. TRANSLATORS: the output location
#: ../client/pk-generate-pack.c:191
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
-"El directorio o archivo de salida (el directorio actual se usará si se omite)"
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr "El directorio o archivo de salida (el directorio actual se usará si se omite)"
#. TRANSLATORS: put a list of packages in the pack
#: ../client/pk-generate-pack.c:194
@@ -699,16 +717,15 @@ msgstr "Se necesita un directorio o nombre de archivo de salida"
#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
#. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:273
msgid "The package manager cannot perform this type of operation."
msgstr "El administrador de paquetes no puede realizar este tipo de operación."
#. 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 ""
-"Si especifica un archivo, el nombre del paquete de servicio debe finalizar "
-"con"
+msgstr "Si especifica un archivo, el nombre del paquete de servicio debe finalizar con"
#. TRANSLATORS: This is when file already exists
#: ../client/pk-generate-pack.c:301
@@ -911,14 +928,14 @@ msgstr "Instalando..."
#: ../contrib/app-install/pk-app-install-generate.c:395
#: ../contrib/app-install/pk-app-install-remove.c:108
msgid "Main cache file to use (if not specififed, default is used)"
-msgstr "Archivo caché principal para usar (si no se especifica, se usa el que esta por defecto)"
+msgstr "Archivo caché principal a usar (si no se especifica, se usará el predeterminado)"
#. TRANSLATORS: the source database, typically used for adding
#. TRANSLATORS: the applicationdir database, typically used for adding
#: ../contrib/app-install/pk-app-install-add.c:136
#: ../contrib/app-install/pk-app-install-generate.c:398
msgid "Source cache file to add to the main database"
-msgstr "Archivo caché fuente para añadir a la base de datos principal"
+msgstr "Archivo caché fuente para agregar a la base de datos principal"
#. TRANSLATORS: the icon directory
#. TRANSLATORS: the output directory
@@ -928,7 +945,7 @@ msgstr "Archivo caché fuente para añadir a la base de datos principal"
#: ../contrib/app-install/pk-app-install-generate.c:404
#: ../contrib/app-install/pk-app-install-remove.c:111
msgid "Icon directory"
-msgstr "Directorio de Ãconos"
+msgstr "Directorio de Iconos"
#. TRANSLATORS: the repo of the software source, e.g. fedora
#. TRANSLATORS: the repo of the software applicationdir, e.g. fedora
@@ -937,7 +954,7 @@ msgstr "Directorio de Ãconos"
#: ../contrib/app-install/pk-app-install-generate.c:407
#: ../contrib/app-install/pk-app-install-remove.c:114
msgid "Name of the remote repo"
-msgstr "Nombre del repositorio remoto"
+msgstr "Nombre del repo remoto"
#. TRANSLATORS: tool that gets called when the command is not found
#: ../contrib/app-install/pk-app-install-add.c:153
@@ -945,12 +962,12 @@ msgstr "Nombre del repositorio remoto"
#: ../contrib/app-install/pk-app-install-generate.c:418
#: ../contrib/app-install/pk-app-install-remove.c:125
msgid "PackageKit Application Database Installer"
-msgstr "Instalador de Base de Datos de Aplicaciones de PackageKit"
+msgstr "Instalador de la Base de Datos de Aplicaciones de PackageKit"
#. TRANSLATORS: if we are specifing a out-of-tree database
#: ../contrib/app-install/pk-app-install-create.c:51
msgid "Main database file to use (if not specififed, default is used)"
-msgstr "Archivo de base de datos principal para usar (si no se especifica, se usa el por defecto)"
+msgstr "Base de datos principal a usar (si no se especifica se usará el predeterminado)"
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
@@ -981,12 +998,8 @@ msgstr "El usuario correcto no esta lanzando el ejecutable (usualmente root)"
#. TRANSLATORS: or we are installed in a prefix
#: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
-"El archivo org.freedesktop.PackageKit.conf no está instalado en el "
-"directorio del sistema:"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "El archivo org.freedesktop.PackageKit.conf no está instalado en el directorio del sistema:"
#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
#: ../src/pk-main.c:193
@@ -1036,43 +1049,30 @@ msgstr "Error intentando arrancar: %s\n"
#~ msgid "You need to specify a search type, e.g. name"
#~ msgstr "Debe especificar el tipo de búsqueda, por ejemplo, nombre"
-
#~ msgid "You need to specify a search term"
#~ msgstr "Debe especificar un término de búsqueda"
-
#~ msgid "You need to specify a package or file to install"
#~ msgstr "Debe especificar un paquete o archivo a instalar"
-
#~ msgid "You need to specify a package to remove"
#~ msgstr "Debe especificar un paquete a eliminar"
-
#~ msgid "You need to specify a package name to resolve"
#~ msgstr "Debe especificar un nombre de paquete a resolver"
-
#~ msgid "You need to specify a repository name"
#~ msgstr "Debe especificar un nombre de repositorio"
-
#~ msgid "You need to specify a correct role"
#~ msgstr "Debe especificar un rol correcto"
-
#~ msgid "Failed to get last time"
#~ msgstr "Fállo al obtener última hora"
-
#~ msgid "You need to specify a package to find the details for"
#~ msgstr "Debe especificar un paquete para el que buscar la descripción"
-
#~ msgid "You need to specify a package to find the files for"
#~ msgstr "Debe especificar un paquete para el que buscar los archivos"
-
#~ msgid "You need to specify a list file to create"
#~ msgstr "Debe especificar un archivo de lista a crear"
-
#~ msgid "You need to specify a list file to open"
#~ msgstr "Debe especificar un archivo de lista a abrir"
-
#~ msgid "Accept EULA"
#~ msgstr "Aceptar EULA"
-
#~ msgid "Authentication is required to accept a EULA"
#~ msgstr "Se requiere autenticación para aceptar una EULA"
@@ -1083,7 +1083,6 @@ msgstr "Error intentando arrancar: %s\n"
#~ msgstr ""
#~ "Se requiere autenticación para cambiar los parametros de fuente de "
#~ "software"
-
#~ msgid "Authentication is required to change software source parameters"
#~ msgstr ""
#~ "Se requiere autenticación para cambiar los parametros de fuente de "
@@ -1106,10 +1105,8 @@ msgstr "Error intentando arrancar: %s\n"
#, fuzzy
#~ msgid "Authentication is required to refresh the system sources"
#~ msgstr "Se requiere autenticación para refrescar la lista de paquetes"
-
#~ msgid "Authentication is required to remove packages"
#~ msgstr "Se requiere autenticación para eliminar paquetes"
-
#~ msgid "Authentication is required to rollback a transaction"
#~ msgstr "Se requiere autenticación para deshacer una transaccion"
@@ -1118,10 +1115,8 @@ msgstr "Error intentando arrancar: %s\n"
#~ "Authentication is required to set the network proxy used for downloading "
#~ "packages"
#~ msgstr "Se requiere autenticación para eliminar paquetes"
-
#~ msgid "Authentication is required to update packages"
#~ msgstr "Se requiere autenticación para actualizar paquetes"
-
#~ msgid "Change software source parameters"
#~ msgstr "Cambiar los parametros de fuente de software"
@@ -1132,150 +1127,114 @@ msgstr "Error intentando arrancar: %s\n"
#, fuzzy
#~ msgid "Install untrusted local file"
#~ msgstr "Instalar archivo local"
-
#~ msgid "Remove package"
#~ msgstr "Eliminar paquete"
-
#~ msgid "Rollback to a previous transaction"
#~ msgstr "Deshacer hasta una transaccion previa"
#, fuzzy
#~ msgid "Update packages"
#~ msgstr "Actualizar paquete"
-
#~ msgid "This tool could not remove the packages: '%s'"
#~ msgstr "Esta herramienta no pudo eliminar los paquetes: '%s'"
-
#~ msgid "Install local file"
#~ msgstr "Instalar archivo local"
-
#~ msgid "Okay to import key?"
#~ msgstr "¿De acuerto con importer la clave?"
-
#~ msgid "Did not import key"
#~ msgstr "No se importó la clave"
-
#~ msgid "Do you agree?"
#~ msgstr "¿Está de acuerdo?"
-
#~ msgid "Could not find package to remove"
#~ msgstr "No se pudo encontrar el paquete a eliminar"
-
#~ msgid "Cancelled!"
#~ msgstr "Cancelado!"
-
#~ msgid "Could not find package to update"
#~ msgstr "No se pudo encontrar el paquete a actualizar"
-
#~ msgid "Could not find what packages require"
#~ msgstr "No se pudo encontrar cuales paquetes requiere este paquete"
-
#~ msgid "Could not find details for"
#~ msgstr "No se pudieron obtener los detalles de "
-
#~ msgid "Could not find a package match"
#~ msgstr "No se pudo encontrar un paquete coincidente"
#, fuzzy
#~ msgid "Could not set database readonly"
#~ msgstr "No se pudo abrir la base de datos: %s"
-
#~ msgid "Could not open database: %s"
#~ msgstr "No se pudo abrir la base de datos: %s"
-
#~ msgid "You probably need to run this program as the root user"
#~ msgstr "Probablemente necesita ejecutar este programa como el usuario root"
-
#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>Ejecutar %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'>Ejecutar versión %s ahora</span>"
-
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Run now</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Ejecutar ahora</span>"
-
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Actualizar a la versión %s</span>"
-
#~ msgid ""
#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>Instalar %s Ahora</"
#~ "span>"
-
#~ msgid ""
#~ "\n"
#~ "<small>Version: %s</small>"
#~ msgstr ""
#~ "\n"
#~ "<small>Versión: %s</small>"
-
#~ msgid "failed to download: invalid package_id and/or directory"
#~ msgstr "falló la descarga: id de paquete inválido y/o directorio"
-
#~ msgid "Could not find a valid metadata file"
#~ msgstr "No se pudo encontrar un archivo de metadatos válido"
-
#~ msgid "Okay to download the additional packages"
#~ msgstr "Listo para descargar los paquetes adicionales"
-
#~ msgid "You need to specify the pack name and packages to be packed\n"
#~ msgstr "Debe especificar el nombre de grupo y los paquetes a agrupar\n"
-
#~ msgid ""
#~ "Invalid name for the service pack, Specify a name with .servicepack "
#~ "extension\n"
#~ msgstr ""
#~ "Nombre inválido para el paquete de servicio. Especifique un nombre con la "
#~ "extensión .servicepack\n"
-
#~ msgid "Authentication is required to install a local file"
#~ msgstr "Se requiere autenticación para instalar un archivo local"
-
#~ msgid "Authentication is required to install a security signature"
#~ msgstr "Se requiere autenticación para instalar una firma de seguridad"
-
#~ msgid "Authentication is required to update all packages"
#~ msgstr "Se requiere autenticación para actualizar todos los paquetes"
-
#~ msgid "Install security signature"
#~ msgstr "Instalar firma de seguridad"
-
#~ msgid "Refresh package lists"
#~ msgstr "Refrescar lista de paquetes"
-
#~ msgid "Update all packages"
#~ msgstr "Actualizar todos los paquetes"
-
#~ msgid ""
#~ "Could not find a package with that name to install, or package already "
#~ "installed"
#~ msgstr ""
#~ "No se pudo encontrar un paquete con ese nombre para instalar, o el "
#~ "paquete ya está instalado"
-
#~ msgid "Could not find a package with that name to update"
#~ msgstr "No se pudo encontrar un paquete con ese nombre para actualizar"
-
#~ msgid "Could not find a description for this package"
#~ msgstr "No se pudo encontrar una descripcion para este paquete"
-
#~ msgid "You need to specify a package to find the description for"
#~ msgstr "Debe especificar un paquete para el que buscar la descripción"
+
commit 83bf4f35ffa9e198e6aaf7e93bb60236953f5960
Author: Xavier Conde <xavi.conde at gmail.com>
Date: Sun Mar 8 16:40:02 2009 +0000
Updated catalan po
Transmitted-via: Transifex (translate.fedoraproject.org)
diff --git a/po/ca.po b/po/ca.po
index ae3d022..8e917bf 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -21,754 +21,1173 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-11-24 01:31+0000\n"
-"PO-Revision-Date: 2008-12-14 20:57+0100\n"
-"Last-Translator: Agustà Grau <fletxa at gmail.com>\n"
+"POT-Creation-Date: 2009-03-03 02:18+0000\n"
+"PO-Revision-Date: 2009-03-07 08:46+0100\n"
+"Last-Translator: Pau Iranzo <pau at somgnu.cat>\n"
"Language-Team: Catalan <fedora at softcatala.net>\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"
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:230
+msgid "Transaction"
+msgstr "Transacció"
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:232
+msgid "System time"
+msgstr "Temps del sistema"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:234
+msgid "Succeeded"
+msgstr "Fet"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:234 ../client/pk-console.c:401
+msgid "True"
+msgstr "Cert"
+
+#: ../client/pk-console.c:234 ../client/pk-console.c:401
+msgid "False"
+msgstr "Fals"
+
+#. TRANSLATORS: this is the transactions role, e.g. "update-system"
+#: ../client/pk-console.c:236
+msgid "Role"
+msgstr "Rol"
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:241
+msgid "Duration"
+msgstr "Durada"
+
+#: ../client/pk-console.c:241
+msgid "(seconds)"
+msgstr "(segons)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#: ../client/pk-console.c:245
+msgid "Command line"
+msgstr "LÃnia d'ordres"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:247
+msgid "User ID"
+msgstr "ID d'usuari"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:254
+msgid "Username"
+msgstr "Nom d'usuari"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:258
+msgid "Real name"
+msgstr "Nom real"
+
+#: ../client/pk-console.c:266
+msgid "Affected packages:"
+msgstr "Paquets afectats:"
+
+#: ../client/pk-console.c:268
+msgid "Affected packages: None"
+msgstr "Paquets afectats: cap"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:293
+msgid "Distribution"
+msgstr "Distribució"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:295
+msgid "Type"
+msgstr "Tipus"
+
+#. 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:320
+msgid "Summary"
+msgstr "Resum"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:309
+msgid "Category"
+msgstr "Categoria"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:311
+msgid "ID"
+msgstr "ID"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:314
+msgid "Parent"
+msgstr "Pare"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:317
+msgid "Name"
+msgstr "Nom"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:323
+msgid "Icon"
+msgstr "Icona"
+
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:287
+#: ../client/pk-console.c:338
msgid "Details about the update:"
msgstr "Detalls quant a l'actualització:"
-#: ../client/pk-console.c:480
+#. TRANSLATORS: details about the update, package name and version
+#: ../client/pk-console.c:340
+msgid "Package"
+msgstr "Paquet"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:343
+msgid "Updates"
+msgstr "Actualitzacions"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:347
+msgid "Obsoletes"
+msgstr "Obsolets"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:351
+msgid "Vendor"
+msgstr "Proveïdor"
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:355
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:359
+msgid "CVE"
+msgstr "CVE"
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:363
+msgid "Restart"
+msgstr "Reinicia"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:367
+msgid "Update text"
+msgstr "Actualitza el text"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:371
+msgid "Changes"
+msgstr "Canvis"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:375
+msgid "State"
+msgstr "Estat"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:380
+msgid "Issued"
+msgstr "Emès"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:385
+msgid "Updated"
+msgstr "Actualitzat"
+
+#: ../client/pk-console.c:472 ../client/pk-console.c:474
+msgid "Percentage"
+msgstr "Percentatge"
+
+#: ../client/pk-console.c:474
+msgid "Unknown"
+msgstr "Desconegut"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:525
+msgid "System restart required by:"
+msgstr "Es requereix reiniciar el sistema per:"
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:528
+msgid "Session restart required:"
+msgstr "Es requereix reiniciar la sessió:"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:531
+msgid "Application restart required by:"
+msgstr "Es requereix reiniciar l'aplicació per:"
+
+#. TRANSLATORS: a package needs to restart they system
+#: ../client/pk-console.c:568
msgid "Please restart the computer to complete the update."
msgstr "Reinicieu l'ordinador per completar l'actualització."
-#: ../client/pk-console.c:482
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:571
msgid "Please logout and login to complete the update."
msgstr "Sortiu i torneu a entrar per completar l'actualització."
-#: ../client/pk-console.c:484
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:574
msgid "Please restart the application as it is being used."
msgstr "Cal que reinicieu l'aplicació perquè s'està fent servir."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:596
+#: ../client/pk-console.c:687
#, c-format
msgid "The package %s is already installed"
msgstr "El paquet %s ja està instal·lat"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:604
+#: ../client/pk-console.c:695
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "El paquet %s no s'ha pogut instal·lar: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../client/pk-console.c:629
-#: ../client/pk-console.c:656
-#: ../client/pk-console.c:752
-#: ../client/pk-console.c:869
-#: ../client/pk-tools-common.c:61
-#: ../client/pk-tools-common.c:79
-#: ../client/pk-tools-common.c:86
+#: ../client/pk-console.c:720 ../client/pk-console.c:747
+#: ../client/pk-console.c:843 ../client/pk-console.c:960
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
#, c-format
msgid "Internal error: %s"
msgstr "Error intern: %s"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:637
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:728 ../client/pk-console.c:1356
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "No s'ha pogut instal·lar els paquets: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:664
+#: ../client/pk-console.c:755
#, c-format
msgid "This tool could not install the files: %s"
msgstr "No s'ha pogut instal·lar els fitxers: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:720
+#: ../client/pk-console.c:811
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "No s'ha pogut esborrar %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:743
-#: ../client/pk-console.c:781
-#: ../client/pk-console.c:814
+#: ../client/pk-console.c:834 ../client/pk-console.c:872
+#: ../client/pk-console.c:905
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "No s'han pogut esborrar els paquets: %s"
#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:793
+#: ../client/pk-console.c:884
msgid "The following packages have to be removed:"
msgstr "Els següents paquets s'han d'esborrar:"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:800
+#: ../client/pk-console.c:891
msgid "Proceed removing additional packages?"
msgstr "Voleu esborrar paquets adicionals?"
#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:805
+#: ../client/pk-console.c:896
msgid "The package removal was canceled!"
msgstr "L'esborrament dels paquets s'ha cancel·lat!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:846
+#: ../client/pk-console.c:937
#, c-format
msgid "This tool could not download the package %s as it could not be found"
msgstr "No s'ha pogut baixar el paquet %s perquè no s'ha trobat"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:877
+#: ../client/pk-console.c:968
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "No s'han pogut baixar els paquets: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:904
-#: ../client/pk-console.c:913
+#: ../client/pk-console.c:995 ../client/pk-console.c:1004
#, c-format
msgid "This tool could not update %s: %s"
msgstr "No s'ha pogut actualitzar %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:935
-#: ../client/pk-console.c:943
+#: ../client/pk-console.c:1026 ../client/pk-console.c:1034
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "No s'han pogut obtenir els requeriments per a %s: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:965
-#: ../client/pk-console.c:973
+#: ../client/pk-console.c:1056 ../client/pk-console.c:1064
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "No s'han pogut obtenir les dependències per a %s: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:995
-#: ../client/pk-console.c:1003
+#: ../client/pk-console.c:1086 ../client/pk-console.c:1094
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "No s'ha pogut obtenir els detalls del paquet %s: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1025
+#: ../client/pk-console.c:1116
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "No s'han pogut trobar els fitxers %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1033
+#: ../client/pk-console.c:1124
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "No s'ha pogut obtenir la llista de fitxers per a %s: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1055
+#: ../client/pk-console.c:1146
#, c-format
msgid "File already exists: %s"
msgstr "El fitxer ja existeix: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1060
-#: ../client/pk-console.c:1116
-#: ../client/pk-console.c:1191
+#: ../client/pk-console.c:1151 ../client/pk-console.c:1207
+#: ../client/pk-console.c:1282
msgid "Getting package list"
msgstr "S'està obtenint la llista de paquets"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1066
-#: ../client/pk-console.c:1122
-#: ../client/pk-console.c:1197
+#: ../client/pk-console.c:1157 ../client/pk-console.c:1213
+#: ../client/pk-console.c:1288
#, c-format
msgid "This tool could not get package list: %s"
msgstr "No s'ha pogut obtenir la llista de paquets: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1077
+#: ../client/pk-console.c:1168
msgid "Failed to save to disk"
msgstr "S'ha produït un error en desar al disc"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1111
-#: ../client/pk-console.c:1186
+#: ../client/pk-console.c:1202 ../client/pk-console.c:1277
#, c-format
msgid "File does not exist: %s"
msgstr "El fitxer no existeix: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1143
+#: ../client/pk-console.c:1234
msgid "Packages to add"
msgstr "Paquets a afegir"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1151
+#: ../client/pk-console.c:1242
msgid "Packages to remove"
msgstr "Paquets a esborrar"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1219
+#: ../client/pk-console.c:1310
msgid "No new packages need to be installed"
msgstr "No és necessari instal·lar paquets nous"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1316
msgid "To install"
msgstr "Per a instal·lar"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1236
+#: ../client/pk-console.c:1328
msgid "Searching for package: "
msgstr "S'està cercant el paquet:"
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1240
+#: ../client/pk-console.c:1332
msgid "not found."
msgstr "no s'ha trobat."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1251
+#: ../client/pk-console.c:1343
msgid "No packages can be found to install"
msgstr "No s'han trobat paquets per a instal·lar"
#. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1257
+#: ../client/pk-console.c:1349
msgid "Installing packages"
msgstr "S'estan instal·lant els paquets"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1293
+#: ../client/pk-console.c:1385
#, c-format
msgid "This tool could not find the update details for %s: %s"
msgstr "No s'han trobat els detalls per a actualitzar %s: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1301
+#: ../client/pk-console.c:1393
#, c-format
msgid "This tool could not get the update details for %s: %s"
msgstr "No s'han pogut obtenir els detalls per a actualitzar %s: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1347
+#: ../client/pk-console.c:1439
msgid "Error:"
msgstr "S'ha produït un error:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1361
+#: ../client/pk-console.c:1453
msgid "Package description"
msgstr "Descripció del paquet"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1394
+#: ../client/pk-console.c:1487
msgid "Package files"
msgstr "Fitxers del paquet"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1403
+#: ../client/pk-console.c:1495
msgid "No files"
msgstr "Sense fitxers"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1518
msgid "Repository signature required"
msgstr "Es requereix la firma del repositori"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1436
+#: ../client/pk-console.c:1528
msgid "Do you accept this signature?"
msgstr "Accepteu aquesta firma?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1440
+#: ../client/pk-console.c:1532
msgid "The signature was not accepted."
msgstr "No s'ha acceptat la firma."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1566
msgid "End user license agreement required"
msgstr "Es requeriex l'acord de llicència d'usuari final"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1481
+#: ../client/pk-console.c:1573
msgid "Do you agree to this license?"
msgstr "Esteu d'acord amb aquesta llicència?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1577
msgid "The license was refused."
msgstr "La llicència s'ha rebutjat."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1514
+#: ../client/pk-console.c:1606
msgid "The daemon crashed mid-transaction!"
msgstr "Ha fallat el dimoni durant una transacció."
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1567
+#: ../client/pk-console.c:1659
msgid "PackageKit Console Interface"
msgstr "InterfÃcie de consola de PackageKit"
-#: ../client/pk-console.c:1567
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1661
msgid "Subcommands:"
msgstr "Subordres:"
-#: ../client/pk-console.c:1658
-#: ../client/pk-generate-pack.c:184
-#: ../client/pk-monitor.c:115
-#: ../src/pk-main.c:191
+#. TRANSLATORS: command line argument, if we should show debugging information
+#. TRANSLATORS: if we should show debugging data
+#: ../client/pk-console.c:1753 ../client/pk-generate-pack.c:185
+#: ../client/pk-monitor.c:125
+#: ../contrib/command-not-found/pk-command-not-found.c:510
+#: ../contrib/app-install/pk-app-install-add.c:244
+#: ../contrib/app-install/pk-app-install-create.c:48
+#: ../contrib/app-install/pk-app-install-generate.c:244
+#: ../contrib/app-install/pk-app-install-remove.c:87 ../src/pk-main.c:199
msgid "Show extra debugging information"
msgstr "Mostra informació extra de depuració"
-#: ../client/pk-console.c:1660
-#: ../client/pk-monitor.c:117
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1756 ../client/pk-monitor.c:127
msgid "Show the program version and exit"
msgstr "Mostra la versió de l'aplicació i surt"
-#: ../client/pk-console.c:1662
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1759
msgid "Set the filter, e.g. installed"
msgstr "Configura el filtre, p.e. instal·lats"
-#: ../client/pk-console.c:1664
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1762
msgid "Exit without waiting for actions to complete"
msgstr "Surt sense esperar que les accions es completin"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1691
+#: ../client/pk-console.c:1789
msgid "This tool could not connect to system DBUS."
msgstr "No s'ha pogut connectar amb el sistema DBUS."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1776
+#: ../client/pk-console.c:1876
msgid "The filter specified was invalid"
msgstr "El filtre especificat era invà lid"
-#: ../client/pk-console.c:1793
-msgid "You need to specify a search type, e.g. name"
-msgstr "Us cal especificar un tipus de cerca, p.e. per nom"
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1894
+msgid "A search type is required, e.g. name"
+msgstr "Es requreix un mot de cerca, p.e. nom"
-#: ../client/pk-console.c:1798
-#: ../client/pk-console.c:1805
-#: ../client/pk-console.c:1812
-#: ../client/pk-console.c:1819
-#: ../client/pk-console.c:1930
-#: ../client/pk-console.c:1940
-#: ../client/pk-console.c:1947
-#: ../client/pk-console.c:1954
-msgid "You need to specify a search term"
-msgstr "us cal especificar un terme de cerca"
+#. TRANSLATORS: the user needs to provide a search term
+#: ../client/pk-console.c:1900 ../client/pk-console.c:1908
+#: ../client/pk-console.c:1916 ../client/pk-console.c:1924
+msgid "A search term is required"
+msgstr "Es requereix un terme de cerca"
-#: ../client/pk-console.c:1824
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1930
msgid "Invalid search type"
msgstr "Tipus de cerca invà lida"
-#: ../client/pk-console.c:1829
-msgid "You need to specify a package or file to install"
-msgstr "Us cal especificar un paquet o fitxer per a instal·lar"
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1936
+msgid "A package name or filename to install is required"
+msgstr "Es requreix un nom de paquet o fitxer per instal·lar"
-#: ../client/pk-console.c:1836
-msgid "You need to specify a type, key_id and package_id"
-msgstr "Us especifcar un tipus, un key_id o un package_id"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1944
+msgid "A type, key_id and package_id are required"
+msgstr "Es requereixen un tipus, una clau_id i un paquet_id"
-#: ../client/pk-console.c:1843
-msgid "You need to specify a package to remove"
-msgstr "Us cal especificar un paquet per a esborrar"
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1952
+msgid "A package name to remove is required"
+msgstr "Es requereix un nom de paquet per eliminar"
-#: ../client/pk-console.c:1849
-msgid "You need to specify the destination directory and then the packages to download"
-msgstr "Us cal especificar el directori destà i, llavors, els paquets a descarregar"
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:1959
+msgid ""
+"A destination directory and then the package names to download are required"
+msgstr ""
+"Us cal especificar el directori destà i els noms des paquets per a descarregar"
-#: ../client/pk-console.c:1854
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:1965
msgid "Directory not found"
msgstr "No s'ha trobar el directori"
-#: ../client/pk-console.c:1860
-msgid "You need to specify a licence identifier (eula-id)"
-msgstr "Us cal especificar un identificador de llicència (eula-id)"
-
-#: ../client/pk-console.c:1876
-msgid "You need to specify a package name to resolve"
-msgstr "Us cal especificar el nom d'un paquet per a resoldre"
-
-#: ../client/pk-console.c:1885
-#: ../client/pk-console.c:1892
-msgid "You need to specify a repository name"
-msgstr "Us cal especificar el nom d'un repositori"
-
-#: ../client/pk-console.c:1899
-msgid "You need to specify a repo name/parameter and value"
-msgstr "Us cal especificar el nom o el parà metre d'un repositori i el seu valor"
-
-#: ../client/pk-console.c:1912
-msgid "You need to specify an action, e.g. 'update-system'"
-msgstr "Us cal especificar una acció, p.e. 'update-system'"
-
-#: ../client/pk-console.c:1917
-msgid "You need to specify a correct role"
-msgstr "Us cal especificar un rol và lid"
-
-#: ../client/pk-console.c:1922
-msgid "Failed to get last time"
-msgstr "S'ha produït un error en obtenir l'últim cop"
-
-#: ../client/pk-console.c:1961
-msgid "You need to specify a package to find the details for"
-msgstr "Us cal especificar un paquet per a trobar-ne els seus detalls"
-
-#: ../client/pk-console.c:1968
-msgid "You need to specify a package to find the files for"
-msgstr "Us cal especificar un paquet per a trobar-ne els seus fitxers"
-
-#: ../client/pk-console.c:1975
-msgid "You need to specify a list file to create"
-msgstr "Us cal especificar una llista de fitxers a crear"
-
-#: ../client/pk-console.c:1983
-#: ../client/pk-console.c:1991
-msgid "You need to specify a list file to open"
-msgstr "Us cal especificar una llista de fitxers a obrir"
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1972
+msgid "A licence identifier (eula-id) is required"
+msgstr "Es requreix un identificador de llicència (eula-id)"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1981
+msgid "A transaction identifier (tid) is required"
+msgstr "Es requreix un identificador de transacció (idt)"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:1997
+msgid "A package name to resolve is required"
+msgstr "Es requereix un nom de paquet per resoldre"
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2005 ../client/pk-console.c:2013
+msgid "A repository name is required"
+msgstr "Es requreix un nom del repositori"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2021
+msgid "A repo name, parameter and value are required"
+msgstr "Es requreixen el nom o el parà metre d'un repositori i el seu valor"
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2034
+msgid "An action, e.g. 'update-system' is required"
+msgstr "Es requereix una acció, p.e. 'update-system'"
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2040
+msgid "A correct role is required"
+msgstr "Es requereix un rol correcte"
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2046
+msgid "Failed to get the time since this action was last completed"
+msgstr "No s'ha pogut obtenir l'hora des que aquesta acció es va completar per darrera vegada"
+
+#. 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:2055 ../client/pk-console.c:2066
+#: ../client/pk-console.c:2074 ../client/pk-console.c:2090
+#: ../client/pk-console.c:2098 ../client/pk-generate-pack.c:241
+msgid "A package name is required"
+msgstr "Es requreix un nom del paquet"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2082
+msgid "A package provide string is required"
+msgstr "Es requreix una cadena de proveïdor de paquet"
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2106
+msgid "A list file name to create is required"
+msgstr "Es requreix un fitxer de llista per crear"
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2115 ../client/pk-console.c:2124
+msgid "A list file to open is required"
+msgstr "Es requereix un fitxer de llista per obrir"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2044
+#: ../client/pk-console.c:2177
#, c-format
msgid "Option '%s' is not supported"
msgstr "L'opció '%s' no està disponible"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2057
-msgid "You don't have the necessary privileges for this operation"
+#: ../client/pk-console.c:2190
+msgid "Incorrect privileges for this operation"
msgstr "No teniu els privilegis necessaris per a aquesta operació"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2060
+#: ../client/pk-console.c:2193
msgid "Command failed"
msgstr "Ha fallat l'ordre"
#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:100
+#: ../client/pk-generate-pack.c:101
msgid "Downloading"
msgstr "S'està descarregant"
#. 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 "S'està n baixant els paquets"
#. 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 "S'està n baixant les dependències"
-#: ../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 "Configureu els noms dels fitxers de dependències que s'han d'excloure"
-#: ../client/pk-generate-pack.c:188
-msgid "The output directory (the current directory is used if ommitted)"
-msgstr "El directori de sortida (per omissió s'utilitzarà el directori actual)"
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"El directori de sortida (per omissió s'utilitzarà el directori actual)"
-#: ../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 "El paquet que s'ha d'incloure en el service pack"
-#: ../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 "Inclou totes les actualitzacions disponibles en el service pack"
#. 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 "Ni l'opció --package ni --updates s'han seleccionat."
#. 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 "S'han seleccionat les dues opcions."
+#. 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 "Es requreix un directori de sortida o un nom de fitxer"
+
+#. 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 "El gestor de paquets no pot dur a terme aquest tipus d'operació."
+
+#. 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 "Si s'especifica un fitxer, el nom de paquet de servei ha d'acabar amb"
+
#. 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 "Ja existeix un paquet amb el mateix nom, desitgeu sobreescriure'l?"
#. 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 "No s'ha sobreescrit el paquet"
#. 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 "Ha fallat la creació del directori:"
#. 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 "S'ha produït un error en obrir la llista de paquets."
#. 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 "S'està cercant el nom del paquet."
#. 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 "Ha fallat en trobar el paquet '%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 "S'està creant el service pack..."
#. 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 "S'ha creat el service pack '%s'"
#. 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 "Ha fallat la creació de '%s': %s"
-#: ../client/pk-monitor.c:132
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:143
msgid "PackageKit Monitor"
msgstr "Monitor de PackageKit"
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
msgid "The package could not be found"
msgstr "No s'ha pogut trobar el paquet"
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
msgid "More than one package matches:"
msgstr "S'han trobat més d'un paquet que coincideixen amb:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
msgid "Please choose the correct package: "
msgstr "Escolliu el paquet correcte:"
-#: ../client/pk-tools-common.c:158
+#: ../client/pk-tools-common.c:162
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "Introduïu un número de l'1 fins al %i:"
+#. TRANSLATORS: we failed to find the package, this shouldn't happen
+#: ../contrib/command-not-found/pk-command-not-found.c:361
+msgid "Failed to search for file"
+msgstr "S'ha produït un error en cercar el fitxer"
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:485
+msgid "Failed to launch:"
+msgstr "S'ha produït un error en executar:"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/command-not-found/pk-command-not-found.c:526
+msgid "PackageKit Command Not Found"
+msgstr "No s'ha trobat l'ordre al PackageKit"
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:548
+msgid "Command not found."
+msgstr "No s'ha trobat l'ordre."
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:555
+msgid "Similar command is:"
+msgstr "Una ordre similar és:"
+
+#. 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 "Executa una ordre 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
+msgid "Similar commands are:"
+msgstr "Ordres similars són:"
+
+#. 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 "Trieu una ordre per a executar"
+
+#. TRANSLATORS: tell the user what package provides the command
+#: ../contrib/command-not-found/pk-command-not-found.c:607
+msgid "The package providing this file is:"
+msgstr "El paquet que proveeix aquest fitxer és:"
+
+#. 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 "Voleu instal·lar el paquet '%s' per proveir l'ordre '%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 "Paquets que proveeixen aquest fitxer són:"
+
+#. 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 "Paquets adequats són:"
+
+#. get selection
+#. TRANSLATORS: ask the user to choose a file to install
+#: ../contrib/command-not-found/pk-command-not-found.c:650
+msgid "Please choose a package to install"
+msgstr "Seleccioneu el paquet a instal·lar"
+
#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/packagekit-plugin/src/contents.cpp:294
+#: ../contrib/browser-plugin/src/contents.cpp:298
msgid "Getting package information..."
msgstr "S'està obtenint informació dels paquets..."
#. TRANSLATORS: run an applicaiton
-#: ../contrib/packagekit-plugin/src/contents.cpp:300
+#: ../contrib/browser-plugin/src/contents.cpp:304
#, c-format
msgid "Run %s"
msgstr "Executa %s"
#. TRANSLATORS: show the installed version of a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:306
+#: ../contrib/browser-plugin/src/contents.cpp:310
msgid "Installed version"
msgstr "Versió instal·lada"
#. TRANSLATORS: run the application now
-#: ../contrib/packagekit-plugin/src/contents.cpp:314
+#: ../contrib/browser-plugin/src/contents.cpp:318
#, c-format
msgid "Run version %s now"
msgstr "Executa la versió %s ara"
-#: ../contrib/packagekit-plugin/src/contents.cpp:320
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/src/contents.cpp:324
msgid "Run now"
msgstr "Executa ara"
#. TRANSLATORS: update to a new version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:326
+#: ../contrib/browser-plugin/src/contents.cpp:330
#, c-format
msgid "Update to version %s"
msgstr "Actualitza a la versió %s"
#. TRANSLATORS: To install a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:332
+#: ../contrib/browser-plugin/src/contents.cpp:336
#, c-format
msgid "Install %s now"
msgstr "Instal·la %s ara"
#. TRANSLATORS: the version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:335
+#: ../contrib/browser-plugin/src/contents.cpp:339
msgid "Version"
msgstr "Versió"
#. TRANSLATORS: noting found, so can't install
-#: ../contrib/packagekit-plugin/src/contents.cpp:340
+#: ../contrib/browser-plugin/src/contents.cpp:344
msgid "No packages found for your system"
msgstr "No s'han trobat paquets per al vostre sistema"
#. TRANSLATORS: package is being installed
-#: ../contrib/packagekit-plugin/src/contents.cpp:345
+#: ../contrib/browser-plugin/src/contents.cpp:349
msgid "Installing..."
msgstr "S'està instal·lant..."
+#. TRANSLATORS: the action is non-localised
+#: ../contrib/app-install/pk-app-install-add.c:247
+#: ../contrib/app-install/pk-app-install-generate.c:247
+msgid "The action, one of 'create', 'add', or 'remove'"
+msgstr "L'acció, una de 'crea', 'afegeix' o 'elimina'"
+
+#. TRANSLATORS: if we are specifing a out-of-tree database
+#: ../contrib/app-install/pk-app-install-add.c:250
+#: ../contrib/app-install/pk-app-install-generate.c:250
+#: ../contrib/app-install/pk-app-install-remove.c:90
+msgid "Main cache file to use (if not specififed, default is used)"
+msgstr "Principal fitxer cau per usar (si no s'especifica, s'utilitza el fitxxer cau per defecte)"
+
+#. TRANSLATORS: the source database, typically used for adding
+#: ../contrib/app-install/pk-app-install-add.c:253
+#: ../contrib/app-install/pk-app-install-generate.c:253
+msgid "Source cache file to add to the main database"
+msgstr "Fitxer cau font per a afegir a la base dedades principal"
+
+#. TRANSLATORS: the icon directory
+#: ../contrib/app-install/pk-app-install-add.c:256
+#: ../contrib/app-install/pk-app-install-generate.c:256
+#: ../contrib/app-install/pk-app-install-remove.c:93
+msgid "Icon directory"
+msgstr "Directori d'icones"
+
+#. TRANSLATORS: the repo of the software source, e.g. fedora
+#: ../contrib/app-install/pk-app-install-add.c:259
+#: ../contrib/app-install/pk-app-install-generate.c:259
+#: ../contrib/app-install/pk-app-install-remove.c:96
+msgid "Name of the remote repo"
+msgstr "Nom del repositori remot"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/app-install/pk-app-install-add.c:270
+#: ../contrib/app-install/pk-app-install-create.c:62
+#: ../contrib/app-install/pk-app-install-generate.c:270
+#: ../contrib/app-install/pk-app-install-remove.c:107
+msgid "PackageKit Application Database Installer"
+msgstr "Aplicació Packagekit d'instal·lació de bases de dades"
+
+#. TRANSLATORS: if we are specifing a out-of-tree database
+#: ../contrib/app-install/pk-app-install-create.c:51
+msgid "Main database file to use (if not specififed, default is used)"
+msgstr "No s'ha pogut usar la base de dades principal (si no s'especifica, s'utilitza la base de dades per defecte)"
+
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
msgstr "Catà leg de PackageKit"
-#: ../data/packagekit-servicepack.xml.in.h:1
-msgid "PackageKit Service Pack"
-msgstr "Service Pack de PackageKit"
-
#: ../data/packagekit-package-list.xml.in.h:1
msgid "PackageKit Package List"
msgstr "Llista de paquets de Packagekit"
-#: ../src/pk-main.c:86
-msgid "Startup failed due to security policies on this machine."
-msgstr "Ha fallat l'inici degut a les polÃtiques de seguretat d'aquest sistema."
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr "Service Pack de PackageKit"
+#. TRANSLATORS: failed due to DBus security
#: ../src/pk-main.c:87
+msgid "Startup failed due to security policies on this machine."
+msgstr ""
+"Ha fallat l'inici degut a les polÃtiques de seguretat d'aquest sistema."
+
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
msgid "This can happen for two reasons:"
msgstr "Pot succeir per dos motius:"
-#: ../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 "No s'està executant amb l'usuari correcte (normalment l'usuari root)"
-#: ../src/pk-main.c:89
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "El fitxer org.freedesktop.PackageKit.conf no està instal·lat al directori del 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 ""
+"El fitxer org.freedesktop.PackageKit.conf no està instal·lat al directori "
+"del sistema:"
-#: ../src/pk-main.c:187
+#. 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 "Administrador de paquets a usar, p.ex. dummy"
-#: ../src/pk-main.c:189
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:196
msgid "Daemonize and detach from the terminal"
msgstr "Convertir en dimoni i lliurar la finestra de l'intèrpret de comandes"
-#: ../src/pk-main.c:193
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:202
msgid "Disable the idle timer"
msgstr "Inhabilita el temporitzador de repós"
-#: ../src/pk-main.c:195
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:205
msgid "Show version and exit"
msgstr "Mostra la versió i surt"
-#: ../src/pk-main.c:197
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:208
msgid "Exit after a small delay"
msgstr "Surt després de un petit retrà s"
-#: ../src/pk-main.c:199
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:211
msgid "Exit after the engine has loaded"
msgstr "Surt després que el motor s'hagi carregat"
-#: ../src/pk-main.c:213
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:226
msgid "PackageKit service"
msgstr "servei PackageKit"
-#: ../src/pk-main.c:249
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:263
msgid "Cannot connect to the system bus"
msgstr "No s'ha pogut connectar amb el bus del sistema"
-#: ../src/pk-main.c:298
+#. TRANSLATORS: cannot register on system bus, unknown reason
+#: ../src/pk-main.c:313
#, c-format
msgid "Error trying to start: %s\n"
msgstr "Ha fallat en intentar executar: %s\n"
+#~ msgid "You need to specify a search type, e.g. name"
+#~ msgstr "Us cal especificar un tipus de cerca, p.e. per nom"
+
+#~ msgid "You need to specify a search term"
+#~ msgstr "us cal especificar un terme de cerca"
+
+#~ msgid "You need to specify a package or file to install"
+#~ msgstr "Us cal especificar un paquet o fitxer per a instal·lar"
+
+#~ msgid "You need to specify a package to remove"
+#~ msgstr "Us cal especificar un paquet per a esborrar"
+
+#~ msgid "You need to specify a package name to resolve"
+#~ msgstr "Us cal especificar el nom d'un paquet per a resoldre"
+
+#~ msgid "You need to specify a repository name"
+#~ msgstr "Us cal especificar el nom d'un repositori"
+
+#~ msgid "You need to specify an action, e.g. 'update-system'"
+#~ msgstr "Us cal especificar una acció, p.e. 'update-system'"
+
+#~ msgid "You need to specify a correct role"
+#~ msgstr "Us cal especificar un rol và lid"
+
+#~ msgid "You need to specify a package to find the details for"
+#~ msgstr "Us cal especificar un paquet per a trobar-ne els seus detalls"
+
+#~ msgid "You need to specify a package to find the files for"
+#~ msgstr "Us cal especificar un paquet per a trobar-ne els seus fitxers"
+
+#~ msgid "You need to specify a list file to create"
+#~ msgstr "Us cal especificar una llista de fitxers a crear"
+
+#~ msgid "You need to specify a list file to open"
+#~ msgstr "Us cal especificar una llista de fitxers a obrir"
+
#~ msgid "This tool could not remove the packages: '%s'"
#~ msgstr "No s'ha pogut suprimir els paquets: «%s»"
+
#~ msgid "Okay to import key?"
#~ msgstr "Esteu d'acord en importar la clau?"
+
#~ msgid "Did not import key"
#~ msgstr "No importis la clau"
+
#~ msgid "Eula required"
#~ msgstr "Es necessita l'EULA"
+
#~ msgid "Do you agree?"
#~ msgstr "Esteu d'acord?"
-#~ msgid "Update detail"
-#~ msgstr "Detalls de l'actualització"
-#~ msgid "A system restart is required"
-#~ msgstr "Es requereix reiniciar el sistema"
-#~ msgid "A logout and login is required"
-#~ msgstr "Es requereix sortir de la sessió"
-#~ msgid "An application restart is required"
-#~ msgstr "Es requereix reiniciar l'aplicació"
-#~ msgid "Could not find package to install"
-#~ msgstr "No s'ha trobat cap paquet per a instal·lar"
+
#~ msgid "Could not find package to remove"
#~ msgstr "No s'ha trobat cap paquet per a eliminar"
+
#~ msgid "Cancelled!"
#~ msgstr "Cancel·lat"
+
#~ msgid "Could not find package to update"
#~ msgstr "No s'ha trobat cap paquet per a actualitzar"
+
#~ msgid "Could not find what packages require"
#~ msgstr "No s'ha trobat cap paquet requerit"
+
#~ msgid "Could not find details for"
#~ msgstr "No s'han pogut trobar els detalls per a"
+
#~ msgid "Could not find a package match"
#~ msgstr "No s'han trobat coincidències en cap paquet"
+
#~ msgid "Could not set database readonly"
#~ msgstr "No s'ha pogut establir la base de dades a només lectura"
+
#~ msgid "Could not open database: %s"
#~ msgstr "No s'ha pogut obrir la base de dades: %s"
+
#~ msgid "You probably need to run this program as the root user"
#~ msgstr ""
#~ "Ãs probable que necessiteu executar aquesta aplicació com a administrador"
+
#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>Executa %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'>Executa la versió %s ara</span>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Run now</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Executa ara</span>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Actualitza a la versió %s</span>"
+
#~ msgid ""
#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>Instal·la %s ara</"
#~ "span>"
+
#~ msgid ""
#~ "\n"
#~ "<small>Version: %s</small>"
#~ msgstr ""
#~ "\n"
#~ "<small>Versió: %s</small>"
+
#~ msgid "failed to download: invalid package_id and/or directory"
#~ msgstr "no s'ha pogut baixar: directori i/o id de paquet invà lids"
+
#~ msgid "Could not find a valid metadata file"
#~ msgstr "No s'ha trobat un fitxer de metadades invà lid"
+
#~ msgid "Okay to download the additional packages"
#~ msgstr "Esteu d'acord en baixar els paquets adicionals?"
+
#~ msgid "You need to specify the pack name and packages to be packed\n"
#~ msgstr "Cal que especifiqueu el nom del paquet i els paquets a empaquetar\n"
+
#~ msgid ""
#~ "Invalid name for the service pack, Specify a name with .servicepack "
#~ "extension\n"
#~ msgstr ""
#~ "Nom invà lid per als grup de paquets de servei. Especifiqueu un nom amb "
#~ "l'extensió .servicepack\n"
+
#~ msgid ""
#~ "Could not find a package with that name to install, or package already "
#~ "installed"
#~ msgstr ""
#~ "No s'ha pogut trobar un paquet amb aquest nom per instal·lar, o el paquet "
#~ "ja es troba instal·lat"
+
#~ msgid "Could not find a package with that name to update"
#~ msgstr "No s'ha pogut trobar un paquet amb aquest nom per actualitzar"
-
commit 0040c124f66317833e6cb7e5472e53cc3a41ca31
Author: Jorge A Gallegos <kad at blegh.net>
Date: Sat Mar 7 06:58:59 2009 +0000
ES translation
Transmitted-via: Transifex (translate.fedoraproject.org)
diff --git a/po/es.po b/po/es.po
index dfb9f7a..8f4b711 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,5 +1,5 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# Spanish translation of packagekit.
+# Copyright (C) 2009 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Javier Alejandro Castro <javier.alejandro.castro at gmail.com>, 2008.
#
@@ -7,657 +7,641 @@ msgid ""
msgstr ""
"Project-Id-Version: packagekit\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-18 13:42+0000\n"
-"PO-Revision-Date: 2009-02-20 15:45-0300\n"
+"POT-Creation-Date: 2009-03-05 15:42+0000\n"
+"PO-Revision-Date: 2009-03-07 00:57-0600\n"
"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
"Language-Team: Spanish <fedora-trans-es at redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Spanish\n"
+"Content-Transfer-Encoding: 8bit"
#. TRANSLATORS: this is an atomic transaction
-#: ../client/pk-console.c:230
+#: ../client/pk-console.c:234
msgid "Transaction"
msgstr "Transacción"
#. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:232
+#: ../client/pk-console.c:236
msgid "System time"
msgstr "Hora del sistema"
#. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:234
+#: ../client/pk-console.c:238
msgid "Succeeded"
msgstr "Existosa"
#. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:234
-#: ../client/pk-console.c:401
+#: ../client/pk-console.c:238 ../client/pk-console.c:405
msgid "True"
msgstr "Verdadero"
-#: ../client/pk-console.c:234
-#: ../client/pk-console.c:401
+#: ../client/pk-console.c:238 ../client/pk-console.c:405
msgid "False"
msgstr "Falso"
#. TRANSLATORS: this is the transactions role, e.g. "update-system"
-#: ../client/pk-console.c:236
+#: ../client/pk-console.c:240
msgid "Role"
msgstr "Rol"
#. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:245
msgid "Duration"
msgstr "Duración"
-#: ../client/pk-console.c:241
+#: ../client/pk-console.c:245
msgid "(seconds)"
msgstr "(segundos)"
#. TRANSLATORS: this is The command line used to do the action
-#: ../client/pk-console.c:245
+#: ../client/pk-console.c:249
msgid "Command line"
msgstr "LÃnea de Comando"
#. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:247
+#: ../client/pk-console.c:251
msgid "User ID"
msgstr "ID del Usuario"
#. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:254
+#: ../client/pk-console.c:258
msgid "Username"
msgstr "Nombre de Usuario"
#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:258
+#: ../client/pk-console.c:262
msgid "Real name"
msgstr "Nombre real"
-#: ../client/pk-console.c:266
+#: ../client/pk-console.c:270
msgid "Affected packages:"
msgstr "Paquete afectados:"
-#: ../client/pk-console.c:268
+#: ../client/pk-console.c:272
msgid "Affected packages: None"
msgstr "Paquetes afectados: Ninguno"
#. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:293
+#: ../client/pk-console.c:297
msgid "Distribution"
msgstr "Distribución"
#. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:295
+#: ../client/pk-console.c:299
msgid "Type"
msgstr "Tipo"
#. TRANSLATORS: this is any summary text describing the upgrade
#. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:297
-#: ../client/pk-console.c:320
+#: ../client/pk-console.c:301 ../client/pk-console.c:324
msgid "Summary"
msgstr "Resúmen"
#. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:309
+#: ../client/pk-console.c:313
msgid "Category"
msgstr "categorÃa"
#. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:311
+#: ../client/pk-console.c:315
msgid "ID"
msgstr "ID"
#. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:314
+#: ../client/pk-console.c:318
msgid "Parent"
msgstr "Padre"
#. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:317
+#: ../client/pk-console.c:321
msgid "Name"
msgstr "Nombre"
#. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:323
+#: ../client/pk-console.c:327
msgid "Icon"
msgstr "Icono"
#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:338
+#: ../client/pk-console.c:342
msgid "Details about the update:"
msgstr "Detalles acerca de la actualización:"
#. TRANSLATORS: details about the update, package name and version
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:344
msgid "Package"
msgstr "Paquete"
#. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:343
+#: ../client/pk-console.c:347
msgid "Updates"
msgstr "Actualizaciones"
#. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:347
+#: ../client/pk-console.c:351
msgid "Obsoletes"
msgstr "Sustituye"
#. TRANSLATORS: details about the update, the vendor URLs
-#: ../client/pk-console.c:351
+#: ../client/pk-console.c:355
msgid "Vendor"
msgstr "Vendedor"
#. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:355
+#: ../client/pk-console.c:359
msgid "Bugzilla"
msgstr "Bugzilla"
#. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:359
+#: ../client/pk-console.c:363
msgid "CVE"
msgstr "CVE"
#. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:363
+#: ../client/pk-console.c:367
msgid "Restart"
msgstr "Reiniciar"
#. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:367
+#: ../client/pk-console.c:371
msgid "Update text"
msgstr "Texto de actualización"
#. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:371
+#: ../client/pk-console.c:375
msgid "Changes"
msgstr "Cambios"
#. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:375
+#: ../client/pk-console.c:379
msgid "State"
msgstr "Estado"
#. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:380
+#: ../client/pk-console.c:384
msgid "Issued"
msgstr "Emitido"
#. TRANSLATORS: details about the update, date the update was updated
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:389
msgid "Updated"
msgstr "Actualizado"
-#: ../client/pk-console.c:472
-#: ../client/pk-console.c:474
+#: ../client/pk-console.c:476 ../client/pk-console.c:478
msgid "Percentage"
msgstr "Porcentaje"
-#: ../client/pk-console.c:474
+#: ../client/pk-console.c:478
msgid "Unknown"
msgstr "Desconocido"
#. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:525
+#: ../client/pk-console.c:529
msgid "System restart required by:"
msgstr "Se necesita reiniciar el sistema debido a:"
#. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:528
+#: ../client/pk-console.c:532
msgid "Session restart required:"
msgstr "Se necesita reiniciar la sesión:"
#. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:531
+#: ../client/pk-console.c:535
msgid "Application restart required by:"
msgstr "Se necesita reiniciar una aplicación debido a:"
#. TRANSLATORS: a package needs to restart they system
-#: ../client/pk-console.c:568
+#: ../client/pk-console.c:572
msgid "Please restart the computer to complete the update."
msgstr "Por favor, reinicie la computadora para completar la actualización"
#. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:571
+#: ../client/pk-console.c:575
msgid "Please logout and login to complete the update."
msgstr "Por favor, salga y vuelva a entrar para completar la actualización."
#. TRANSLATORS: a package needs to restart the application
-#: ../client/pk-console.c:574
+#: ../client/pk-console.c:578
msgid "Please restart the application as it is being used."
msgstr "Por favor, reinicie la aplicación que está usando."
#. TRANSLATORS: The package is already installed on the system
-#: ../client/pk-console.c:687
+#: ../client/pk-console.c:691
#, c-format
msgid "The package %s is already installed"
msgstr "El paquete %s ya está instalado"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:695
+#: ../client/pk-console.c:699
#, c-format
msgid "The package %s could not be installed: %s"
msgstr "El paquete %s no se pudo instalar: %s"
#. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
-#: ../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
+#: ../client/pk-console.c:724 ../client/pk-console.c:751
+#: ../client/pk-console.c:847 ../client/pk-console.c:964
+#: ../client/pk-tools-common.c:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
#, c-format
msgid "Internal error: %s"
msgstr "Error interno: %s"
#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:728
-#: ../client/pk-console.c:1355
+#: ../client/pk-console.c:732 ../client/pk-console.c:1360
#, c-format
msgid "This tool could not install the packages: %s"
msgstr "Esta herramienta no pudo instalar los paquetes: %s"
#. TRANSLATORS: There was an error installing the files. The detailed error follows
-#: ../client/pk-console.c:755
+#: ../client/pk-console.c:759
#, c-format
msgid "This tool could not install the files: %s"
msgstr "Esta herramienta no pudo instalar los archivos: %s"
#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:811
+#: ../client/pk-console.c:815
#, c-format
msgid "This tool could not remove %s: %s"
msgstr "Esta herramienta no pudo eliminar %s: %s"
#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:834
-#: ../client/pk-console.c:872
-#: ../client/pk-console.c:905
+#: ../client/pk-console.c:838 ../client/pk-console.c:876
+#: ../client/pk-console.c:909
#, c-format
msgid "This tool could not remove the packages: %s"
msgstr "Esta herramienta no pudo eliminar los paquetes: %s"
#. TRANSLATORS: When removing, we might have to remove other dependencies
-#: ../client/pk-console.c:884
+#: ../client/pk-console.c:888
msgid "The following packages have to be removed:"
msgstr "Los siguientes paquetes se eliminarán:"
#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:891
+#: ../client/pk-console.c:895
msgid "Proceed removing additional packages?"
msgstr "¿De acuerdo con eliminar los paquetes adicionales?"
#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:896
+#: ../client/pk-console.c:900
msgid "The package removal was canceled!"
msgstr "¡La eliminación de paquetes fue cancelada!"
#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:937
+#: ../client/pk-console.c:941
#, c-format
msgid "This tool could not download the package %s as it could not be found"
-msgstr "Esta herramienta no pudo descargar el paquete %s debido a que no fue encontrado"
+msgstr ""
+"Esta herramienta no pudo descargar el paquete %s debido a que no fue "
+"encontrado"
#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
-#: ../client/pk-console.c:968
+#: ../client/pk-console.c:972
#, c-format
msgid "This tool could not download the packages: %s"
msgstr "Esta herramienta no pudo descargar los paquetes: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:995
-#: ../client/pk-console.c:1004
+#: ../client/pk-console.c:999 ../client/pk-console.c:1008
#, c-format
msgid "This tool could not update %s: %s"
msgstr "Esta herramienta no pudo actualizar %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1026
-#: ../client/pk-console.c:1034
+#: ../client/pk-console.c:1030 ../client/pk-console.c:1038
#, c-format
msgid "This tool could not get the requirements for %s: %s"
msgstr "Esta herramienta no pudo obtener los requerimientos de %s: %s"
#. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
-#: ../client/pk-console.c:1056
-#: ../client/pk-console.c:1064
+#: ../client/pk-console.c:1060 ../client/pk-console.c:1068
#, c-format
msgid "This tool could not get the dependencies for %s: %s"
msgstr "Esta herramienta no pudo obtener las dependencias de %s: %s"
#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:1086
-#: ../client/pk-console.c:1094
+#: ../client/pk-console.c:1090 ../client/pk-console.c:1098
#, c-format
msgid "This tool could not get package details for %s: %s"
msgstr "Esta herramienta no pudo obtener los detalles del paquete %s: %s"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1116
+#: ../client/pk-console.c:1120
#, c-format
msgid "This tool could not find the files for %s: %s"
msgstr "Esta herramienta no pudo encontrar los archivos de %s: %s"
#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:1124
+#: ../client/pk-console.c:1128
#, c-format
msgid "This tool could not get the file list for %s: %s"
msgstr "Esta herramienta no pudo obtener la lista de archivos de %s: %s"
#. TRANSLATORS: There was an error getting the list of packages. The filename follows
-#: ../client/pk-console.c:1146
+#: ../client/pk-console.c:1150
#, c-format
msgid "File already exists: %s"
msgstr "El archivo ya existe: %s"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1151
-#: ../client/pk-console.c:1207
-#: ../client/pk-console.c:1282
+#: ../client/pk-console.c:1155 ../client/pk-console.c:1211
+#: ../client/pk-console.c:1286
msgid "Getting package list"
msgstr "Obteniendo la lista de paquetes"
#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
-#: ../client/pk-console.c:1157
-#: ../client/pk-console.c:1213
-#: ../client/pk-console.c:1288
+#: ../client/pk-console.c:1161 ../client/pk-console.c:1217
+#: ../client/pk-console.c:1292
#, c-format
msgid "This tool could not get package list: %s"
msgstr "Esta herramienta no pudo obtener la lista de paquetes: %s"
#. TRANSLATORS: There was an error saving the list
-#: ../client/pk-console.c:1168
+#: ../client/pk-console.c:1172
msgid "Failed to save to disk"
msgstr "Falló al guardar en el disco"
#. TRANSLATORS: There was an error getting the list. The filename follows
-#: ../client/pk-console.c:1202
-#: ../client/pk-console.c:1277
+#: ../client/pk-console.c:1206 ../client/pk-console.c:1281
#, c-format
msgid "File does not exist: %s"
msgstr "El archivo no existe: %s"
#. TRANSLATORS: header to a list of packages newly added
-#: ../client/pk-console.c:1234
+#: ../client/pk-console.c:1238
msgid "Packages to add"
msgstr "Paquetes a agregar"
#. TRANSLATORS: header to a list of packages removed
-#: ../client/pk-console.c:1242
+#: ../client/pk-console.c:1246
msgid "Packages to remove"
msgstr "Paquetes a eliminar"
#. TRANSLATORS: We didn't find any differences
-#: ../client/pk-console.c:1310
+#: ../client/pk-console.c:1314
msgid "No new packages need to be installed"
msgstr "No hay paquetes nuevos para instalar"
#. TRANSLATORS: follows a list of packages to install
-#: ../client/pk-console.c:1316
+#: ../client/pk-console.c:1320
msgid "To install"
msgstr "A instalar"
#. TRANSLATORS: searching takes some time....
-#: ../client/pk-console.c:1327
+#: ../client/pk-console.c:1332
msgid "Searching for package: "
msgstr "Buscando el paquete:"
#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
-#: ../client/pk-console.c:1331
+#: ../client/pk-console.c:1336
msgid "not found."
msgstr "no encontrado."
#. TRANSLATORS: We didn't find any packages to install
-#: ../client/pk-console.c:1342
+#: ../client/pk-console.c:1347
msgid "No packages can be found to install"
msgstr "No se encontró ningún paquete para instalar"
#. TRANSLATORS: installing new packages from package list
-#: ../client/pk-console.c:1348
+#: ../client/pk-console.c:1353
msgid "Installing packages"
msgstr "Instalando paquetes"
#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:1384
+#: ../client/pk-console.c:1389
#, c-format
msgid "This tool could not find the update details for %s: %s"
-msgstr "Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
+msgstr ""
+"Esta herramienta no pudo encontrar los detalles de actualización de %s: %s"
#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1392
+#: ../client/pk-console.c:1397
#, c-format
msgid "This tool could not get the update details for %s: %s"
-msgstr "Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
+msgstr ""
+"Esta herramienta no pudo obtener los detalles de actualización de %s: %s"
#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1438
+#: ../client/pk-console.c:1443
msgid "Error:"
msgstr "Error:"
#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1452
+#: ../client/pk-console.c:1457
msgid "Package description"
msgstr "Descripción del paquete"
#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1486
+#: ../client/pk-console.c:1491
msgid "Package files"
msgstr "Archivos del paquete"
#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1494
+#: ../client/pk-console.c:1499
msgid "No files"
msgstr "No hay archivos"
#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
-#: ../client/pk-console.c:1517
+#: ../client/pk-console.c:1522
msgid "Repository signature required"
msgstr "Se requiere la firma del repositorio"
#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1527
+#: ../client/pk-console.c:1532
msgid "Do you accept this signature?"
msgstr "¿Acepta esta firma?"
#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1531
+#: ../client/pk-console.c:1536
msgid "The signature was not accepted."
msgstr "La firma no fue aceptada."
#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1565
+#: ../client/pk-console.c:1570
msgid "End user license agreement required"
msgstr "Se requiere un acuerdo de licencia de usuario final"
#. TRANSLATORS: This a prompt asking the user to agree to the license
-#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1577
msgid "Do you agree to this license?"
msgstr "¿Está de acuerdo con esta licencia?"
#. TRANSLATORS: This is where the user declined the license
-#: ../client/pk-console.c:1576
+#: ../client/pk-console.c:1581
msgid "The license was refused."
msgstr "La licencia fue rechazada."
#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1605
+#: ../client/pk-console.c:1610
msgid "The daemon crashed mid-transaction!"
msgstr "El servicio terminó en medio de una transacción!"
#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1658
+#: ../client/pk-console.c:1663
msgid "PackageKit Console Interface"
msgstr "Interfaz de Consola de PackageKit"
#. these are commands we can use with pkcon
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1665
msgid "Subcommands:"
msgstr "Subcomandos:"
#. TRANSLATORS: command line argument, if we should show debugging information
#. TRANSLATORS: if we should show debugging data
-#: ../client/pk-console.c:1752
-#: ../client/pk-generate-pack.c:185
+#: ../client/pk-console.c:1757 ../client/pk-generate-pack.c:185
#: ../client/pk-monitor.c:125
#: ../contrib/command-not-found/pk-command-not-found.c:510
-#: ../src/pk-main.c:199
+#: ../contrib/app-install/pk-app-install-add.c:130
+#: ../contrib/app-install/pk-app-install-create.c:48
+#: ../contrib/app-install/pk-app-install-generate.c:392
+#: ../contrib/app-install/pk-app-install-remove.c:105 ../src/pk-main.c:199
msgid "Show extra debugging information"
msgstr "Mostrar información extra de depuración"
#. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1755
-#: ../client/pk-monitor.c:127
+#: ../client/pk-console.c:1760 ../client/pk-monitor.c:127
msgid "Show the program version and exit"
msgstr "Mostrar la versión del programa y salir"
#. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1758
+#: ../client/pk-console.c:1763
msgid "Set the filter, e.g. installed"
msgstr "Defina el filtro, ej. installado"
#. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1761
+#: ../client/pk-console.c:1766
msgid "Exit without waiting for actions to complete"
msgstr "Salir sin esperar que las acciones se completen"
#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1788
+#: ../client/pk-console.c:1793
msgid "This tool could not connect to system DBUS."
msgstr "Esta herramienta no se pudo conectar al DBUS del sistema."
#. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1875
+#: ../client/pk-console.c:1880
msgid "The filter specified was invalid"
msgstr "El filtro especificado fue inválido"
#. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1893
+#: ../client/pk-console.c:1898
msgid "A search type is required, e.g. name"
msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
#. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1899
-#: ../client/pk-console.c:1907
-#: ../client/pk-console.c:1915
-#: ../client/pk-console.c:1923
+#: ../client/pk-console.c:1904 ../client/pk-console.c:1912
+#: ../client/pk-console.c:1920 ../client/pk-console.c:1928
msgid "A search term is required"
msgstr "Se necesita un término de búsqueda"
#. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1929
+#: ../client/pk-console.c:1934
msgid "Invalid search type"
msgstr "Tipo de búsqueda inválido"
#. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1935
+#: ../client/pk-console.c:1940
msgid "A package name or filename to install is required"
msgstr "Se requiere un nombre de paquete o nombre de archivo a instalar"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1943
+#: ../client/pk-console.c:1948
msgid "A type, key_id and package_id are required"
msgstr "Se necesita un tipo, key_id y package_id"
#. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1951
+#: ../client/pk-console.c:1956
msgid "A package name to remove is required"
msgstr "Necesita dar un nombre de paquete a eliminar"
#. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1958
-msgid "A destination directory and then the package names to download are required"
-msgstr "Debe especificar el directorio destino y luego los nombres paquetes a descargar"
+#: ../client/pk-console.c:1963
+msgid ""
+"A destination directory and then the package names to download are required"
+msgstr ""
+"Debe especificar el directorio destino y luego los nombres paquetes a "
+"descargar"
#. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1964
+#: ../client/pk-console.c:1969
msgid "Directory not found"
msgstr "Directorio no encontrado"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1971
+#: ../client/pk-console.c:1976
msgid "A licence identifier (eula-id) is required"
msgstr "Se necesita un identificador de licencia (eula-id)"
#. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1980
+#: ../client/pk-console.c:1985
msgid "A transaction identifier (tid) is required"
msgstr "Se necesita un identificador de transacción (tid)"
#. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1996
+#: ../client/pk-console.c:2001
msgid "A package name to resolve is required"
msgstr "Se necesita un nombre de paquete a resolver"
#. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:2004
-#: ../client/pk-console.c:2012
+#: ../client/pk-console.c:2009 ../client/pk-console.c:2017
msgid "A repository name is required"
msgstr "Se necesita un nombre de repositorio"
#. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:2020
+#: ../client/pk-console.c:2025
msgid "A repo name, parameter and value are required"
msgstr "Debe especificar un nombre de repositorio, parametro y valor"
#. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:2033
+#: ../client/pk-console.c:2038
msgid "An action, e.g. 'update-system' is required"
msgstr "Debe especificar una acción, por ejemplo, 'update-system'"
#. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:2039
+#: ../client/pk-console.c:2044
msgid "A correct role is required"
msgstr "Se necesita el rol correcto"
#. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:2045
+#: ../client/pk-console.c:2050
msgid "Failed to get the time since this action was last completed"
msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
#. TRANSLATORS: The user did not provide a package name
#. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:2054
-#: ../client/pk-console.c:2065
-#: ../client/pk-console.c:2073
-#: ../client/pk-console.c:2089
-#: ../client/pk-console.c:2097
-#: ../client/pk-generate-pack.c:241
+#: ../client/pk-console.c:2059 ../client/pk-console.c:2070
+#: ../client/pk-console.c:2078 ../client/pk-console.c:2094
+#: ../client/pk-console.c:2102 ../client/pk-generate-pack.c:241
msgid "A package name is required"
msgstr "Se necesita un nombre de paquete"
#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:2081
+#: ../client/pk-console.c:2086
msgid "A package provide string is required"
msgstr "Se necesita la cadena de lo que provee el paquete"
#. TRANSLATORS: The user didn't specify a filename to create as a list
-#: ../client/pk-console.c:2105
+#: ../client/pk-console.c:2110
msgid "A list file name to create is required"
msgstr "Se necesita un nombre de archivo de la lista"
#. TRANSLATORS: The user didn't specify a filename to open as a list
-#: ../client/pk-console.c:2114
-#: ../client/pk-console.c:2123
+#: ../client/pk-console.c:2119 ../client/pk-console.c:2128
msgid "A list file to open is required"
msgstr "Se necesita un archivo de lista a abrir"
#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:2176
+#: ../client/pk-console.c:2181
#, c-format
msgid "Option '%s' is not supported"
msgstr "La opción '%s' no está soportada"
#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:2189
+#: ../client/pk-console.c:2194
msgid "Incorrect privileges for this operation"
msgstr "Privilegios incorrectos para esta operación"
#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:2192
+#: ../client/pk-console.c:2197
msgid "Command failed"
msgstr "Commando falló"
@@ -683,8 +667,10 @@ msgstr "Ponga el nombre del archivo de dependencias a excluir"
#. TRANSLATORS: the output location
#: ../client/pk-generate-pack.c:191
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "El directorio o archivo de salida (el directorio actual se usará si se omite)"
+msgid ""
+"The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"El directorio o archivo de salida (el directorio actual se usará si se omite)"
#. TRANSLATORS: put a list of packages in the pack
#: ../client/pk-generate-pack.c:194
@@ -713,15 +699,16 @@ msgstr "Se necesita un directorio o nombre de archivo de salida"
#. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
#. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:267
-#: ../client/pk-generate-pack.c:273
+#: ../client/pk-generate-pack.c:267 ../client/pk-generate-pack.c:273
msgid "The package manager cannot perform this type of operation."
msgstr "El administrador de paquetes no puede realizar este tipo de operación."
#. 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 "Si especifica un archivo, el nombre del paquete de servicio debe finalizar con"
+msgstr ""
+"Si especifica un archivo, el nombre del paquete de servicio debe finalizar "
+"con"
#. TRANSLATORS: This is when file already exists
#: ../client/pk-generate-pack.c:301
@@ -777,21 +764,21 @@ msgid "PackageKit Monitor"
msgstr "Monitor de PackageKit"
#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:114
+#: ../client/pk-tools-common.c:118
msgid "The package could not be found"
msgstr "No se pudo encontrar el paquete"
#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:125
+#: ../client/pk-tools-common.c:130
msgid "More than one package matches:"
msgstr "Más de un paquete coincidentes:"
#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:132
+#: ../client/pk-tools-common.c:137
msgid "Please choose the correct package: "
msgstr "Por favor, elija el paquete correcto: "
-#: ../client/pk-tools-common.c:157
+#: ../client/pk-tools-common.c:162
#, c-format
msgid "Please enter a number from 1 to %i: "
msgstr "Por favor ingrese un número de 1 a %i:"
@@ -919,6 +906,52 @@ msgstr "No se encontró ningún paquete para su sistema"
msgid "Installing..."
msgstr "Instalando..."
+#. TRANSLATORS: if we are specifing a out-of-tree database
+#: ../contrib/app-install/pk-app-install-add.c:133
+#: ../contrib/app-install/pk-app-install-generate.c:395
+#: ../contrib/app-install/pk-app-install-remove.c:108
+msgid "Main cache file to use (if not specififed, default is used)"
+msgstr "Archivo caché principal para usar (si no se especifica, se usa el que esta por defecto)"
+
+#. TRANSLATORS: the source database, typically used for adding
+#. TRANSLATORS: the applicationdir database, typically used for adding
+#: ../contrib/app-install/pk-app-install-add.c:136
+#: ../contrib/app-install/pk-app-install-generate.c:398
+msgid "Source cache file to add to the main database"
+msgstr "Archivo caché fuente para añadir a la base de datos principal"
+
+#. TRANSLATORS: the icon directory
+#. TRANSLATORS: the output directory
+#. TRANSLATORS: the icon directory
+#: ../contrib/app-install/pk-app-install-add.c:139
+#: ../contrib/app-install/pk-app-install-generate.c:401
+#: ../contrib/app-install/pk-app-install-generate.c:404
+#: ../contrib/app-install/pk-app-install-remove.c:111
+msgid "Icon directory"
+msgstr "Directorio de Ãconos"
+
+#. TRANSLATORS: the repo of the software source, e.g. fedora
+#. TRANSLATORS: the repo of the software applicationdir, e.g. fedora
+#. TRANSLATORS: the repo of the software source, e.g. fedora
+#: ../contrib/app-install/pk-app-install-add.c:142
+#: ../contrib/app-install/pk-app-install-generate.c:407
+#: ../contrib/app-install/pk-app-install-remove.c:114
+msgid "Name of the remote repo"
+msgstr "Nombre del repositorio remoto"
+
+#. TRANSLATORS: tool that gets called when the command is not found
+#: ../contrib/app-install/pk-app-install-add.c:153
+#: ../contrib/app-install/pk-app-install-create.c:62
+#: ../contrib/app-install/pk-app-install-generate.c:418
+#: ../contrib/app-install/pk-app-install-remove.c:125
+msgid "PackageKit Application Database Installer"
+msgstr "Instalador de Base de Datos de Aplicaciones de PackageKit"
+
+#. TRANSLATORS: if we are specifing a out-of-tree database
+#: ../contrib/app-install/pk-app-install-create.c:51
+msgid "Main database file to use (if not specififed, default is used)"
+msgstr "Archivo de base de datos principal para usar (si no se especifica, se usa el por defecto)"
+
#: ../data/packagekit-catalog.xml.in.h:1
msgid "PackageKit Catalog"
msgstr "Catálogo de PackageKit"
@@ -948,8 +981,12 @@ msgstr "El usuario correcto no esta lanzando el ejecutable (usualmente root)"
#. TRANSLATORS: or we are installed in a prefix
#: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
-msgstr "El archivo org.freedesktop.PackageKit.conf no está instalado en el directorio del sistema:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
+msgstr ""
+"El archivo org.freedesktop.PackageKit.conf no está instalado en el "
+"directorio del sistema:"
#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
#: ../src/pk-main.c:193
@@ -999,30 +1036,43 @@ msgstr "Error intentando arrancar: %s\n"
#~ msgid "You need to specify a search type, e.g. name"
#~ msgstr "Debe especificar el tipo de búsqueda, por ejemplo, nombre"
+
#~ msgid "You need to specify a search term"
#~ msgstr "Debe especificar un término de búsqueda"
+
#~ msgid "You need to specify a package or file to install"
#~ msgstr "Debe especificar un paquete o archivo a instalar"
+
#~ msgid "You need to specify a package to remove"
#~ msgstr "Debe especificar un paquete a eliminar"
+
#~ msgid "You need to specify a package name to resolve"
#~ msgstr "Debe especificar un nombre de paquete a resolver"
+
#~ msgid "You need to specify a repository name"
#~ msgstr "Debe especificar un nombre de repositorio"
+
#~ msgid "You need to specify a correct role"
#~ msgstr "Debe especificar un rol correcto"
+
#~ msgid "Failed to get last time"
#~ msgstr "Fállo al obtener última hora"
+
#~ msgid "You need to specify a package to find the details for"
#~ msgstr "Debe especificar un paquete para el que buscar la descripción"
+
#~ msgid "You need to specify a package to find the files for"
#~ msgstr "Debe especificar un paquete para el que buscar los archivos"
+
#~ msgid "You need to specify a list file to create"
#~ msgstr "Debe especificar un archivo de lista a crear"
+
#~ msgid "You need to specify a list file to open"
#~ msgstr "Debe especificar un archivo de lista a abrir"
+
#~ msgid "Accept EULA"
#~ msgstr "Aceptar EULA"
+
#~ msgid "Authentication is required to accept a EULA"
#~ msgstr "Se requiere autenticación para aceptar una EULA"
@@ -1033,6 +1083,7 @@ msgstr "Error intentando arrancar: %s\n"
#~ msgstr ""
#~ "Se requiere autenticación para cambiar los parametros de fuente de "
#~ "software"
+
#~ msgid "Authentication is required to change software source parameters"
#~ msgstr ""
#~ "Se requiere autenticación para cambiar los parametros de fuente de "
@@ -1055,8 +1106,10 @@ msgstr "Error intentando arrancar: %s\n"
#, fuzzy
#~ msgid "Authentication is required to refresh the system sources"
#~ msgstr "Se requiere autenticación para refrescar la lista de paquetes"
+
#~ msgid "Authentication is required to remove packages"
#~ msgstr "Se requiere autenticación para eliminar paquetes"
+
#~ msgid "Authentication is required to rollback a transaction"
#~ msgstr "Se requiere autenticación para deshacer una transaccion"
@@ -1065,8 +1118,10 @@ msgstr "Error intentando arrancar: %s\n"
#~ "Authentication is required to set the network proxy used for downloading "
#~ "packages"
#~ msgstr "Se requiere autenticación para eliminar paquetes"
+
#~ msgid "Authentication is required to update packages"
#~ msgstr "Se requiere autenticación para actualizar paquetes"
+
#~ msgid "Change software source parameters"
#~ msgstr "Cambiar los parametros de fuente de software"
@@ -1077,114 +1132,150 @@ msgstr "Error intentando arrancar: %s\n"
#, fuzzy
#~ msgid "Install untrusted local file"
#~ msgstr "Instalar archivo local"
+
#~ msgid "Remove package"
#~ msgstr "Eliminar paquete"
+
#~ msgid "Rollback to a previous transaction"
#~ msgstr "Deshacer hasta una transaccion previa"
#, fuzzy
#~ msgid "Update packages"
#~ msgstr "Actualizar paquete"
+
#~ msgid "This tool could not remove the packages: '%s'"
#~ msgstr "Esta herramienta no pudo eliminar los paquetes: '%s'"
+
#~ msgid "Install local file"
#~ msgstr "Instalar archivo local"
+
#~ msgid "Okay to import key?"
#~ msgstr "¿De acuerto con importer la clave?"
+
#~ msgid "Did not import key"
#~ msgstr "No se importó la clave"
+
#~ msgid "Do you agree?"
#~ msgstr "¿Está de acuerdo?"
+
#~ msgid "Could not find package to remove"
#~ msgstr "No se pudo encontrar el paquete a eliminar"
+
#~ msgid "Cancelled!"
#~ msgstr "Cancelado!"
+
#~ msgid "Could not find package to update"
#~ msgstr "No se pudo encontrar el paquete a actualizar"
+
#~ msgid "Could not find what packages require"
#~ msgstr "No se pudo encontrar cuales paquetes requiere este paquete"
+
#~ msgid "Could not find details for"
#~ msgstr "No se pudieron obtener los detalles de "
+
#~ msgid "Could not find a package match"
#~ msgstr "No se pudo encontrar un paquete coincidente"
#, fuzzy
#~ msgid "Could not set database readonly"
#~ msgstr "No se pudo abrir la base de datos: %s"
+
#~ msgid "Could not open database: %s"
#~ msgstr "No se pudo abrir la base de datos: %s"
+
#~ msgid "You probably need to run this program as the root user"
#~ msgstr "Probablemente necesita ejecutar este programa como el usuario root"
+
#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>Ejecutar %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'>Ejecutar versión %s ahora</span>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Run now</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Ejecutar ahora</span>"
+
#~ msgid ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
#~ msgstr ""
#~ "\n"
#~ "<span color='#%06x' underline='single'>Actualizar a la versión %s</span>"
+
#~ msgid ""
#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
#~ msgstr ""
#~ "<span color='#%06x' underline='single' size='larger'>Instalar %s Ahora</"
#~ "span>"
+
#~ msgid ""
#~ "\n"
#~ "<small>Version: %s</small>"
#~ msgstr ""
#~ "\n"
#~ "<small>Versión: %s</small>"
+
#~ msgid "failed to download: invalid package_id and/or directory"
#~ msgstr "falló la descarga: id de paquete inválido y/o directorio"
+
#~ msgid "Could not find a valid metadata file"
#~ msgstr "No se pudo encontrar un archivo de metadatos válido"
+
#~ msgid "Okay to download the additional packages"
#~ msgstr "Listo para descargar los paquetes adicionales"
+
#~ msgid "You need to specify the pack name and packages to be packed\n"
#~ msgstr "Debe especificar el nombre de grupo y los paquetes a agrupar\n"
+
#~ msgid ""
#~ "Invalid name for the service pack, Specify a name with .servicepack "
#~ "extension\n"
#~ msgstr ""
#~ "Nombre inválido para el paquete de servicio. Especifique un nombre con la "
#~ "extensión .servicepack\n"
+
#~ msgid "Authentication is required to install a local file"
#~ msgstr "Se requiere autenticación para instalar un archivo local"
+
#~ msgid "Authentication is required to install a security signature"
#~ msgstr "Se requiere autenticación para instalar una firma de seguridad"
+
#~ msgid "Authentication is required to update all packages"
#~ msgstr "Se requiere autenticación para actualizar todos los paquetes"
+
#~ msgid "Install security signature"
#~ msgstr "Instalar firma de seguridad"
+
#~ msgid "Refresh package lists"
#~ msgstr "Refrescar lista de paquetes"
+
#~ msgid "Update all packages"
#~ msgstr "Actualizar todos los paquetes"
+
#~ msgid ""
#~ "Could not find a package with that name to install, or package already "
#~ "installed"
#~ msgstr ""
#~ "No se pudo encontrar un paquete con ese nombre para instalar, o el "
#~ "paquete ya está instalado"
+
#~ msgid "Could not find a package with that name to update"
#~ msgstr "No se pudo encontrar un paquete con ese nombre para actualizar"
+
#~ msgid "Could not find a description for this package"
#~ msgstr "No se pudo encontrar una descripcion para este paquete"
+
#~ msgid "You need to specify a package to find the description for"
#~ msgstr "Debe especificar un paquete para el que buscar la descripción"
-
commit f5122b0c77cf0fe48b412e6fdc15e8d245f5eda2
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date: Fri Mar 6 22:16:03 2009 -0300
Removed the sql warning message, (imo the private class was being deleted before
the Client class). Feel free to revert if you don't like it.
diff --git a/lib/packagekit-qt/src/client.cpp b/lib/packagekit-qt/src/client.cpp
index b80461b..c15854a 100644
--- a/lib/packagekit-qt/src/client.cpp
+++ b/lib/packagekit-qt/src/client.cpp
@@ -57,16 +57,16 @@ Client::Client(QObject* parent) : QObject(parent)
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()) {
+ QSqlDatabase db;
+ db = QSqlDatabase::addDatabase("QSQLITE");
+ db.setDatabaseName ("/var/lib/PackageKit/desktop-files.db");
+ if (!db.open()) {
qDebug() << "Failed to initialize the desktop files database";
}
}
Client::~Client()
{
- d->desktopDB.close();
delete d;
}
@@ -677,12 +677,13 @@ Transaction* Client::searchName(const QString& search, Filter filter)
Package* Client::searchFromDesktopFile(const QString& path)
{
- if (!d->desktopDB.isOpen()) {
+ QSqlDatabase db = QSqlDatabase::database();
+ if (!db.isOpen()) {
qDebug() << "Desktop files database is not open";
return NULL;
}
- QSqlQuery q(d->desktopDB);
+ QSqlQuery q(db);
q.prepare("SELECT package FROM cache WHERE filename = :path");
q.bindValue(":path", path);
if(!q.exec()) {
diff --git a/lib/packagekit-qt/src/clientprivate.h b/lib/packagekit-qt/src/clientprivate.h
index 0551545..f57c1da 100644
--- a/lib/packagekit-qt/src/clientprivate.h
+++ b/lib/packagekit-qt/src/clientprivate.h
@@ -40,7 +40,6 @@ public:
DaemonProxy* daemon;
Client* c;
- QSqlDatabase desktopDB; // Used to search in /var/lib/PackageKit/desktop-files.db
QString locale;
commit d0a18dd61acdc6f56592aa666faffbcf2e708797
Merge: c630182... 92f043a...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date: Fri Mar 6 20:23:42 2009 -0300
Merge branch 'master' of git+ssh://dantti@git.packagekit.org/srv/git/PackageKit
commit c63018220b203f376a21301b43933ff9fdb668df
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date: Fri Mar 6 20:22:49 2009 -0300
Made package methods const and added an operator== to package
diff --git a/lib/packagekit-qt/src/package.cpp b/lib/packagekit-qt/src/package.cpp
index 549ef55..7c860f4 100644
--- a/lib/packagekit-qt/src/package.cpp
+++ b/lib/packagekit-qt/src/package.cpp
@@ -61,32 +61,32 @@ Package::Details::~Details()
delete d;
}
-Package* Package::Details::package()
+Package* Package::Details::package() const
{
return d->package;
}
-Package::License Package::Details::license()
+Package::License Package::Details::license() const
{
return d->license;
}
-Client::Group Package::Details::group()
+Client::Group Package::Details::group() const
{
return d->group;
}
-QString Package::Details::description()
+QString Package::Details::description() const
{
return d->description;
}
-QString Package::Details::url()
+QString Package::Details::url() const
{
return d->url;
}
-qulonglong Package::Details::size()
+qulonglong Package::Details::size() const
{
return d->size;
}
@@ -136,47 +136,47 @@ Package::~Package()
delete d->details;
}
-QString Package::id()
+QString Package::id() const
{
return d->id;
}
-QString Package::name()
+QString Package::name() const
{
return d->name;
}
-QString Package::version()
+QString Package::version() const
{
return d->version;
}
-QString Package::arch()
+QString Package::arch() const
{
return d->arch;
}
-QString Package::data()
+QString Package::data() const
{
return d->data;
}
-QString Package::summary()
+QString Package::summary() const
{
return d->summary;
}
-Package::State Package::state()
+Package::State Package::state() const
{
return d->state;
}
-bool Package::hasDetails()
+bool Package::hasDetails() const
{
return (d->details != NULL);
}
-Package::Details* Package::details()
+Package::Details* Package::details() const
{
return d->details;
}
@@ -186,4 +186,9 @@ void Package::setDetails(Package::Details* det)
d->details = det;
}
+bool Package::operator==(const Package *package) const
+{
+ return d->id == package->id();
+}
+
#include "package.moc"
diff --git a/lib/packagekit-qt/src/package.h b/lib/packagekit-qt/src/package.h
index 6ac0b88..fac83e0 100644
--- a/lib/packagekit-qt/src/package.h
+++ b/lib/packagekit-qt/src/package.h
@@ -53,32 +53,32 @@ public:
*
* A PID (package ID) uniquely identifies a package among all software repositories
*/
- QString id();
+ QString id() const;
/**
* Returns the package name, for example vim
*/
- QString name();
+ QString name() const;
/**
* Returns the package version, for example 7.0
*/
- QString version();
+ QString version() const;
/**
* Returns the package's architecture, for example x86_64
*/
- QString arch();
+ QString arch() const;
/**
* Holds additionnal data about the package set by the backend
*/
- QString data();
+ QString data() const;
/**
* Returns the package's summary. You can get more details by using Client::getDetails
*/
- QString summary();
+ QString summary() const;
/**
* Describes the state of a package
@@ -104,7 +104,7 @@ public:
/**
* Returns the package's state
*/
- State state();
+ State state() const;
/**
* Describes a package's license
@@ -254,32 +254,32 @@ public:
* Returns the package these details are linked to
* \return the Package object to which these details are related
*/
- Package* package();
+ Package* package() const;
/**
* Returns the package's license
*/
- Package::License license();
+ Package::License license() const;
/**
* Returns the package's group (for example Multimedia, Editors...)
*/
- Client::Group group();
+ Client::Group group() const;
/**
* Returns the package's long description
*/
- QString description();
+ QString description() const;
/**
* Returns the software's homepage url
*/
- QString url();
+ QString url() const;
/**
* Returns the package's size
*/
- qulonglong size();
+ qulonglong size() const;
private:
friend class Package;
friend class TransactionPrivate;
@@ -293,7 +293,7 @@ public:
* \sa Client::getDetails
* \sa Package::details
*/
- bool hasDetails();
+ bool hasDetails() const;
/**
* \brief Returns the package's extended details
@@ -302,7 +302,9 @@ public:
* \return a pointer to a Package::Details class containing the package's details
* \sa Client::getDetails
*/
- Details* details();
+ Details* details() const;
+
+ bool operator==(const Package *package) const;
private:
friend class Transaction;
commit 92f043a698c225cf8db4eb01353203dcb4cb8936
Author: Richard Hughes <richard at hughsie.com>
Date: Fri Mar 6 14:55:03 2009 +0000
feature: remove the app-install feature, it's now it's own project
diff --git a/configure.ac b/configure.ac
index 4fc6056..259b1f7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -393,13 +393,6 @@ fi
AM_CONDITIONAL(PK_BUILD_GSTREAMER_PLUGIN, test $build_gstreamer_plugin = "yes")
dnl ---------------------------------------------------------------------------
-dnl - Able to build gstreamer plugin
-dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(app_install, AS_HELP_STRING([--enable-app-install],[Build application installer functionality]),
- enable_app_install=$enableval,enable_app_install=no)
-AM_CONDITIONAL(PK_BUILD_APP_INSTALL, test $enable_app_install = "yes")
-
-dnl ---------------------------------------------------------------------------
dnl - Able to build GTK module
dnl ---------------------------------------------------------------------------
AC_ARG_ENABLE(gtk_module, AS_HELP_STRING([--enable-gtk-module],[Build GTK module functionality]),
@@ -697,7 +690,6 @@ contrib/gstreamer-plugin/Makefile
contrib/gtk-module/Makefile
contrib/yum-packagekit/Makefile
contrib/command-not-found/Makefile
-contrib/app-install/Makefile
contrib/ruck/Makefile
contrib/ruck/src/Makefile
backends/Makefile
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index 843479a..4e47d70 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -12,10 +12,6 @@ if PK_BUILD_BROWSER_PLUGIN
SUBDIRS += browser-plugin
endif
-if PK_BUILD_APP_INSTALL
-SUBDIRS += app-install
-endif
-
if PK_BUILD_GSTREAMER_PLUGIN
SUBDIRS += gstreamer-plugin
endif
diff --git a/contrib/app-install/.gitignore b/contrib/app-install/.gitignore
deleted file mode 100644
index 603e341..0000000
--- a/contrib/app-install/.gitignore
+++ /dev/null
@@ -1,11 +0,0 @@
-.deps
-.libs
-*.o
-pk-app-install-create
-pk-app-install-remove
-pk-app-install-add
-pk-app-install-generate
-*.db
-*.sh
-dist
-
diff --git a/contrib/app-install/Makefile.am b/contrib/app-install/Makefile.am
deleted file mode 100644
index 45b96ae..0000000
--- a/contrib/app-install/Makefile.am
+++ /dev/null
@@ -1,65 +0,0 @@
-## We require new-style dependency handling.
-AUTOMAKE_OPTIONS = 1.7
-
-INCLUDES = \
- $(GLIB_CFLAGS) \
- $(GIO_CFLAGS) \
- $(DBUS_CFLAGS) \
- $(SQLITE_CFLAGS) \
- -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
- -DSYSCONFDIR=\""$(sysconfdir)"\" \
- -DDATADIR=\""$(datadir)"\" \
- -DLOCALSTATEDIR=\""$(localstatedir)"\" \
- -DEGG_LOG_FILE=\""$(PK_LOG_DIR)/PackageKit"\" \
- -DEGG_VERBOSE="\"PK_VERBOSE\"" \
- -DEGG_LOGGING="\"PK_LOGGING\"" \
- -DEGG_CONSOLE="\"PK_CONSOLE\"" \
- -I$(top_srcdir)/lib
-
-PK_GLIB_LIBS = $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
-
-sbin_PROGRAMS = pk-app-install-create pk-app-install-remove pk-app-install-add pk-app-install-generate
-
-pk_app_install_create_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- pk-app-install-create.c \
- pk-app-install-common.h \
- $(NULL)
-pk_app_install_create_LDADD = $(GIO_LIBS) $(GLIB_LIBS) $(SQLITE_LIBS)
-pk_app_install_create_CFLAGS = $(WARNINGFLAGS_C)
-
-pk_app_install_remove_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- pk-app-install-remove.c \
- pk-app-install-common.h \
- $(NULL)
-pk_app_install_remove_LDADD = $(GIO_LIBS) $(GLIB_LIBS) $(SQLITE_LIBS)
-pk_app_install_remove_CFLAGS = $(WARNINGFLAGS_C)
-
-pk_app_install_add_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- pk-app-install-add.c \
- pk-app-install-common.h \
- $(NULL)
-pk_app_install_add_LDADD = $(GIO_LIBS) $(GLIB_LIBS) $(SQLITE_LIBS)
-pk_app_install_add_CFLAGS = $(WARNINGFLAGS_C)
-
-pk_app_install_generate_SOURCES = \
- egg-debug.c \
- egg-debug.h \
- pk-app-install-generate.c \
- pk-app-install-common.h \
- $(NULL)
-pk_app_install_generate_LDADD = $(GIO_LIBS) $(GLIB_LIBS) $(SQLITE_LIBS) $(PK_GLIB_LIBS)
-pk_app_install_generate_CFLAGS = $(WARNINGFLAGS_C)
-
-install-data-hook:
- if test -w $(DESTDIR)$(prefix)/; then \
- mkdir -p $(DESTDIR)$(localstatedir)/lib/app-install/icons; \
- mkdir -p $(DESTDIR)$(datadir)/app-install/icons; \
- mkdir -p $(DESTDIR)$(datadir)/app-install/desktop; \
- fi
-
diff --git a/contrib/app-install/README b/contrib/app-install/README
deleted file mode 100644
index 7821d16..0000000
--- a/contrib/app-install/README
+++ /dev/null
@@ -1,87 +0,0 @@
-Application installing:
-
-In the Linux desktop we have a very big problem: We focus very much on packages.
-Packages are interesting to programmers, but users care about *applications*.
-
-I'll explain the difference:
-
-* Packages can contain none, one or multiple applications
-* Applications only belong to one package
-
-Now, when a user wants to install an application, they have to research on
-Google what the package name is called (which is different on each distro) or
-hope that the application name is mentioned in the description of the package
-in the distro metadata.
-
-Now, I said as a desktop we have one big problem, well, we actually have two:
-We don't all speak English. Some of us speak no English at all.
-
-We want to be able to display package descriptions to the user in all languages,
-but we don't want to download 80x the metadata to do so. Most packaging systems
-only understand en_US anyway, and there certainly isn't the resources to
-translate every spec file or emerge instruction for each distro.
-To add to the problems, each package needs an icon, in various sizes so we
-can show the application icon rather than a generic box.
-
->So we're sunk, right?
-
-No. In each package, there are desktop files that contain all the applications,
-with nice translations gently massaged and QA'd by upstream. It would be nice
-if we could search on that data. At the moment, this is impossible, unless we
-want to download every package in the archive, and extract the data from it.
-This is sort of how Ubuntu does gnome-app-install, and it seems to work fairly
-well. It is Ubuntu specific, but maybe we could work on that.
-
->So, we cache all the desktop files, and push this out to the repo metadata?
-
-No. If you did that you make a lot of people very unhappy, as even compressed
-the metadata and icons make up over 80Mb.
-
->So we're sunk, right?
-
-No. What we can do is create sub-packages for each repo
-(e.g. rpmfusion-appdata) which ships a tarball of icons and a few hundred Kb
-of SQL. Every time the repo maintainer can be bothered (once a month?) the
-new data is generated, and a new package pushed out to the mirrors. If the
-repo maintainer can't be bothered to do that, then none of the new packages will
-show up in the application browser. It's optional.
-
->This data clogs up my system right?
-
-Well, it's only a few tens of Mb if you want all the icons in most of the sizes,
-if you only choose the 48x48 option then it's much less. When you install the
-new $repo-appdata subpackage, it removes all the stale applications and re-adds
-the latest data. This happens in the vendor spec files as postinst scripts.
-
->How do I query the data?
-
-It's a simple sqlite database in /var/lib/app-install/desktop.db -- the icons
-are located in /usr/share/app-install/icons/$size/*.png -- there's no installer
-yet using this, but expect a few before two long.
-
->Great! Another Ubuntu v.s. Red Hat standards war!
-
-No. Roderick Greening and Sebastian Heinlein and myself together drafted
-the specification together, and made it generic enough for all the distros to
-use. It's totally expected that each distro will code a tool to extract the
-metadata, but that's because they are different in some ways.
-
->So the maintainers have to install everything just to get the desktop files?!
-
-No. You can download and install a package to a prefix without the deps -- we
-don't need the binary to run, we just need the data. in this way we don't need
-to download -data subpackages, only the one with the desktop file in.
-
->Can I add some more features to the spec?
-
-Yes, in a little while. We want to get version 1 of the spec finished, with it
-being used in a few distros. When we're comfortable this works correctly, we'll
-start working on version 2, and add stuff like popularity metrics and metadata
-about suggesting gnome-power-manager rather than kpowersave if you're running
-GNOME. There are lots of things we need to add for this to work really well.
-
-./pk-app-install-create --verbose
-./pk-app-install-generate --verbose --repo=fedora --outputdir=./dist/icons --cache=./dist/livna.sqldata
-./pk-app-install-add --verbose --repo=fedora --icondir=./dist/icons --source=./dist/livna.sqldata
-./pk-app-install-remove --verbose --repo=fedora --icondir=./dist/icons
-
diff --git a/contrib/app-install/egg-debug.c b/contrib/app-install/egg-debug.c
deleted file mode 120000
index 663c6cd..0000000
--- a/contrib/app-install/egg-debug.c
+++ /dev/null
@@ -1 +0,0 @@
-../command-not-found/egg-debug.c
\ No newline at end of file
diff --git a/contrib/app-install/egg-debug.h b/contrib/app-install/egg-debug.h
deleted file mode 120000
index 51c7d17..0000000
--- a/contrib/app-install/egg-debug.h
+++ /dev/null
@@ -1 +0,0 @@
-../command-not-found/egg-debug.h
\ No newline at end of file
diff --git a/contrib/app-install/pk-app-install-add.c b/contrib/app-install/pk-app-install-add.c
deleted file mode 100644
index 8172425..0000000
--- a/contrib/app-install/pk-app-install-add.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <glib/gi18n.h>
-#include <sqlite3.h>
-#include <gio/gio.h>
-
-#include "pk-app-install-common.h"
-#include "egg-debug.h"
-
-static const gchar *icon_sizes[] = { "22x22", "24x24", "32x32", "48x48", "scalable", NULL };
-
-/**
- * pk_app_install_add_get_number_sqlite_cb:
- **/
-static gint
-pk_app_install_add_get_number_sqlite_cb (void *data, gint argc, gchar **argv, gchar **col_name)
-{
- guint *number = (guint *) data;
- (*number)++;
- return 0;
-}
-
-/**
- * pk_app_install_add_copy_icons_sqlite_cb:
- **/
-static gint
-pk_app_install_add_copy_icons_sqlite_cb (void *data, gint argc, gchar **argv, gchar **col_name)
-{
- guint i;
- gchar *col;
- gchar *value;
- const gchar *application_id = NULL;
- const gchar *icon_name = NULL;
- gchar *path;
- gchar *dest;
- GFile *file;
- GFile *remote;
- const gchar *icondir = (const gchar *) data;
- gboolean ret;
- gchar *icon_name_full;
- GError *error = NULL;
-
- for (i=0; i<(guint)argc; i++) {
- col = col_name[i];
- value = argv[i];
- if (g_strcmp0 (col, "application_id") == 0)
- application_id = value;
- else if (g_strcmp0 (col, "icon_name") == 0)
- icon_name = value;
- }
- if (application_id == NULL || icon_name == NULL)
- goto out;
-
- egg_debug ("copying icon %s for application: %s", icon_name, application_id);
- icon_name_full = g_strdup_printf ("%s.png", icon_name);
-
- /* copy all icon sizes if they exist */
- for (i=0; icon_sizes[i] != NULL; i++) {
- path = g_build_filename (icondir, icon_sizes[i], icon_name_full, NULL);
- ret = g_file_test (path, G_FILE_TEST_EXISTS);
- if (ret) {
- dest = g_build_filename (PK_APP_INSTALL_DEFAULT_ICONDIR, icon_sizes[i], icon_name_full, NULL);
- egg_debug ("copying file %s to %s", path, dest);
- file = g_file_new_for_path (path);
- remote = g_file_new_for_path (dest);
- ret = g_file_copy (file, remote, G_FILE_COPY_TARGET_DEFAULT_PERMS, NULL, NULL, NULL, &error);
- if (!ret) {
- egg_warning ("cannot copy %s: %s", path, error->message);
- g_clear_error (&error);
- }
- g_object_unref (file);
- g_object_unref (remote);
- g_free (dest);
- } else {
- egg_debug ("failed to find icon %s", path);
- }
- g_free (path);
- }
- g_free (icon_name_full);
-out:
- return 0;
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean verbose = FALSE;
- GOptionContext *context;
- gint retval = 0;
- gchar *cache = NULL;
- gchar *repo = NULL;
- gchar *source = NULL;
- gchar *icondir = NULL;
- sqlite3 *db = NULL;
- gchar *error_msg;
- gint rc;
- guint number = 0;
- gchar *statement;
- gchar *contents = NULL;
- gboolean ret;
- GError *error = NULL;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "cache", 'c', 0, G_OPTION_ARG_STRING, &cache,
- /* TRANSLATORS: if we are specifing a out-of-tree database */
- _("Main cache file to use (if not specififed, default is used)"), NULL},
- { "source", 's', 0, G_OPTION_ARG_STRING, &source,
- /* TRANSLATORS: the source database, typically used for adding */
- _("Source cache file to add to the main database"), NULL},
- { "icondir", 'i', 0, G_OPTION_ARG_STRING, &icondir,
- /* TRANSLATORS: the icon directory */
- _("Icon directory"), NULL},
- { "repo", 'n', 0, G_OPTION_ARG_STRING, &repo,
- /* TRANSLATORS: the repo of the software source, e.g. fedora */
- _("Name of the remote repo"), NULL},
- { NULL}
- };
-
- setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Application Database Installer"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- g_type_init ();
- egg_debug_init (verbose);
-
- egg_debug ("cache=%s, source=%s, repo=%s, icondir=%s", cache, source, repo, icondir);
-
- /* use default */
- if (cache == NULL) {
- egg_debug ("cache not specified, using %s", PK_APP_INSTALL_DEFAULT_DATABASE);
- cache = g_strdup (PK_APP_INSTALL_DEFAULT_DATABASE);
- }
-
- if (repo == NULL) {
- egg_warning ("A repo name is required");
- retval = 1;
- goto out;
- }
- if (source == NULL) {
- egg_warning ("A source filename is required");
- retval = 1;
- goto out;
- }
- if (!g_file_test (source, G_FILE_TEST_EXISTS)) {
- egg_warning ("The source filename '%s' could not be found", source);
- retval = 1;
- goto out;
- }
- if (icondir == NULL || !g_file_test (icondir, G_FILE_TEST_IS_DIR)) {
- egg_warning ("The icon directory '%s' could not be found", icondir);
- retval = 1;
- goto out;
- }
-
- /* check that there are no existing entries from this repo */
- rc = sqlite3_open (cache, &db);
- if (rc) {
- egg_warning ("Can't open database: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
-
- /* check that there are no existing entries from this repo */
- statement = g_strdup_printf ("SELECT application_id FROM applications WHERE repo_id = '%s'", repo);
- rc = sqlite3_exec (db, statement, pk_app_install_add_get_number_sqlite_cb, (void*) &number, &error_msg);
- g_free (statement);
- if (rc != SQLITE_OK) {
- egg_warning ("SQL error: %s\n", error_msg);
- sqlite3_free (error_msg);
- retval = 1;
- goto out;
- }
-
- /* already have data for this repo */
- if (number > 0) {
- egg_warning ("There are already %i entries for repo_id=%s", number, repo);
- goto out;
- }
-
- /* get all the sql from the source file */
- ret = g_file_get_contents (source, &contents, NULL, &error);
- if (!ret) {
- egg_warning ("cannot read source file: %s", error->message);
- g_error_free (error);
- goto out;
- }
-
- /* don't sync */
- rc = sqlite3_exec (db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
- if (rc) {
- egg_warning ("Can't turn off sync: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
-
- /* copy all the applications and translations into remote db */
- rc = sqlite3_exec (db, contents, NULL, NULL, &error_msg);
- if (rc != SQLITE_OK) {
- egg_warning ("SQL error: %s\n", error_msg);
- sqlite3_free (error_msg);
- retval = 1;
- goto out;
- }
- egg_debug ("%i additions to the database", sqlite3_changes (db));
-
- /* copy all the icons */
- statement = g_strdup_printf ("SELECT application_id, icon_name FROM applications WHERE repo_id = '%s'", repo);
- rc = sqlite3_exec (db, statement, pk_app_install_add_copy_icons_sqlite_cb, (void*) icondir, &error_msg);
- g_free (statement);
- if (rc != SQLITE_OK) {
- egg_warning ("SQL error: %s\n", error_msg);
- sqlite3_free (error_msg);
- retval = 1;
- goto out;
- }
-
-out:
- if (db != NULL)
- sqlite3_close (db);
- g_free (contents);
- g_free (cache);
- g_free (repo);
- g_free (source);
- g_free (icondir);
- return 0;
-}
-
diff --git a/contrib/app-install/pk-app-install-common.h b/contrib/app-install/pk-app-install-common.h
deleted file mode 100644
index 23fe1f5..0000000
--- a/contrib/app-install/pk-app-install-common.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __PK_APP_INSTALL_COMMON_H
-#define __PK_APP_INSTALL_COMMON_H
-
-#define PK_APP_INSTALL_DEFAULT_DATABASE LOCALSTATEDIR "/lib/app-install/desktop.db"
-#define PK_APP_INSTALL_DEFAULT_ICONDIR DATADIR "/app-install/icons"
-
-#endif /* __PK_APP_INSTALL_COMMON_H */
diff --git a/contrib/app-install/pk-app-install-create.c b/contrib/app-install/pk-app-install-create.c
deleted file mode 100644
index df06ce6..0000000
--- a/contrib/app-install/pk-app-install-create.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <glib/gi18n.h>
-#include <sqlite3.h>
-
-#include "pk-app-install-common.h"
-#include "egg-debug.h"
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean verbose = FALSE;
- GOptionContext *context;
- gchar *cache = NULL;
- gboolean create_file;
- const gchar *statement;
- sqlite3 *db = NULL;
- gint retval;
- gint rc;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "cache", 'c', 0, G_OPTION_ARG_STRING, &cache,
- /* TRANSLATORS: if we are specifing a out-of-tree database */
- _("Main database file to use (if not specififed, default is used)"), NULL},
- { NULL}
- };
-
- setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Application Database Installer"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- egg_debug_init (verbose);
-
- /* use default */
- if (cache == NULL) {
- egg_debug ("cache not specified, using %s", PK_APP_INSTALL_DEFAULT_DATABASE);
- cache = g_strdup (PK_APP_INSTALL_DEFAULT_DATABASE);
- }
-
- /* if the database file was not installed (or was nuked) recreate it */
- create_file = g_file_test (cache, G_FILE_TEST_EXISTS);
- if (create_file == TRUE) {
- egg_warning ("already exists");
- goto out;
- }
-
- /* open database */
- rc = sqlite3_open (cache, &db);
- if (rc) {
- egg_warning ("Can't open database: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
-
- /* don't sync */
- statement = "PRAGMA synchronous=OFF";
- rc = sqlite3_exec (db, statement, NULL, NULL, NULL);
- if (rc) {
- egg_warning ("Can't turn off sync: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
-
- /* create */
- if (create_file == FALSE) {
- statement = "CREATE TABLE applications ("
- "application_id TEXT primary key,"
- "package_name TEXT,"
- "categories TEXT,"
- "repo_id TEXT,"
- "icon_name TEXT,"
- "application_name TEXT,"
- "application_summary TEXT);";
- rc = sqlite3_exec (db, statement, NULL, NULL, NULL);
- if (rc) {
- egg_warning ("Can't create applications table: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
- statement = "CREATE TABLE translations ("
- "application_id TEXT,"
- "application_name TEXT,"
- "application_summary TEXT,"
- "locale TEXT);";
- rc = sqlite3_exec (db, statement, NULL, NULL, NULL);
- if (rc) {
- egg_warning ("Can't create translations table: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
- }
-out:
- if (db != NULL)
- sqlite3_close (db);
- g_free (cache);
- return retval;
-}
-
diff --git a/contrib/app-install/pk-app-install-generate.c b/contrib/app-install/pk-app-install-generate.c
deleted file mode 100644
index 0fb9538..0000000
--- a/contrib/app-install/pk-app-install-generate.c
+++ /dev/null
@@ -1,512 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <glib/gi18n.h>
-#include <sqlite3.h>
-#include <gio/gio.h>
-#include <packagekit-glib/packagekit.h>
-
-#include "pk-app-install-common.h"
-#include "egg-debug.h"
-
-static const gchar *icon_sizes[] = { "22x22", "24x24", "32x32", "48x48", "scalable", NULL };
-
-typedef struct {
- gchar *key;
- gchar *value;
- gchar *locale;
-} PkDesktopData;
-
-/**
- * pk_app_install_generate_desktop_data_free:
- **/
-static void
-pk_app_install_generate_desktop_data_free (PkDesktopData *data)
-{
- g_free (data->key);
- g_free (data->value);
- g_free (data->locale);
- g_free (data);
-}
-
-/**
- * pk_app_install_generate_create_icon_directories:
- **/
-static gboolean
-pk_app_install_generate_create_icon_directories (const gchar *directory)
-{
- gboolean ret;
- GError *error = NULL;
- GFile *file;
- gchar *path;
- guint i;
-
- /* create main directory */
- ret = g_file_test (directory, G_FILE_TEST_IS_DIR);
- if (!ret) {
- file = g_file_new_for_path (directory);
- ret = g_file_make_directory (file, NULL, &error);
- g_object_unref (file);
- if (!ret) {
- egg_warning ("cannot create %s: %s", path, error->message);
- g_error_free (error);
- goto out;
- }
- }
-
- /* make sub directories */
- for (i=0; icon_sizes[i] != NULL; i++) {
- path = g_build_filename (directory, icon_sizes[i], NULL);
- ret = g_file_test (path, G_FILE_TEST_IS_DIR);
- if (!ret) {
- egg_debug ("creating %s", path);
- file = g_file_new_for_path (path);
- ret = g_file_make_directory (file, NULL, &error);
- if (!ret) {
- egg_warning ("cannot create %s: %s", path, error->message);
- g_clear_error (&error);
- }
- g_object_unref (file);
- }
- g_free (path);
- }
-out:
- return ret;
-}
-
-/**
- * pk_app_install_generate_get_desktop_data:
- **/
-static GPtrArray *
-pk_app_install_generate_get_desktop_data (const gchar *filename)
-{
- gboolean ret;
- GError *error = NULL;
- GPtrArray *data = NULL;
- gchar *contents = NULL;
- gchar **lines;
- gchar **parts;
- guint i, len;
- PkDesktopData *obj;
-
- /* get all the contents */
- ret = g_file_get_contents (filename, &contents, NULL, &error);
- if (!ret) {
- egg_warning ("cannot read source file: %s", error->message);
- g_error_free (error);
- goto out;
- }
-
- /* split lines and extract data */
- data = g_ptr_array_new ();
- lines = g_strsplit (contents, "\n", -1);
- for (i=0; lines[i] != NULL; i++) {
- parts = g_strsplit_set (lines[i], "=[]", -1);
- len = g_strv_length (parts);
- if (len == 2) {
- obj = g_new0 (PkDesktopData, 1);
- obj->key = g_strdup (parts[0]);
- obj->value = g_strdup (parts[1]);
- g_ptr_array_add (data, obj);
- } else if (len == 4) {
- obj = g_new0 (PkDesktopData, 1);
- obj->key = g_strdup (parts[0]);
- obj->locale = g_strdup (parts[1]);
- obj->value = g_strdup (parts[3]);
- g_ptr_array_add (data, obj);
- }
- g_strfreev (parts);
- }
- g_strfreev (lines);
- g_free (contents);
-out:
- return data;
-}
-
-/**
- * pk_app_install_generate_get_value_for_locale:
- **/
-static gchar *
-pk_app_install_generate_get_value_for_locale (GPtrArray *data, const gchar *key, const gchar *locale)
-{
- guint i;
- gchar *value = NULL;
- const PkDesktopData *obj;
-
- /* find data matching key name and locale */
- for (i=0; i<data->len; i++) {
- obj = g_ptr_array_index (data, i);
- if (g_strcmp0 (key, obj->key) == 0 && g_strcmp0 (locale, obj->locale) == 0) {
- value = g_strdup (obj->value);
- break;
- }
- }
- return value;
-}
-
-/**
- * pk_app_install_generate_get_locales:
- **/
-static GPtrArray *
-pk_app_install_generate_get_locales (GPtrArray *data)
-{
- guint i, j;
- GPtrArray *locales;
- const PkDesktopData *obj;
-
- /* find data matching key name and locale */
- locales = g_ptr_array_new ();
- for (i=0; i<data->len; i++) {
- obj = g_ptr_array_index (data, i);
-
- /* no point */
- if (obj->locale == NULL)
- continue;
-
- /* is already in locale list */
- for (j=0; j<locales->len; j++) {
- if (g_strcmp0 (obj->locale, g_ptr_array_index (locales, j)) == 0)
- break;
- }
- /* not already there */
- if (j == locales->len)
- g_ptr_array_add (locales, g_strdup (obj->locale));
- }
- return locales;
-}
-
-/**
- * pk_app_install_generate_get_application_id:
- **/
-static gchar *
-pk_app_install_generate_get_application_id (const gchar *filename)
-{
- gchar *find;
- gchar *application_id;
-
- find = g_strrstr (filename, "/");
- application_id = g_strdup (find+1);
- find = g_strrstr (application_id, ".");
- *find = '\0';
- return application_id;
-}
-
-/**
- * pk_app_install_generate_applications_sql:
- **/
-static gchar *
-pk_app_install_generate_applications_sql (GPtrArray *data, const gchar *repo, const gchar *package, const gchar *application_id)
-{
- GString *sql;
- gchar *name = NULL;
- gchar *comment = NULL;
- gchar *icon_name = NULL;
- gchar *categories = NULL;
- gchar *escaped;
-
- sql = g_string_new ("");
- name = pk_app_install_generate_get_value_for_locale (data, "Name", NULL);
- icon_name = pk_app_install_generate_get_value_for_locale (data, "Icon", NULL);
- comment = pk_app_install_generate_get_value_for_locale (data, "Comment", NULL);
- categories = pk_app_install_generate_get_value_for_locale (data, "Categories", NULL);
-
- /* remove invalid icons */
- if (icon_name != NULL &&
- (g_str_has_prefix (icon_name, "/") ||
- g_str_has_suffix (icon_name, ".png"))) {
- g_free (icon_name);
- icon_name = NULL;
- }
-
- egg_debug ("application_id=%s, name=%s, comment=%s, icon=%s, categories=%s", application_id, name, comment, icon_name, categories);
-
- /* append the application data to the sql string */
- escaped = sqlite3_mprintf ("INSERT INTO applications (application_id, package_name, categories, "
- "repo_id, icon_name, application_name, application_summary) "
- "VALUES (%Q, %Q, %Q, %Q, %Q, %Q, %Q);",
- application_id, package, categories, repo, icon_name, name, comment);
- g_string_append_printf (sql, "%s\n", escaped);
-
- sqlite3_free (escaped);
- g_free (name);
- g_free (comment);
- g_free (icon_name);
- g_free (categories);
- return g_string_free (sql, FALSE);
-}
-
-/**
- * pk_app_install_generate_translations_sql:
- **/
-static gchar *
-pk_app_install_generate_translations_sql (GPtrArray *data, GPtrArray *locales, const gchar *application_id)
-{
- GString *sql;
- gchar *name = NULL;
- gchar *comment = NULL;
- gchar *escaped;
- const gchar *locale;
- guint i;
-
- sql = g_string_new ("");
- for (i=0; i<locales->len; i++) {
- locale = g_ptr_array_index (locales, i);
- name = pk_app_install_generate_get_value_for_locale (data, "Name", locale);
- comment = pk_app_install_generate_get_value_for_locale (data, "Comment", locale);
-
- /* append the application data to the sql string if either not null */
- if (name != NULL || comment != NULL) {
- escaped = sqlite3_mprintf ("INSERT INTO translations (application_id, application_name, application_summary, locale) "
- "VALUES (%Q, %Q, %Q, %Q);", application_id, name, comment, locale);
- g_string_append_printf (sql, "%s\n", escaped);
-
- sqlite3_free (escaped);
- g_free (name);
- g_free (comment);
- }
- }
-
- return g_string_free (sql, FALSE);
-}
-
-/**
- * pk_app_install_generate_copy_icons:
- **/
-static gboolean
-pk_app_install_generate_copy_icons (const gchar *root, const gchar *directory, const gchar *icon_name)
-{
- gboolean ret;
- GError *error = NULL;
- GFile *file;
- GFile *remote;
- gchar *dest;
- gchar *iconpath;
- gchar *icon_name_full;
- guint i;
-
- /* copy all icon sizes if they exist */
- for (i=0; icon_sizes[i] != NULL; i++) {
-
- /* get the icon name */
- if (g_strcmp0 (icon_sizes[i], "scalable") == 0)
- icon_name_full = g_strdup_printf ("%s.svg", icon_name);
- else
- icon_name_full = g_strdup_printf ("%s.png", icon_name);
-
- /* build the icon path */
- iconpath = g_build_filename (root, "/usr/share/icons/hicolor", icon_sizes[i], "apps", icon_name_full, NULL);
- ret = g_file_test (iconpath, G_FILE_TEST_EXISTS);
- if (ret) {
- dest = g_build_filename (directory, icon_sizes[i], icon_name_full, NULL);
- egg_debug ("copying file %s to %s", iconpath, dest);
- file = g_file_new_for_path (iconpath);
- remote = g_file_new_for_path (dest);
- ret = g_file_copy (file, remote, G_FILE_COPY_TARGET_DEFAULT_PERMS | G_FILE_COPY_OVERWRITE, NULL, NULL, NULL, &error);
- if (!ret) {
- egg_warning ("cannot copy %s: %s", dest, error->message);
- g_clear_error (&error);
- }
- g_object_unref (file);
- g_object_unref (remote);
- g_free (dest);
- } else {
- egg_debug ("does not exist: %s, so not copying", iconpath);
- }
- g_free (iconpath);
- g_free (icon_name_full);
- }
- return TRUE;
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean verbose = FALSE;
- GOptionContext *context;
- gint retval = 0;
- gchar *repo = NULL;
- gchar *root = NULL;
- gchar *desktopfile = NULL;
- gchar *outputdir = NULL;
- gchar *icondir = NULL;
- gchar *package = NULL;
- GString *string = NULL;
- GPtrArray *data = NULL;
- gchar *sql = NULL;
- gchar *application_id = NULL;
- gchar *icon_name = NULL;
- GPtrArray *locales = NULL;
- gchar *filename = NULL;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "root", 's', 0, G_OPTION_ARG_STRING, &root,
- /* TRANSLATORS: the root database, typically used for adding */
- _("Source cache file to add to the main database"), NULL},
- { "desktopfile", 'i', 0, G_OPTION_ARG_STRING, &desktopfile,
- /* TRANSLATORS: the icon directory */
- _("Icon directory"), NULL},
- { "package", 'n', 0, G_OPTION_ARG_STRING, &package,
- /* TRANSLATORS: the repo of the software root, e.g. fedora */
- _("Name of the package"), NULL},
- { "outputdir", 'o', 0, G_OPTION_ARG_STRING, &outputdir,
- /* TRANSLATORS: the output directory */
- _("Icon directory"), NULL},
- { "repo", 'n', 0, G_OPTION_ARG_STRING, &repo,
- /* TRANSLATORS: the repo of the software root, e.g. fedora */
- _("Name of the remote repo"), NULL},
- { NULL}
- };
-
- setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Application Database Installer"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- g_type_init ();
- egg_debug_init (verbose);
-
- /* use default */
-
- /* things we require */
- if (repo == NULL) {
- g_print ("A repo name is required\n");
- retval = 1;
- goto out;
- }
- if (outputdir == NULL) {
- g_print ("A output directory is required\n");
- retval = 1;
- goto out;
- }
- if (desktopfile == NULL) {
- g_print ("A desktop file is required\n");
- retval = 1;
- goto out;
- }
- if (package == NULL) {
- g_print ("A package name is required\n");
- retval = 1;
- goto out;
- }
-
- /* use defaults */
- if (root == NULL) {
- egg_debug ("root not specified, using /");
- root = g_strdup ("/");
- }
-
- /* check directories exist */
- if (!g_file_test (root, G_FILE_TEST_IS_DIR)) {
- g_print ("The root filename '%s' could not be found\n", root);
- retval = 1;
- goto out;
- }
- if (!g_file_test (outputdir, G_FILE_TEST_IS_DIR)) {
- g_print ("The icon output directory '%s' could not be found\n", outputdir);
- retval = 1;
- goto out;
- }
-
- /* generate the sub directories in the outputdir if they dont exist */
- icondir = g_build_filename (outputdir, "icons", NULL);
- pk_app_install_generate_create_icon_directories (icondir);
-
- /* use this to dump the data */
- string = g_string_new ("");
-
- filename = g_build_filename (root, "/usr/share/applications", desktopfile, NULL);
- egg_debug ("filename: %s", filename);
-
- /* get app-id */
- application_id = pk_app_install_generate_get_application_id (filename);
-
- /* extract data */
- data = pk_app_install_generate_get_desktop_data (filename);
- if (data == NULL) {
- g_print ("Could not get desktop data from %s\n", filename);
- retval = 1;
- goto out;
- }
-
- /* form application SQL */
- sql = pk_app_install_generate_applications_sql (data, repo, package, application_id);
- g_string_append_printf (string, "%s", sql);
- g_free (sql);
-
- /* get list of locales in this file */
- locales = pk_app_install_generate_get_locales (data);
- if (locales == NULL) {
- g_print ("Could not get locale data from %s\n", filename);
- retval = 1;
- goto out;
- }
-
- /* form translations SQL */
- sql = pk_app_install_generate_translations_sql (data, locales, application_id);
- g_string_append_printf (string, "%s\n", sql);
- g_free (sql);
-
- /* copy icons */
- icon_name = pk_app_install_generate_get_value_for_locale (data, "Icon", NULL);
- if (icon_name != NULL && !g_str_has_suffix (icon_name, ".png"))
- pk_app_install_generate_copy_icons (root, icondir, icon_name);
-
- /* print to screen */
- g_print ("%s", string->str);
-
-out:
- if (string != NULL)
- g_string_free (string, TRUE);
- if (locales != NULL) {
- g_ptr_array_foreach (locales, (GFunc) g_free, NULL);
- g_ptr_array_free (locales, TRUE);
- }
- if (data != NULL) {
- g_ptr_array_foreach (data, (GFunc) pk_app_install_generate_desktop_data_free, NULL);
- g_ptr_array_free (data, TRUE);
- }
- g_free (icondir);
- g_free (icon_name);
- g_free (package);
- g_free (filename);
- g_free (application_id);
- g_free (repo);
- g_free (root);
- g_free (desktopfile);
- g_free (outputdir);
- return retval;
-}
-
diff --git a/contrib/app-install/pk-app-install-remove.c b/contrib/app-install/pk-app-install-remove.c
deleted file mode 100644
index 3753b13..0000000
--- a/contrib/app-install/pk-app-install-remove.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2009 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <glib/gi18n.h>
-#include <glib/gstdio.h>
-#include <sqlite3.h>
-#include <gio/gio.h>
-
-#include "pk-app-install-common.h"
-#include "egg-debug.h"
-
-const gchar *icon_sizes[] = { "22x22", "24x24", "32x32", "48x48", "scalable", NULL };
-
-/**
- * pk_app_install_remove_icons_sqlite_cb:
- **/
-static gint
-pk_app_install_remove_icons_sqlite_cb (void *data, gint argc, gchar **argv, gchar **col_name)
-{
- guint i;
- gchar *col;
- gchar *value;
- const gchar *application_id = NULL;
- const gchar *icon_name = NULL;
- gchar *path;
- const gchar *icondir = (const gchar *) data;
- GFile *file;
- gboolean ret;
- GError *error = NULL;
-
- for (i=0; i<(guint)argc; i++) {
- col = col_name[i];
- value = argv[i];
- if (g_strcmp0 (col, "application_id") == 0)
- application_id = value;
- else if (g_strcmp0 (col, "icon_name") == 0)
- icon_name = value;
- }
- if (application_id == NULL || icon_name == NULL)
- goto out;
-
- egg_debug ("removing icons for application: %s", application_id);
-
- /* delete all icon sizes */
- for (i=0; icon_sizes[i] != NULL; i++) {
- path = g_build_filename (icondir, icon_sizes[i], icon_name, NULL);
- ret = g_file_test (path, G_FILE_TEST_EXISTS);
- if (ret) {
- egg_debug ("removing file %s", path);
- file = g_file_new_for_path (path);
- ret = g_file_delete (file, NULL, &error);
- if (!ret) {
- egg_warning ("cannot delete %s: %s", path, error->message);
- g_clear_error (&error);
- }
- g_object_unref (file);
- }
- g_free (path);
- }
-out:
- return 0;
-}
-
-/**
- * main:
- **/
-int
-main (int argc, char *argv[])
-{
- gboolean verbose = FALSE;
- GOptionContext *context;
- gint retval = 0;
- gchar *cache = NULL;
- gchar *repo = NULL;
- gchar *icondir = NULL;
- gboolean ret = TRUE;
- gchar *statement = NULL;
- sqlite3 *db = NULL;
- gchar *error_msg;
- gint rc;
-
- const GOptionEntry options[] = {
- { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
- _("Show extra debugging information"), NULL },
- { "cache", 'c', 0, G_OPTION_ARG_STRING, &cache,
- /* TRANSLATORS: if we are specifing a out-of-tree database */
- _("Main cache file to use (if not specififed, default is used)"), NULL},
- { "icondir", 'i', 0, G_OPTION_ARG_STRING, &icondir,
- /* TRANSLATORS: the icon directory */
- _("Icon directory"), NULL},
- { "repo", 'n', 0, G_OPTION_ARG_STRING, &repo,
- /* TRANSLATORS: the repo of the software source, e.g. fedora */
- _("Name of the remote repo"), NULL},
- { NULL}
- };
-
- setlocale (LC_ALL, "");
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Application Database Installer"));
- g_option_context_add_main_entries (context, options, NULL);
- g_option_context_parse (context, &argc, &argv, NULL);
- g_option_context_free (context);
-
- egg_debug_init (verbose);
-
- /* use default */
- if (cache == NULL) {
- egg_debug ("cache not specified, using %s", PK_APP_INSTALL_DEFAULT_DATABASE);
- cache = g_strdup (PK_APP_INSTALL_DEFAULT_DATABASE);
- }
- if (icondir == NULL) {
- egg_debug ("icondir not specified, using %s", PK_APP_INSTALL_DEFAULT_ICONDIR);
- icondir = g_strdup (PK_APP_INSTALL_DEFAULT_ICONDIR);
- }
-
- /* check */
- if (repo == NULL) {
- egg_warning ("A repo name is required");
- retval = 1;
- goto out;
- }
- if (!g_file_test (icondir, G_FILE_TEST_IS_DIR)) {
- egg_warning ("The icon directory '%s' could not be found", icondir);
- retval = 1;
- goto out;
- }
-
- /* open database */
- rc = sqlite3_open (cache, &db);
- if (rc) {
- egg_warning ("Can't open database: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
-
- /* don't sync */
- rc = sqlite3_exec (db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
- if (rc) {
- egg_warning ("Can't turn off sync: %s\n", sqlite3_errmsg (db));
- retval = 1;
- goto out;
- }
-
- /* remove icons */
- statement = g_strdup_printf ("SELECT application_id, icon_name FROM applications WHERE repo_id = '%s'", repo);
- rc = sqlite3_exec (db, statement, pk_app_install_remove_icons_sqlite_cb, (void*) icondir, &error_msg);
- g_free (statement);
- if (rc != SQLITE_OK) {
- egg_warning ("SQL error: %s\n", error_msg);
- sqlite3_free (error_msg);
- return 0;
- }
-
- /* delete from translations (translations has no repo_id, so key of applications) */
- statement = g_strdup_printf ("DELETE FROM translations WHERE EXISTS ( "
- "SELECT applications.application_id FROM applications WHERE "
- "applications.application_id = applications.application_id AND applications.repo_id = '%s')", repo);
- rc = sqlite3_exec (db, statement, NULL, NULL, NULL);
- g_free (statement);
- if (rc) {
- egg_warning ("Can't remove rows: %s\n", sqlite3_errmsg (db));
- ret = FALSE;
- goto out;
- }
- egg_debug ("%i removals from translations", sqlite3_changes (db));
-
- /* delete from applications */
- statement = g_strdup_printf ("DELETE FROM applications WHERE repo_id = '%s'", repo);
- rc = sqlite3_exec (db, statement, NULL, NULL, NULL);
- g_free (statement);
- if (rc) {
- egg_warning ("Can't remove rows: %s\n", sqlite3_errmsg (db));
- ret = FALSE;
- goto out;
- }
- egg_debug ("%i removals from applications", sqlite3_changes (db));
-
- /* reclaim memory */
- statement = g_strdup ("VACUUM");
- rc = sqlite3_exec (db, statement, NULL, NULL, NULL);
- if (rc) {
- egg_warning ("Can't vacuum: %s\n", sqlite3_errmsg (db));
- ret = FALSE;
- goto out;
- }
-out:
- if (db != NULL)
- sqlite3_close (db);
- g_free (statement);
- g_free (cache);
- g_free (repo);
- g_free (icondir);
- return 0;
-}
-
commit 89db78ebd1fac32e040c76626ef86451d5aa3dab
Author: Richard Hughes <richard at hughsie.com>
Date: Fri Mar 6 11:32:57 2009 +0000
trivial: fix up the app-install stuff
diff --git a/contrib/app-install/Makefile.am b/contrib/app-install/Makefile.am
index 834aa4b..45b96ae 100644
--- a/contrib/app-install/Makefile.am
+++ b/contrib/app-install/Makefile.am
@@ -18,9 +18,7 @@ INCLUDES = \
PK_GLIB_LIBS = $(top_builddir)/lib/packagekit-glib/libpackagekit-glib.la
-noinst_PROGRAMS = pk-app-install-add pk-app-install-generate
-
-sbin_PROGRAMS = pk-app-install-create pk-app-install-remove
+sbin_PROGRAMS = pk-app-install-create pk-app-install-remove pk-app-install-add pk-app-install-generate
pk_app_install_create_SOURCES = \
egg-debug.c \
diff --git a/contrib/app-install/README b/contrib/app-install/README
index d69da4a..7821d16 100644
--- a/contrib/app-install/README
+++ b/contrib/app-install/README
@@ -1,3 +1,85 @@
+Application installing:
+
+In the Linux desktop we have a very big problem: We focus very much on packages.
+Packages are interesting to programmers, but users care about *applications*.
+
+I'll explain the difference:
+
+* Packages can contain none, one or multiple applications
+* Applications only belong to one package
+
+Now, when a user wants to install an application, they have to research on
+Google what the package name is called (which is different on each distro) or
+hope that the application name is mentioned in the description of the package
+in the distro metadata.
+
+Now, I said as a desktop we have one big problem, well, we actually have two:
+We don't all speak English. Some of us speak no English at all.
+
+We want to be able to display package descriptions to the user in all languages,
+but we don't want to download 80x the metadata to do so. Most packaging systems
+only understand en_US anyway, and there certainly isn't the resources to
+translate every spec file or emerge instruction for each distro.
+To add to the problems, each package needs an icon, in various sizes so we
+can show the application icon rather than a generic box.
+
+>So we're sunk, right?
+
+No. In each package, there are desktop files that contain all the applications,
+with nice translations gently massaged and QA'd by upstream. It would be nice
+if we could search on that data. At the moment, this is impossible, unless we
+want to download every package in the archive, and extract the data from it.
+This is sort of how Ubuntu does gnome-app-install, and it seems to work fairly
+well. It is Ubuntu specific, but maybe we could work on that.
+
+>So, we cache all the desktop files, and push this out to the repo metadata?
+
+No. If you did that you make a lot of people very unhappy, as even compressed
+the metadata and icons make up over 80Mb.
+
+>So we're sunk, right?
+
+No. What we can do is create sub-packages for each repo
+(e.g. rpmfusion-appdata) which ships a tarball of icons and a few hundred Kb
+of SQL. Every time the repo maintainer can be bothered (once a month?) the
+new data is generated, and a new package pushed out to the mirrors. If the
+repo maintainer can't be bothered to do that, then none of the new packages will
+show up in the application browser. It's optional.
+
+>This data clogs up my system right?
+
+Well, it's only a few tens of Mb if you want all the icons in most of the sizes,
+if you only choose the 48x48 option then it's much less. When you install the
+new $repo-appdata subpackage, it removes all the stale applications and re-adds
+the latest data. This happens in the vendor spec files as postinst scripts.
+
+>How do I query the data?
+
+It's a simple sqlite database in /var/lib/app-install/desktop.db -- the icons
+are located in /usr/share/app-install/icons/$size/*.png -- there's no installer
+yet using this, but expect a few before two long.
+
+>Great! Another Ubuntu v.s. Red Hat standards war!
+
+No. Roderick Greening and Sebastian Heinlein and myself together drafted
+the specification together, and made it generic enough for all the distros to
+use. It's totally expected that each distro will code a tool to extract the
+metadata, but that's because they are different in some ways.
+
+>So the maintainers have to install everything just to get the desktop files?!
+
+No. You can download and install a package to a prefix without the deps -- we
+don't need the binary to run, we just need the data. in this way we don't need
+to download -data subpackages, only the one with the desktop file in.
+
+>Can I add some more features to the spec?
+
+Yes, in a little while. We want to get version 1 of the spec finished, with it
+being used in a few distros. When we're comfortable this works correctly, we'll
+start working on version 2, and add stuff like popularity metrics and metadata
+about suggesting gnome-power-manager rather than kpowersave if you're running
+GNOME. There are lots of things we need to add for this to work really well.
+
./pk-app-install-create --verbose
./pk-app-install-generate --verbose --repo=fedora --outputdir=./dist/icons --cache=./dist/livna.sqldata
./pk-app-install-add --verbose --repo=fedora --icondir=./dist/icons --source=./dist/livna.sqldata
diff --git a/contrib/app-install/pk-app-install-common.h b/contrib/app-install/pk-app-install-common.h
index 704b8a3..23fe1f5 100644
--- a/contrib/app-install/pk-app-install-common.h
+++ b/contrib/app-install/pk-app-install-common.h
@@ -24,7 +24,5 @@
#define PK_APP_INSTALL_DEFAULT_DATABASE LOCALSTATEDIR "/lib/app-install/desktop.db"
#define PK_APP_INSTALL_DEFAULT_ICONDIR DATADIR "/app-install/icons"
-#define PK_APP_INSTALL_DEFAULT_APPICONDIR DATADIR "/icons/hicolor/"
-#define PK_APP_INSTALL_DEFAULT_APPDIR "/usr/share/applications"
#endif /* __PK_APP_INSTALL_COMMON_H */
diff --git a/contrib/app-install/pk-app-install-generate.c b/contrib/app-install/pk-app-install-generate.c
index 97ac05f..0fb9538 100644
--- a/contrib/app-install/pk-app-install-generate.c
+++ b/contrib/app-install/pk-app-install-generate.c
@@ -31,7 +31,24 @@
#include "egg-debug.h"
static const gchar *icon_sizes[] = { "22x22", "24x24", "32x32", "48x48", "scalable", NULL };
-static PkDesktop *desktop;
+
+typedef struct {
+ gchar *key;
+ gchar *value;
+ gchar *locale;
+} PkDesktopData;
+
+/**
+ * pk_app_install_generate_desktop_data_free:
+ **/
+static void
+pk_app_install_generate_desktop_data_free (PkDesktopData *data)
+{
+ g_free (data->key);
+ g_free (data->value);
+ g_free (data->locale);
+ g_free (data);
+}
/**
* pk_app_install_generate_create_icon_directories:
@@ -45,6 +62,20 @@ pk_app_install_generate_create_icon_directories (const gchar *directory)
gchar *path;
guint i;
+ /* create main directory */
+ ret = g_file_test (directory, G_FILE_TEST_IS_DIR);
+ if (!ret) {
+ file = g_file_new_for_path (directory);
+ ret = g_file_make_directory (file, NULL, &error);
+ g_object_unref (file);
+ if (!ret) {
+ egg_warning ("cannot create %s: %s", path, error->message);
+ g_error_free (error);
+ goto out;
+ }
+ }
+
+ /* make sub directories */
for (i=0; icon_sizes[i] != NULL; i++) {
path = g_build_filename (directory, icon_sizes[i], NULL);
ret = g_file_test (path, G_FILE_TEST_IS_DIR);
@@ -60,56 +91,8 @@ pk_app_install_generate_create_icon_directories (const gchar *directory)
}
g_free (path);
}
- return ret;
-}
-
-/**
- * pk_app_install_generate_get_desktop_files:
- **/
-static GPtrArray *
-pk_app_install_generate_get_desktop_files (const gchar *directory)
-{
- GPtrArray *files = NULL;
- GError *error = NULL;
- const gchar *filename;
- GDir *dir;
-
- dir = g_dir_open (directory, 0, &error);
- if (dir == NULL) {
- egg_warning ("cannot open directory %s: %s", directory, error->message);
- g_error_free (error);
- goto out;
- }
-
- files = g_ptr_array_new ();
- filename = g_dir_read_name (dir);
- while (filename != NULL) {
- if (g_str_has_suffix (filename, ".desktop"))
- g_ptr_array_add (files, g_build_filename (directory, filename, NULL));
- filename = g_dir_read_name (dir);
- }
out:
- g_dir_close (dir);
- return files;
-}
-
-
-typedef struct {
- gchar *key;
- gchar *value;
- gchar *locale;
-} PkDesktopData;
-
-/**
- * pk_app_install_generate_desktop_data_free:
- **/
-static void
-pk_app_install_generate_desktop_data_free (PkDesktopData *data)
-{
- g_free (data->key);
- g_free (data->value);
- g_free (data->locale);
- g_free (data);
+ return ret;
}
/**
@@ -135,9 +118,8 @@ pk_app_install_generate_get_desktop_data (const gchar *filename)
goto out;
}
- data = g_ptr_array_new ();
-
/* split lines and extract data */
+ data = g_ptr_array_new ();
lines = g_strsplit (contents, "\n", -1);
for (i=0; lines[i] != NULL; i++) {
parts = g_strsplit_set (lines[i], "=[]", -1);
@@ -157,6 +139,7 @@ pk_app_install_generate_get_desktop_data (const gchar *filename)
g_strfreev (parts);
}
g_strfreev (lines);
+ g_free (contents);
out:
return data;
}
@@ -214,24 +197,6 @@ pk_app_install_generate_get_locales (GPtrArray *data)
}
/**
- * pk_app_install_generate_get_package_for_file:
- **/
-static gchar *
-pk_app_install_generate_get_package_for_file (const gchar *filename)
-{
- gchar *package;
- GError *error = NULL;
-
- /* get package providing file */
- package = pk_desktop_get_package_for_file (desktop, filename, &error);
- if (package == NULL) {
- egg_warning ("failed to get package for %s: %s", filename, error->message);
- g_error_free (error);
- }
- return package;
-}
-
-/**
* pk_app_install_generate_get_application_id:
**/
static gchar *
@@ -310,14 +275,16 @@ pk_app_install_generate_translations_sql (GPtrArray *data, GPtrArray *locales, c
name = pk_app_install_generate_get_value_for_locale (data, "Name", locale);
comment = pk_app_install_generate_get_value_for_locale (data, "Comment", locale);
- /* append the application data to the sql string */
- escaped = sqlite3_mprintf ("INSERT INTO translations (application_id, application_name, application_summary, locale) "
- "VALUES (%Q, %Q, %Q, %Q);", application_id, name, comment, locale);
- g_string_append_printf (sql, "%s\n", escaped);
+ /* append the application data to the sql string if either not null */
+ if (name != NULL || comment != NULL) {
+ escaped = sqlite3_mprintf ("INSERT INTO translations (application_id, application_name, application_summary, locale) "
+ "VALUES (%Q, %Q, %Q, %Q);", application_id, name, comment, locale);
+ g_string_append_printf (sql, "%s\n", escaped);
- sqlite3_free (escaped);
- g_free (name);
- g_free (comment);
+ sqlite3_free (escaped);
+ g_free (name);
+ g_free (comment);
+ }
}
return g_string_free (sql, FALSE);
@@ -327,7 +294,7 @@ pk_app_install_generate_translations_sql (GPtrArray *data, GPtrArray *locales, c
* pk_app_install_generate_copy_icons:
**/
static gboolean
-pk_app_install_generate_copy_icons (const gchar *directory, const gchar *icon_name)
+pk_app_install_generate_copy_icons (const gchar *root, const gchar *directory, const gchar *icon_name)
{
gboolean ret;
GError *error = NULL;
@@ -339,9 +306,16 @@ pk_app_install_generate_copy_icons (const gchar *directory, const gchar *icon_na
guint i;
/* copy all icon sizes if they exist */
- icon_name_full = g_strdup_printf ("%s.png", icon_name);
for (i=0; icon_sizes[i] != NULL; i++) {
- iconpath = g_build_filename (PK_APP_INSTALL_DEFAULT_APPICONDIR, icon_sizes[i], "apps", icon_name_full, NULL);
+
+ /* get the icon name */
+ if (g_strcmp0 (icon_sizes[i], "scalable") == 0)
+ icon_name_full = g_strdup_printf ("%s.svg", icon_name);
+ else
+ icon_name_full = g_strdup_printf ("%s.png", icon_name);
+
+ /* build the icon path */
+ iconpath = g_build_filename (root, "/usr/share/icons/hicolor", icon_sizes[i], "apps", icon_name_full, NULL);
ret = g_file_test (iconpath, G_FILE_TEST_EXISTS);
if (ret) {
dest = g_build_filename (directory, icon_sizes[i], icon_name_full, NULL);
@@ -360,8 +334,8 @@ pk_app_install_generate_copy_icons (const gchar *directory, const gchar *icon_na
egg_debug ("does not exist: %s, so not copying", iconpath);
}
g_free (iconpath);
+ g_free (icon_name_full);
}
- g_free (icon_name_full);
return TRUE;
}
@@ -374,36 +348,37 @@ main (int argc, char *argv[])
gboolean verbose = FALSE;
GOptionContext *context;
gint retval = 0;
- gchar *cache = NULL;
gchar *repo = NULL;
- gchar *applicationdir = NULL;
- gchar *icondir = NULL;
+ gchar *root = NULL;
+ gchar *desktopfile = NULL;
gchar *outputdir = NULL;
- gboolean ret;
- GError *error = NULL;
- const gchar *filename;
+ gchar *icondir = NULL;
+ gchar *package = NULL;
GString *string = NULL;
- GPtrArray *files = NULL;
- GPtrArray *data;
- guint k;
+ GPtrArray *data = NULL;
+ gchar *sql = NULL;
+ gchar *application_id = NULL;
+ gchar *icon_name = NULL;
+ GPtrArray *locales = NULL;
+ gchar *filename = NULL;
const GOptionEntry options[] = {
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
_("Show extra debugging information"), NULL },
- { "cache", 'c', 0, G_OPTION_ARG_STRING, &cache,
- /* TRANSLATORS: if we are specifing a out-of-tree database */
- _("Main cache file to use (if not specififed, default is used)"), NULL},
- { "applicationdir", 's', 0, G_OPTION_ARG_STRING, &applicationdir,
- /* TRANSLATORS: the applicationdir database, typically used for adding */
+ { "root", 's', 0, G_OPTION_ARG_STRING, &root,
+ /* TRANSLATORS: the root database, typically used for adding */
_("Source cache file to add to the main database"), NULL},
- { "icondir", 'i', 0, G_OPTION_ARG_STRING, &icondir,
+ { "desktopfile", 'i', 0, G_OPTION_ARG_STRING, &desktopfile,
/* TRANSLATORS: the icon directory */
_("Icon directory"), NULL},
- { "outputdir", 'i', 0, G_OPTION_ARG_STRING, &outputdir,
+ { "package", 'n', 0, G_OPTION_ARG_STRING, &package,
+ /* TRANSLATORS: the repo of the software root, e.g. fedora */
+ _("Name of the package"), NULL},
+ { "outputdir", 'o', 0, G_OPTION_ARG_STRING, &outputdir,
/* TRANSLATORS: the output directory */
_("Icon directory"), NULL},
{ "repo", 'n', 0, G_OPTION_ARG_STRING, &repo,
- /* TRANSLATORS: the repo of the software applicationdir, e.g. fedora */
+ /* TRANSLATORS: the repo of the software root, e.g. fedora */
_("Name of the remote repo"), NULL},
{ NULL}
};
@@ -422,139 +397,116 @@ main (int argc, char *argv[])
g_type_init ();
egg_debug_init (verbose);
- desktop = pk_desktop_new ();
- ret = pk_desktop_open_database (desktop, &error);
- if (!ret) {
- egg_warning ("cannot open database: %s", error->message);
- g_error_free (error);
- goto out;
- }
/* use default */
- if (cache == NULL) {
- egg_debug ("cache not specified, using %s", PK_APP_INSTALL_DEFAULT_DATABASE);
- cache = g_strdup (PK_APP_INSTALL_DEFAULT_DATABASE);
- }
/* things we require */
if (repo == NULL) {
- egg_warning ("A repo name is required");
+ g_print ("A repo name is required\n");
retval = 1;
goto out;
}
if (outputdir == NULL) {
- egg_warning ("A icon output directory is required");
+ g_print ("A output directory is required\n");
+ retval = 1;
+ goto out;
+ }
+ if (desktopfile == NULL) {
+ g_print ("A desktop file is required\n");
+ retval = 1;
+ goto out;
+ }
+ if (package == NULL) {
+ g_print ("A package name is required\n");
retval = 1;
goto out;
}
/* use defaults */
- if (applicationdir == NULL) {
- egg_debug ("applicationdir not specified, using %s", PK_APP_INSTALL_DEFAULT_APPDIR);
- applicationdir = g_strdup (PK_APP_INSTALL_DEFAULT_APPDIR);
- }
- if (icondir == NULL) {
- egg_debug ("icondir not specified, using %s", PK_APP_INSTALL_DEFAULT_APPICONDIR);
- icondir = g_strdup (PK_APP_INSTALL_DEFAULT_APPICONDIR);
+ if (root == NULL) {
+ egg_debug ("root not specified, using /");
+ root = g_strdup ("/");
}
/* check directories exist */
- if (!g_file_test (applicationdir, G_FILE_TEST_IS_DIR)) {
- egg_warning ("The applicationdir filename '%s' could not be found", applicationdir);
- retval = 1;
- goto out;
- }
- if (!g_file_test (icondir, G_FILE_TEST_IS_DIR)) {
- egg_warning ("The icondir filename '%s' could not be found", icondir);
+ if (!g_file_test (root, G_FILE_TEST_IS_DIR)) {
+ g_print ("The root filename '%s' could not be found\n", root);
retval = 1;
goto out;
}
if (!g_file_test (outputdir, G_FILE_TEST_IS_DIR)) {
- egg_warning ("The icon output directory '%s' could not be found", outputdir);
+ g_print ("The icon output directory '%s' could not be found\n", outputdir);
retval = 1;
goto out;
}
- /* just dump them */
- egg_warning ("cache=%s, applicationdir=%s, repo=%s, icondir=%s, outputdir=%s", cache, applicationdir, repo, icondir, outputdir);
-
/* generate the sub directories in the outputdir if they dont exist */
- pk_app_install_generate_create_icon_directories (outputdir);
+ icondir = g_build_filename (outputdir, "icons", NULL);
+ pk_app_install_generate_create_icon_directories (icondir);
/* use this to dump the data */
- string = g_string_new ("/* auto generated today */\n");
+ string = g_string_new ("");
- /* get a list of desktop files in applicationdir */
- files = pk_app_install_generate_get_desktop_files (applicationdir);
+ filename = g_build_filename (root, "/usr/share/applications", desktopfile, NULL);
+ egg_debug ("filename: %s", filename);
- for (k=0; k<files->len; k++) {
- gchar *sql;
- gchar *package;
- gchar *application_id;
- gchar *icon_name;
- GPtrArray *locales;
+ /* get app-id */
+ application_id = pk_app_install_generate_get_application_id (filename);
- filename = g_ptr_array_index (files, k);
- egg_debug ("filename: %s", filename);
-
- /* get package name */
- package = pk_app_install_generate_get_package_for_file (filename);
- if (package == NULL)
- continue;
-
- /* get app-id */
- application_id = pk_app_install_generate_get_application_id (filename);
+ /* extract data */
+ data = pk_app_install_generate_get_desktop_data (filename);
+ if (data == NULL) {
+ g_print ("Could not get desktop data from %s\n", filename);
+ retval = 1;
+ goto out;
+ }
- /* extract data */
- data = pk_app_install_generate_get_desktop_data (filename);
+ /* form application SQL */
+ sql = pk_app_install_generate_applications_sql (data, repo, package, application_id);
+ g_string_append_printf (string, "%s", sql);
+ g_free (sql);
- /* form application SQL */
- sql = pk_app_install_generate_applications_sql (data, repo, package, application_id);
- g_string_append_printf (string, "%s", sql);
+ /* get list of locales in this file */
+ locales = pk_app_install_generate_get_locales (data);
+ if (locales == NULL) {
+ g_print ("Could not get locale data from %s\n", filename);
+ retval = 1;
+ goto out;
+ }
- /* get list of locales in this file */
- locales = pk_app_install_generate_get_locales (data);
+ /* form translations SQL */
+ sql = pk_app_install_generate_translations_sql (data, locales, application_id);
+ g_string_append_printf (string, "%s\n", sql);
+ g_free (sql);
- /* form translations SQL */
- sql = pk_app_install_generate_translations_sql (data, locales, application_id);
- g_string_append_printf (string, "%s\n", sql);
+ /* copy icons */
+ icon_name = pk_app_install_generate_get_value_for_locale (data, "Icon", NULL);
+ if (icon_name != NULL && !g_str_has_suffix (icon_name, ".png"))
+ pk_app_install_generate_copy_icons (root, icondir, icon_name);
- /* copy icons */
- icon_name = pk_app_install_generate_get_value_for_locale (data, "Icon", NULL);
- if (icon_name != NULL)
- pk_app_install_generate_copy_icons (outputdir, icon_name);
+ /* print to screen */
+ g_print ("%s", string->str);
- /* free temp data */
+out:
+ if (string != NULL)
+ g_string_free (string, TRUE);
+ if (locales != NULL) {
g_ptr_array_foreach (locales, (GFunc) g_free, NULL);
g_ptr_array_free (locales, TRUE);
+ }
+ if (data != NULL) {
g_ptr_array_foreach (data, (GFunc) pk_app_install_generate_desktop_data_free, NULL);
g_ptr_array_free (data, TRUE);
- g_free (icon_name);
- g_free (sql);
- g_free (package);
- g_free (application_id);
- }
-
- /* save to disk */
- ret = g_file_set_contents (cache, string->str, -1, &error);
- if (!ret) {
- egg_warning ("cannot write data file: %s", error->message);
- g_error_free (error);
- goto out;
}
- egg_debug ("saved to %s", cache);
-
-out:
- if (string != NULL)
- g_string_free (string, TRUE);
- g_ptr_array_foreach (files, (GFunc) g_free, NULL);
- g_ptr_array_free (files, TRUE);
- g_free (cache);
- g_free (repo);
- g_free (applicationdir);
g_free (icondir);
+ g_free (icon_name);
+ g_free (package);
+ g_free (filename);
+ g_free (application_id);
+ g_free (repo);
+ g_free (root);
+ g_free (desktopfile);
g_free (outputdir);
- g_object_unref (desktop);
- return 0;
+ return retval;
}
More information about the PackageKit-commit
mailing list