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

Richard Hughes hughsient at kemper.freedesktop.org
Wed Mar 18 13:05:57 PDT 2009


 RELEASE                                          |   16 
 backends/conary/XMLCache.py                      |    2 
 backends/conary/conaryBackend.py                 |   28 
 backends/conary/conaryCallback.py                |   39 
 backends/conary/pk-backend-conary.c              |    4 
 backends/dummy/pk-backend-dummy.c                |   11 
 backends/poldek/pk-backend-poldek.c              |   25 
 backends/yum/Makefile.am                         |    1 
 backends/yum/yum-comps-groups.conf               |   21 
 backends/yum/yumBackend.py                       |   12 
 backends/yum/yumComps.py                         |  211 ----
 configure.ac                                     |    2 
 contrib/command-not-found/pk-command-not-found.c |   22 
 data/tests/pk-spawn-test.sh                      |    2 
 etc/PackageKit.conf.in                           |   10 
 lib/packagekit-glib/egg-debug.c                  |    4 
 lib/packagekit-glib/egg-test.c                   |   12 
 lib/packagekit-glib/pk-control.c                 |    2 
 lib/packagekit-qt/src/CMakeLists.txt             |    2 
 lib/packagekit-qt/src/transaction.h              |   11 
 po/LINGUAS                                       |    2 
 po/pt.po                                         |  996 ++++++++++++++++++++++
 po/ro.po                                         | 1030 +++++++++++++++++++++++
 src/Makefile.am                                  |    2 
 src/pk-backend-spawn.c                           |    7 
 src/pk-backend.c                                 |    8 
 src/pk-engine.c                                  |    3 
 src/pk-spawn.c                                   |    8 
 src/pk-transaction-db.c                          |  356 +++++--
 src/pk-transaction-db.h                          |    2 
 src/pk-transaction-id.c                          |  178 ---
 src/pk-transaction-id.h                          |   37 
 src/pk-transaction-list.c                        |   12 
 src/pk-transaction.c                             |    3 
 34 files changed, 2517 insertions(+), 564 deletions(-)

New commits:
commit bfe6e1cbf40314c7a9e61ee4c2d8d9a1d12a3692
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 18 19:24:35 2009 +0000

    trivial: use bold for the dates, not italic

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index c88fd67..90f6c19 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2332,7 +2332,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             if len(changelog) == 0:
                 changes = pkg.returnChangelog()
                 for change in changes:
-                    changelog += _format_str('*' + time.ctime(change[0]) + '* ' + change[1] + '\n' + _to_unicode(change[2].replace("\t", " ")) + '\n\n')
+                    changelog += _format_str('**' + time.ctime(change[0]) + '** ' + change[1] + '\n' + _to_unicode(change[2].replace("\t", " ")) + '\n\n')
 
             cve_url = _format_list(urls['cve'])
             bz_url = _format_list(urls['bugzilla'])
commit 82222792a3844a137fc1728a0ba1717933033a87
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 18 18:49:31 2009 +0000

    yum: return the ChangeLog data for yum updates if it is available

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 610b374..c88fd67 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2327,6 +2327,13 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             update = self._get_updated(pkg)
             obsolete = self._get_obsoleted(pkg.name)
             desc, urls, reboot, changelog, state, issued, updated = self._get_update_extras(pkg)
+
+            # extract the changelog for the local package
+            if len(changelog) == 0:
+                changes = pkg.returnChangelog()
+                for change in changes:
+                    changelog += _format_str('*' + time.ctime(change[0]) + '* ' + change[1] + '\n' + _to_unicode(change[2].replace("\t", " ")) + '\n\n')
+
             cve_url = _format_list(urls['cve'])
             bz_url = _format_list(urls['bugzilla'])
             vendor_url = _format_list(urls['vendor'])
commit 52636fc2e78366e2875a24c95927a2ccb750e3e4
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 18 18:48:23 2009 +0000

    trivial: make the dummy backend return files for all the packages

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index c591ef8..408c04e 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -242,6 +242,8 @@ backend_get_files (PkBackend *backend, gchar **package_ids)
 			pk_backend_files (backend, package_id, "/usr/share/man/man1;/usr/share/man/man1/gnome-power-manager.1.gz");
 		else if (egg_strequal (package_id, "gtkhtml2;2.19.1-4.fc8;i386;fedora"))
 			pk_backend_files (backend, package_id, "/usr/share/man/man1;/usr/bin/ck-xinit-session");
+		else
+			pk_backend_files (backend, package_id, "/usr/share/gnome-power-manager;/usr/bin/ck-xinit-session");
 	}
 	pk_backend_finished (backend);
 }
commit 1d40e4c2dffd7beff8247cafccc93844d208856b
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 18 18:47:48 2009 +0000

    trivial: add ro to LINGUAS to it gets included in the stats

diff --git a/po/LINGUAS b/po/LINGUAS
index 9ac6f0f..ff7ade2 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -21,6 +21,7 @@ pl
 pt
 pt_BR
 ru
+ro
 sk
 sr at latin
 sr
commit 9dbdd1db5ae2f713ad1f988df79220db1021b761
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 18 18:47:03 2009 +0000

    bugfix: escape the ';' in the UpdateDetail:ChangeLog signal so we can send more than one line

diff --git a/src/pk-backend-spawn.c b/src/pk-backend-spawn.c
index a5dba92..4383a54 100644
--- a/src/pk-backend-spawn.c
+++ b/src/pk-backend-spawn.c
@@ -214,15 +214,14 @@ pk_backend_spawn_parse_stdout (PkBackendSpawn *backend_spawn, const gchar *line)
 			goto out;
 		}
 		update_state_enum = pk_update_state_enum_from_text (sections[10]);
-		text = g_strdup (sections[8]);
 		/* convert ; to \n as we can't emit them on stdout */
-		g_strdelimit (text, ";", '\n');
+		g_strdelimit (sections[8], ";", '\n');
+		g_strdelimit (sections[9], ";", '\n');
 		pk_backend_update_detail (backend_spawn->priv->backend, sections[1],
 					  sections[2], sections[3], sections[4],
-					  sections[5], sections[6], restart, text,
+					  sections[5], sections[6], restart, sections[8],
 					  sections[9], update_state_enum,
 					  sections[11], sections[12]);
-		g_free (text);
 	} else if (egg_strequal (command, "percentage")) {
 		if (size != 2) {
 			egg_warning ("invalid command'%s', size %i", command, size);
commit 0ca0efdbde30459e587ef662376208d257864f65
Merge: 9d6209b... 742f099...
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 18 17:35:57 2009 +0000

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

commit 742f099b57033a61ae1c6eb3d2388a663679c0ba
Author: Rui Manuel da Costa Gouveia <rui.gouveia at globaltek.pt>
Date:   Wed Mar 18 11:18:59 2009 +0000

    Portuguese translation done! But stats still not updating... shows 0%
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/pt.po b/po/pt.po
index 338053c..637b4ec 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -286,12 +286,12 @@ msgstr "Os seguintes pacotes precisam de ser removidos:"
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:895
 msgid "Proceed removing additional packages?"
-msgstr ""
+msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: We did not remove any packages
 #: ../client/pk-console.c:900
 msgid "The package removal was canceled!"
-msgstr ""
+msgstr "A remoção dos pacotes foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:941
@@ -303,7 +303,7 @@ msgstr "Esta ferramenta não conseguiu transferir o pacote %s pois não o conseg
 #: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not download the packages: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu transferir os pacotes: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:999
@@ -317,21 +317,21 @@ msgstr "Esta ferramenta não conseguiu actualizar %s: %s"
 #: ../client/pk-console.c:1038
 #, c-format
 msgid "This tool could not get the requirements for %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu obter os requisitos para %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
 #, c-format
 msgid "This tool could not get the dependencies for %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu obter as dependências para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:1090
 #: ../client/pk-console.c:1098
 #, c-format
 msgid "This tool could not get package details for %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu obter os detalhes para %s: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:1120
@@ -343,7 +343,7 @@ msgstr "Esta ferramenta não conseguiu encontrar os ficheiros para %s: %s"
 #: ../client/pk-console.c:1128
 #, c-format
 msgid "This tool could not get the file list for %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu obter a lista de ficheiros para %s: %s"
 
 #. TRANSLATORS: There was an error getting the list of packages. The filename follows
 #: ../client/pk-console.c:1150
@@ -364,7 +364,7 @@ msgstr "A obter lista de pacotes"
 #: ../client/pk-console.c:1292
 #, c-format
 msgid "This tool could not get package list: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu obter a lista de pacotes: %s"
 
 #. TRANSLATORS: There was an error saving the list
 #: ../client/pk-console.c:1172
@@ -483,12 +483,12 @@ msgstr "A licença foi recusada."
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1610
 msgid "The daemon crashed mid-transaction!"
-msgstr ""
+msgstr "O daemon morreu a meio de uma transacção!"
 
 #. TRANSLATORS: This is the header to the --help menu
 #: ../client/pk-console.c:1663
 msgid "PackageKit Console Interface"
-msgstr ""
+msgstr "Consola do PackaheKit"
 
 #. these are commands we can use with pkcon
 #: ../client/pk-console.c:1665
@@ -519,17 +519,17 @@ msgstr "Configurar o filtro, exemplo, instalado"
 #. TRANSLATORS: command line argument, work asynchronously
 #: ../client/pk-console.c:1766
 msgid "Exit without waiting for actions to complete"
-msgstr ""
+msgstr "Sair sem esperar que as acções completem"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
 #: ../client/pk-console.c:1793
 msgid "This tool could not connect to system DBUS."
-msgstr ""
+msgstr "Esta ferramenta não conseguiu ligar ao sistema DBUS."
 
 #. TRANSLATORS: The user specified an incorrect filter
 #: ../client/pk-console.c:1880
 msgid "The filter specified was invalid"
-msgstr ""
+msgstr "O filtro especificado era inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
 #: ../client/pk-console.c:1898
@@ -567,7 +567,7 @@ msgstr "É necessário um nome de pacote para remover"
 #. 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 ""
+msgstr "São necessários uma directoria de destino assim como os nomes dos pacotes a transferir"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
 #: ../client/pk-console.c:1969
@@ -577,17 +577,17 @@ msgstr "Directório não encontrado"
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:1976
 msgid "A licence identifier (eula-id) is required"
-msgstr ""
+msgstr "É necessário um identificador de licença (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:1985
 msgid "A transaction identifier (tid) is required"
-msgstr ""
+msgstr "É necessário um identificador de transacção (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
 #: ../client/pk-console.c:2001
 msgid "A package name to resolve is required"
-msgstr ""
+msgstr "É necessário indicar um nome de pacote"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
 #: ../client/pk-console.c:2009
@@ -598,22 +598,22 @@ msgstr "É obrigatório um nome de repositório"
 #. TRANSLATORS: The user didn't provide any data
 #: ../client/pk-console.c:2025
 msgid "A repo name, parameter and value are required"
-msgstr ""
+msgstr "É necessário indicar um repositório, parâmetro e valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
 #: ../client/pk-console.c:2038
 msgid "An action, e.g. 'update-system' is required"
-msgstr ""
+msgstr "É necessária uma acção, por exemplo 'update-system'"
 
 #. TRANSLATORS: The user specified an invalid action
 #: ../client/pk-console.c:2044
 msgid "A correct role is required"
-msgstr ""
+msgstr "É necessária uma função correcta"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
 #: ../client/pk-console.c:2050
 msgid "Failed to get the time since this action was last completed"
-msgstr ""
+msgstr "Não foi possível obter a hora da última vez que esta acção foi concluída"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
@@ -629,18 +629,18 @@ msgstr "É obrigatório um nome de pacote"
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
 #: ../client/pk-console.c:2086
 msgid "A package provide string is required"
-msgstr ""
+msgstr "É necessário especificar a string que define o que o pacote disponibiliza"
 
 #. TRANSLATORS: The user didn't specify a filename to create as a list
 #: ../client/pk-console.c:2110
 msgid "A list file name to create is required"
-msgstr ""
+msgstr "É necessário indicar o nome do ficheiro a criar com a lista"
 
 #. TRANSLATORS: The user didn't specify a filename to open as a list
 #: ../client/pk-console.c:2119
 #: ../client/pk-console.c:2128
 msgid "A list file to open is required"
-msgstr ""
+msgstr "É necessária uma lista de ficheiros"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
 #: ../client/pk-console.c:2181
@@ -651,7 +651,7 @@ msgstr "A opção '%s' não é suportada"
 #. TRANSLATORS: User does not have permission to do this
 #: ../client/pk-console.c:2194
 msgid "Incorrect privileges for this operation"
-msgstr ""
+msgstr "Privilégios incorrectos para esta operação"
 
 #. TRANSLATORS: Generic failure of what they asked to do
 #: ../client/pk-console.c:2197
@@ -676,59 +676,59 @@ msgstr "A transferir dependências"
 #. 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 ""
+msgstr "Indique o nome do ficheiro para a lista de dependências 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 ""
+msgstr "O ficheiro ou directório de destino (se omitido, é utilizado o directório actual)"
 
 #. 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 ""
+msgstr "O pacote para colocar no \"service pack\""
 
 #. TRANSLATORS: put all pending updates in the pack
 #: ../client/pk-generate-pack.c:197
 msgid "Put all updates available in the service pack"
-msgstr ""
+msgstr "Colocar todas as actualizações disponíveis no \"service pack\""
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:225
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "Nenhuma das opções, --package ou --updates, foi seleccionada."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:233
 msgid "Both options selected."
-msgstr ""
+msgstr "Seleccionou ambas as opções"
 
 #. 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 ""
+msgstr "É necessário um directório de destino ou nome de ficheiro"
 
 #. 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 ""
+msgstr "O gestor de pacotes não pode realizar este tipo de operação."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:285
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
+msgstr "Se especificar um ficheiro, o nome do \"service pack\" tem de terminar com"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:301
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
+msgstr "Um \"service pack\" com esse nome já existe. Deseja substituí-lo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:304
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "O \"service pack\" não foi substituído."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
 #: ../client/pk-generate-pack.c:317
@@ -738,7 +738,7 @@ msgstr "Criação da directoria falhou:"
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:327
 msgid "Failed to open package list."
-msgstr ""
+msgstr "Impossível abrir a lista de pacotes"
 
 #. TRANSLATORS: The package name is being matched up to available packages
 #: ../client/pk-generate-pack.c:338
@@ -754,13 +754,13 @@ msgstr "Não foi possível encontrar o pacote '%s': %s"
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:359
 msgid "Creating service pack..."
-msgstr ""
+msgstr "A criar o \"service pack\"..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:366
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "\"Service pack\" criado '%s'"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:371
@@ -781,7 +781,7 @@ msgstr "O pacote não foi encontrado"
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:130
 msgid "More than one package matches:"
-msgstr ""
+msgstr "Mais do que um pacote corresponde:"
 
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:137
@@ -844,17 +844,17 @@ msgstr "O pacote que fornece este ficheiro é o:"
 #: ../contrib/command-not-found/pk-command-not-found.c:612
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
+msgstr "Instalar pacote '%s' para disponibilizar comando '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
 #: ../contrib/command-not-found/pk-command-not-found.c:633
 msgid "Packages providing this file are:"
-msgstr ""
+msgstr "Os pacotes que disponibilizam este ficheiro são:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
 #: ../contrib/command-not-found/pk-command-not-found.c:642
 msgid "Suitable packages are:"
-msgstr ""
+msgstr "Pacotes adequados são:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
@@ -931,7 +931,7 @@ msgstr "PackageKit Service Pack"
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
-msgstr ""
+msgstr "Arranque falhou devido à politica de segurança nesta máquina."
 
 #. TRANSLATORS: only two ways this can fail...
 #: ../src/pk-main.c:89
@@ -941,27 +941,27 @@ msgstr "Isto pode acontecer por duas razões:"
 #. 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 ""
+msgstr "O executável não está a ser executado pelo utilizador correcto (usualmente, o 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 ""
+msgstr "O ficheiro org.freedesktop.PackageKit.conf não está instalado no directório do sistema:"
 
 #. 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 ""
+msgstr "Plataforma de pacotes a utilizar, i.e., yum, apt"
 
 #. TRANSLATORS: if we should run in the background
 #: ../src/pk-main.c:196
 msgid "Daemonize and detach from the terminal"
-msgstr ""
+msgstr "Criar o processo como daemon e desligar da consola"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
 #: ../src/pk-main.c:202
 msgid "Disable the idle timer"
-msgstr ""
+msgstr "Desactivar o contador do tempo inactivo"
 
 #. TRANSLATORS: show version
 #: ../src/pk-main.c:205
@@ -976,7 +976,7 @@ msgstr "Sair depois de uma pequena pausa"
 #. TRANSLATORS: exit straight away, used for automatic profiling
 #: ../src/pk-main.c:211
 msgid "Exit after the engine has loaded"
-msgstr ""
+msgstr "Terminar depois do \"motor\" ter carregado"
 
 #. TRANSLATORS: describing the service that is running
 #: ../src/pk-main.c:226
commit d183acd467cdab1cb840881f787b51630354b415
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Tue Mar 17 19:34:09 2009 -0600

    conary: trivial add Metadata Url

diff --git a/backends/conary/conaryBackend.py b/backends/conary/conaryBackend.py
index 2b92fc9..d5d6a9a 100755
--- a/backends/conary/conaryBackend.py
+++ b/backends/conary/conaryBackend.py
@@ -464,6 +464,7 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
     def refresh_cache(self):
         #log.debug("refresh-cache command ")
     #    self.percentage()
+
         self.status(STATUS_REFRESH_CACHE)
         cache = Cache()
         cache.refresh()
@@ -674,8 +675,10 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
                 longDesc = metadata["longDesc"] 
             else:
                 longDesc = ""
-
-            url = "http://www.foresightlinux.org/packages/%s.html" % name
+            if "url" in metadata:
+                url = metadata["url"]
+            else:
+                url = "http://www.foresightlinux.org/packages/%s.html" % name
 
             categories  = ""
             if metadata.has_key("category"):
commit 96fd3be166101d22ce77ca9b0a6a695239223041
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Tue Mar 17 18:14:56 2009 -0600

    conary: fix updateSystem

diff --git a/backends/conary/XMLCache.py b/backends/conary/XMLCache.py
index db85f6f..cb62e4e 100644
--- a/backends/conary/XMLCache.py
+++ b/backends/conary/XMLCache.py
@@ -204,11 +204,13 @@ class XMLCache:
 
     def checkCachedUpdateJob(self, applyList):
         jobPath = self._getJobCachePath(applyList)
+        log.info("CheckjobPath %s" % jobPath)
         if os.path.exists(jobPath):
             return jobPath
     
     def cacheUpdateJob(self, applyList, updJob):
         jobPath = self._getJobCachePath(applyList)
+        log.info("jobPath %s" % jobPath)
         if os.path.exists(jobPath):
             util.rmtree(jobPath)
         os.mkdir(jobPath)
diff --git a/backends/conary/conaryBackend.py b/backends/conary/conaryBackend.py
index 162f762..2b92fc9 100755
--- a/backends/conary/conaryBackend.py
+++ b/backends/conary/conaryBackend.py
@@ -225,7 +225,7 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
             except IOError, err:
                 updJob = None
         else:
-            updJob = self._get_update(applyList, cache=False)
+            updJob,suggMap = self._get_update(applyList, cache=False)
         self.allow_cancel(False)
         try:
             restartDir = self.client.applyUpdateJob(updJob)
@@ -449,7 +449,7 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
         self.status(STATUS_UPDATE)
         self.client.setUpdateCallback( UpdateSystemCallback(self, self.cfg) )
         updateItems = self.client.fullUpdateItemList()
-        pprint(updateItems)
+        [ log.info(i) for i,ver,flav in updateItems]
         applyList = [ (x[0], (None, None), x[1:], True) for x in updateItems ]
 
         log.info(">>>>>>>>>> get update >>>>>>>>>>>>")
diff --git a/backends/conary/conaryCallback.py b/backends/conary/conaryCallback.py
index abecd4d..3010d78 100644
--- a/backends/conary/conaryCallback.py
+++ b/backends/conary/conaryCallback.py
@@ -36,7 +36,7 @@ class UpdateSystemCallback(callbacks.UpdateCallback):
         self.smallUpdate = False
         self.error = []
         self.progress = PackagekitProgress()
-        self.progress.set_steps([ 50 ]  )
+        self.progress.set_steps([ 30,60 ]  )
         self.disablepercent = False
         self.dostep = True
     #1
@@ -44,24 +44,25 @@ class UpdateSystemCallback(callbacks.UpdateCallback):
     def requestingChangeSet(self):
         log.info("Callback UpdateSystem........ STATUS_REQUEST changeset ")
         self.backend.status(STATUS_REQUEST)
-        self.backend.percentage(self.progress.percent)
-        log.info(self.progress.percent)
-        if not self.disablepercent:
-            self.progress.step()
+#        self.backend.percentage(self.progress.percent)
+ #       log.info(self.progress.percent)
     #2
     def downloadingChangeSet(self, got, need):
+        self.backend.status(STATUS_DOWNLOAD)
         log.info("Callback UpdateSystem........ STATUS_DOWNLOAD  Changeset %.2f percent %.2f/%.2f Mbytes" % ( got*100/float(need), got/MEGA,need/MEGA) )
-        if not self.disablepercent:
-            self.progress.set_subpercent( got*100 / float(need) )
+        self.progress.set_subpercent( got*100 / float(need) )
         self.backend.percentage( self.progress.percent )
         log.info( "%s percent" % self.progress.percent)
+        if got == need:
+            log.info("Do a step ========0")
+            self.progress.step()
 
     #4
     def resolvingDependencies(self):
         log.info("Callback UpdateSystem........ STATUS_DEP_RESOLVE ")
         self.backend.percentage(self.progress.percent)
         self.backend.status(STATUS_DEP_RESOLVE)
-        self.progress.step()
+
     #5  >> request> download
     def setChangesetHunk(self, num, total):
         log.info("callback. .......... set Changeset HUnk %s/%s" % (num, total ) )
@@ -69,6 +70,7 @@ class UpdateSystemCallback(callbacks.UpdateCallback):
             p = num*100/float(total)
         else:
             p = 0
+        log.info("Do a supercent ========sub")
         self.progress.set_subpercent(p)
         self.disablepercent = True
         self.backend.percentage(self.progress.percent)
@@ -79,13 +81,13 @@ class UpdateSystemCallback(callbacks.UpdateCallback):
     def setUpdateHunk(self, hunk, hunkCount):
         log.info("callback. .......... set update HUnk %s/%s" % ( hunk, hunkCount))
         if self.dostep:
-            self.progress.step()
             self.disablepercent = True
             self.dostep = False
 
 
         if hunk < hunkCount:
             p = hunk*100/float(hunkCount)
+            log.info("Do a supercent ========sub")
             self.progress.set_subpercent( p )
         else:
             self.smallUpdate = True
commit b83de9ba74c0a20815d99563f95f3edc050c8a11
Merge: 8038f7d... e152009...
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Tue Mar 17 17:01:48 2009 -0600

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

commit e152009fceeef184d033c4aaddb7922fcea26578
Author: Alexandru Szasz <alexxed at gmail.com>
Date:   Tue Mar 17 20:39:06 2009 +0000

    Started translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..590e307
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,1030 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Fedora 10\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-25 01:44+0000\n"
+"PO-Revision-Date: 2009-03-17 22:36+0200\n"
+"Last-Translator: alexxed <alexxed at gmail.com>\n"
+"Language-Team: Romanian <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms:  nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2;\n"
+"X-Generator: Narro 0.9.4 on http://tradu.softwareliber.ro\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:230
+msgid "Transaction"
+msgstr "Tranzacție"
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:232
+msgid "System time"
+msgstr "Ora sistemului"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:234
+msgid "Succeeded"
+msgstr "Reușit"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:234 ../client/pk-console.c:401
+msgid "True"
+msgstr "Adevărat"
+
+#: ../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 "Durată"
+
+#: ../client/pk-console.c:241
+msgid "(seconds)"
+msgstr "(secunde)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#: ../client/pk-console.c:245
+msgid "Command line"
+msgstr "Linia de comandă"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:247
+msgid "User ID"
+msgstr "ID utilizator"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:254
+msgid "Username"
+msgstr "Nume de utilizator"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:258
+msgid "Real name"
+msgstr "Nume real"
+
+#: ../client/pk-console.c:266
+msgid "Affected packages:"
+msgstr "Pachete afectate:"
+
+#: ../client/pk-console.c:268
+msgid "Affected packages: None"
+msgstr "Pachete afectate: niciunul"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:293
+msgid "Distribution"
+msgstr "Distribuție"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../client/pk-console.c:295
+msgid "Type"
+msgstr "Tip"
+
+#. 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 "Sumar"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:309
+msgid "Category"
+msgstr "Categorie"
+
+#. 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 "Părinte"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:317
+msgid "Name"
+msgstr "Nume"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:323
+msgid "Icon"
+msgstr "Iconiță"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:338
+msgid "Details about the update:"
+msgstr "Detalii despre actualizare:"
+
+#. TRANSLATORS: details about the update, package name and version
+#: ../client/pk-console.c:340
+msgid "Package"
+msgstr "Pachet"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:343
+msgid "Updates"
+msgstr "Actualizări"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:347
+msgid "Obsoletes"
+msgstr "Înlocuiește"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:351
+msgid "Vendor"
+msgstr "Vânzător"
+
+#. 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 "Repornește"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:367
+msgid "Update text"
+msgstr "Textul actualizării"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:371
+msgid "Changes"
+msgstr "Schimbări"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:375
+msgid "State"
+msgstr "Stare"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:380
+msgid "Issued"
+msgstr "Emis"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:385
+msgid "Updated"
+msgstr "Actualizat"
+
+#: ../client/pk-console.c:472 ../client/pk-console.c:474
+msgid "Percentage"
+msgstr "Procentaj"
+
+#: ../client/pk-console.c:474
+msgid "Unknown"
+msgstr "Necunoscut"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:525
+msgid "System restart required by:"
+msgstr "Repornirea sistemului este cerută de:"
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:528
+msgid "Session restart required:"
+msgstr "Este necesară repornirea sesiunii:"
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:531
+msgid "Application restart required by:"
+msgstr "Repornirea aplicației este cerută de:"
+
+#. TRANSLATORS: a package needs to restart they system
+#: ../client/pk-console.c:568
+msgid "Please restart the computer to complete the update."
+msgstr "Vă rugăm să reporniți calculatorul pentru a completa actualizarea."
+
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:571
+msgid "Please logout and login to complete the update."
+msgstr ""
+"Vă rugăm să ieșiți din cont și să vă autentificați din nou pentru a completa "
+"actualizarea."
+
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:574
+msgid "Please restart the application as it is being used."
+msgstr "Vă rugăm să reporniți aplicația deoarece este folosită."
+
+#. TRANSLATORS: The package is already installed on the system
+#: ../client/pk-console.c:687
+#, c-format
+msgid "The package %s is already installed"
+msgstr "Pachetul %s este deja instalat"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:695
+#, c-format
+msgid "The package %s could not be installed: %s"
+msgstr "Pachetul %s nu a putut fi instalat: %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:62 ../client/pk-tools-common.c:81
+#: ../client/pk-tools-common.c:89
+#, c-format
+msgid "Internal error: %s"
+msgstr "Eroare internă: %s"
+
+#. TRANSLATORS: There was an error installing the packages. The detailed error follows
+#: ../client/pk-console.c:728 ../client/pk-console.c:1356
+#, c-format
+msgid "This tool could not install the packages: %s"
+msgstr "Această unealtă nu poate instala pachetele: %s"
+
+#. TRANSLATORS: There was an error installing the files. The detailed error follows
+#: ../client/pk-console.c:755
+#, c-format
+msgid "This tool could not install the files: %s"
+msgstr "Această unealtă nu a putut instala fișierele: %s"
+
+#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
+#: ../client/pk-console.c:811
+#, c-format
+msgid "This tool could not remove %s: %s"
+msgstr "Această unealtă nu a putut elimina %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
+#, c-format
+msgid "This tool could not remove the packages: %s"
+msgstr "Această unealtă nu a putut elimina pachetele: %s"
+
+#. TRANSLATORS: When removing, we might have to remove other dependencies
+#: ../client/pk-console.c:884
+msgid "The following packages have to be removed:"
+msgstr "Următoarele pachete trebuie eliminate:"
+
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:891
+msgid "Proceed removing additional packages?"
+msgstr "Continuați cu eliminarea pachetelor adiționale?"
+
+#. TRANSLATORS: We did not remove any packages
+#: ../client/pk-console.c:896
+msgid "The package removal was canceled!"
+msgstr "Eliminarea pachetelor a fost anulată!"
+
+#. TRANSLATORS: The package name was not found in any software sources
+#: ../client/pk-console.c:937
+#, c-format
+msgid "This tool could not download the package %s as it could not be found"
+msgstr ""
+"Această unealtă nu a putut descărca pachetul %s pentru că nu a putut fi găsit"
+
+#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
+#: ../client/pk-console.c:968
+#, c-format
+msgid "This tool could not download the packages: %s"
+msgstr "Această unealtă nu a putut descărca pachetele: %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
+#, c-format
+msgid "This tool could not update %s: %s"
+msgstr "Această unealtă nu a putut actualiza %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
+#, c-format
+msgid "This tool could not get the requirements for %s: %s"
+msgstr "Această unealtă nu a putut obține cerințele pentru %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
+#, c-format
+msgid "This tool could not get the dependencies for %s: %s"
+msgstr "Această unealtă nu a putut obține dependențele pentru %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
+#, c-format
+msgid "This tool could not get package details for %s: %s"
+msgstr "Această unealtă nu a putut obține detaliile pachetului %s: %s"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1116
+#, c-format
+msgid "This tool could not find the files for %s: %s"
+msgstr "Această unealtă nu a putut găsi fișierele pentru %s: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1124
+#, c-format
+msgid "This tool could not get the file list for %s: %s"
+msgstr "Această unealtă nu a putut obține lista fișierelor pentru %s: %s"
+
+#. TRANSLATORS: There was an error getting the list of packages. The filename follows
+#: ../client/pk-console.c:1146
+#, c-format
+msgid "File already exists: %s"
+msgstr "Fișierul există deja: %s"
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1151 ../client/pk-console.c:1207
+#: ../client/pk-console.c:1282
+msgid "Getting package list"
+msgstr "Se obține lista pachetelor"
+
+#. 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
+#, c-format
+msgid "This tool could not get package list: %s"
+msgstr "Această unealtă nu a putut obține lista pachetelor: %s"
+
+#. TRANSLATORS: There was an error saving the list
+#: ../client/pk-console.c:1168
+msgid "Failed to save to disk"
+msgstr "Eșec la salvarea pe disc"
+
+#. TRANSLATORS: There was an error getting the list. The filename follows
+#: ../client/pk-console.c:1202 ../client/pk-console.c:1277
+#, c-format
+msgid "File does not exist: %s"
+msgstr "Fișierul nu există: %s"
+
+#. TRANSLATORS: header to a list of packages newly added
+#: ../client/pk-console.c:1234
+msgid "Packages to add"
+msgstr "Pachete de adăugat"
+
+#. TRANSLATORS: header to a list of packages removed
+#: ../client/pk-console.c:1242
+msgid "Packages to remove"
+msgstr "Pachete de eliminat"
+
+#. TRANSLATORS: We didn't find any differences
+#: ../client/pk-console.c:1310
+msgid "No new packages need to be installed"
+msgstr "Nu e nevoie să fie instalat niciun pachet nou"
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1316
+msgid "To install"
+msgstr "De instalat"
+
+#. TRANSLATORS: searching takes some time....
+#: ../client/pk-console.c:1328
+msgid "Searching for package: "
+msgstr "Se caută pachetul: "
+
+#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
+#: ../client/pk-console.c:1332
+msgid "not found."
+msgstr "negăsit."
+
+#. TRANSLATORS: We didn't find any packages to install
+#: ../client/pk-console.c:1343
+msgid "No packages can be found to install"
+msgstr "Nu s-a găsit niciun pachet pentru a fi instalat"
+
+#. TRANSLATORS: installing new packages from package list
+#: ../client/pk-console.c:1349
+msgid "Installing packages"
+msgstr "Instalare pachete"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1385
+#, c-format
+msgid "This tool could not find the update details for %s: %s"
+msgstr "Această unealtă nu poate găsi detaliile actualizării pentru %s: %s"
+
+#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
+#: ../client/pk-console.c:1393
+#, c-format
+msgid "This tool could not get the update details for %s: %s"
+msgstr "Această unealtă nu a putut obține detaliile actualizării pentru %s: %s"
+
+#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
+#: ../client/pk-console.c:1439
+msgid "Error:"
+msgstr "Eroare:"
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:1453
+msgid "Package description"
+msgstr "Descriere pachet"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:1487
+msgid "Package files"
+msgstr "Fișierele din pachet"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:1495
+msgid "No files"
+msgstr "Niciun fișier"
+
+#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
+#: ../client/pk-console.c:1518
+msgid "Repository signature required"
+msgstr "E necesară semnătura depozitului"
+
+#. TRANSLATORS: This a prompt asking the user to import the security key
+#: ../client/pk-console.c:1528
+msgid "Do you accept this signature?"
+msgstr "Acceptați această semnătură?"
+
+#. TRANSLATORS: This is where the user declined the security key
+#: ../client/pk-console.c:1532
+msgid "The signature was not accepted."
+msgstr "Semnătura nu a fost acceptată."
+
+#. TRANSLATORS: This a request for a EULA
+#: ../client/pk-console.c:1566
+msgid "End user license agreement required"
+msgstr "E nevoie de acordul de licențiere cu utilizatorul"
+
+#. TRANSLATORS: This a prompt asking the user to agree to the license
+#: ../client/pk-console.c:1573
+msgid "Do you agree to this license?"
+msgstr "Sunteți de acord cu această licență?"
+
+#. TRANSLATORS: This is where the user declined the license
+#: ../client/pk-console.c:1577
+msgid "The license was refused."
+msgstr "Licența a fost refuzată."
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
+#: ../client/pk-console.c:1606
+msgid "The daemon crashed mid-transaction!"
+msgstr "Demonul a eșuat în mijlocul tranzacției!"
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1659
+msgid "PackageKit Console Interface"
+msgstr "Interfață PackageKit pentru consolă"
+
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1661
+msgid "Subcommands:"
+msgstr "Subcomenzi:"
+
+#. 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 "Afișează informații suplimentare pentru depanare"
+
+#. 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 "Afișează versiunea programului și ieși"
+
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1759
+msgid "Set the filter, e.g. installed"
+msgstr "Definește filtrul, ex. instalat"
+
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1762
+msgid "Exit without waiting for actions to complete"
+msgstr "Ieși fără a aștepta finalizarea acțiunilor"
+
+#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
+#: ../client/pk-console.c:1789
+msgid "This tool could not connect to system DBUS."
+msgstr "Această unealtă nu se poate conecta la magistrala sistemului (DBUS)."
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1876
+msgid "The filter specified was invalid"
+msgstr "Filtrul specificat a fost nevalid"
+
+#. 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 "E necesar un tip de căutare, de ex: nume"
+
+#. 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 "E necesar un termen de căutare"
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1930
+msgid "Invalid search type"
+msgstr "Tip de căutare invalid"
+
+#. 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 "E necesar un nume de pachet sau de fișier pentru a-l instala"
+
+#. 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 ""
+
+#. 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 "E necesar un nume de pachet pentru a-l elimina"
+
+#. 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 ""
+"Sunt necesare un director de destinație și numele pachetelor de descărcat"
+
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:1965
+msgid "Directory not found"
+msgstr "Director negăsit"
+
+#. 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 "E necesar un identificator de licență (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 "E necesar un identificator de tranzacție (tid)"
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:1997
+msgid "A package name to resolve is required"
+msgstr ""
+
+#. 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 ""
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2021
+msgid "A repo name, parameter and value are required"
+msgstr ""
+
+#. 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 ""
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2040
+msgid "A correct role is required"
+msgstr ""
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2046
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
+
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c: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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command line
+#: ../client/pk-console.c:2177
+#, c-format
+msgid "Option '%s' is not supported"
+msgstr ""
+
+#. TRANSLATORS: User does not have permission to do this
+#: ../client/pk-console.c:2190
+msgid "Incorrect privileges for this operation"
+msgstr "Drepturi insuficiente pentru această operație"
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2193
+msgid "Command failed"
+msgstr "Comandă eșuată"
+
+#. TRANSLATORS: This is the state of the transaction
+#: ../client/pk-generate-pack.c:101
+msgid "Downloading"
+msgstr "Descărcare"
+
+#. TRANSLATORS: This is when the main packages are being downloaded
+#: ../client/pk-generate-pack.c:121
+msgid "Downloading packages"
+msgstr "Descărcare pachete"
+
+#. TRANSLATORS: This is when the dependency packages are being downloaded
+#: ../client/pk-generate-pack.c:126
+msgid "Downloading dependencies"
+msgstr "Se descarcă dependențele"
+
+#. 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 "Setați numele fișierelor dependențelor ce urmează a fi excluse"
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+"Directorul sau fișierul de ieșire (se folosește directorul curent dacă nu se "
+"specifică)"
+
+#. 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 "Pachetul va fi pus într-un pachet de servicii"
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
+msgid "Put all updates available in the service pack"
+msgstr "Pune toate actualizările disponibile în pachetul de servicii"
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:225
+msgid "Neither --package or --updates option selected."
+msgstr "Nu s-a selectat nici --package nici --updates."
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:233
+msgid "Both options selected."
+msgstr "Ambele opțiuni sunt selectate."
+
+#. 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 "E necesar un director sau un nume de fișier pentru ieșire"
+
+#. 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 "Gestionarul de pachete nu poate efectua acest tip de operație."
+
+#. 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 ""
+"Dacă se specifică un fișier, numele pachetului de servicii trebuie să se "
+"termine cu"
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:301
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr "Un pachet cu același nume există deja, doriți să-l suprascrieți?"
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:304
+msgid "The pack was not overwritten."
+msgstr "Pachetul nu a fost suprascris."
+
+#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
+#: ../client/pk-generate-pack.c:317
+msgid "Failed to create directory:"
+msgstr "Eșec la crearea directorului:"
+
+#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
+#: ../client/pk-generate-pack.c:327
+msgid "Failed to open package list."
+msgstr ""
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:338
+msgid "Finding package name."
+msgstr ""
+
+#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
+#: ../client/pk-generate-pack.c:342
+#, c-format
+msgid "Failed to find package '%s': %s"
+msgstr ""
+
+#. TRANSLATORS: This is telling the user we are in the process of making the pack
+#: ../client/pk-generate-pack.c:359
+msgid "Creating service pack..."
+msgstr ""
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:366
+#, c-format
+msgid "Service pack created '%s'"
+msgstr ""
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:371
+#, c-format
+msgid "Failed to create '%s': %s"
+msgstr ""
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:143
+msgid "PackageKit Monitor"
+msgstr "Monitor PackageKit"
+
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:118
+msgid "The package could not be found"
+msgstr ""
+
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-tools-common.c:130
+msgid "More than one package matches:"
+msgstr ""
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:137
+msgid "Please choose the correct package: "
+msgstr ""
+
+#: ../client/pk-tools-common.c:162
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Vă rugăm să introduceți un număr între 1 și %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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/src/contents.cpp:298
+msgid "Getting package information..."
+msgstr "Se obțin informațiile despre pachet..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/src/contents.cpp:304
+#, c-format
+msgid "Run %s"
+msgstr "Rulează %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/src/contents.cpp:310
+msgid "Installed version"
+msgstr "Versiune instalată"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/src/contents.cpp:318
+#, c-format
+msgid "Run version %s now"
+msgstr "Rulează versiunea %s acum"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/src/contents.cpp:324
+msgid "Run now"
+msgstr "Rulează acum"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/src/contents.cpp:330
+#, c-format
+msgid "Update to version %s"
+msgstr "Actualizează la versiunea %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/src/contents.cpp:336
+#, c-format
+msgid "Install %s now"
+msgstr "Instalează %s acum"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/src/contents.cpp:339
+msgid "Version"
+msgstr "Versiune"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/src/contents.cpp:344
+msgid "No packages found for your system"
+msgstr "Nu s-a găsit niciun pachet pentru sistemul dumneavoastră"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/src/contents.cpp:349
+msgid "Installing..."
+msgstr "Instalare..."
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 "Director pentru iconițe"
+
+#. 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 "Numele depozitului de la distanță"
+
+#. 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 ""
+
+#. 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 ""
+
+#: ../data/packagekit-catalog.xml.in.h:1
+msgid "PackageKit Catalog"
+msgstr "Catalog PackageKit"
+
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr "Listă de pachete PackageKit"
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr "Pachet de servicii PackageKit"
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
+msgid "Startup failed due to security policies on this machine."
+msgstr ""
+"Pornirea a eșuat din cauza politicilor de securitate ale acestei mașini."
+
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
+msgid "This can happen for two reasons:"
+msgstr "Aceasta se poate întâmpla din două motive:"
+
+#. 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 "Utilizatorul corect nu lansează executabilul (de obicei 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 ""
+
+#. 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 "Unealta de procesat pachete, de ex: yum, apt"
+
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:196
+msgid "Daemonize and detach from the terminal"
+msgstr "Transformă în demon și detașează de terminal"
+
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:202
+msgid "Disable the idle timer"
+msgstr "Dezactivează cronometrul de inactivitate"
+
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:205
+msgid "Show version and exit"
+msgstr "Afișează versiunea și ieși"
+
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:208
+msgid "Exit after a small delay"
+msgstr "Ieși după o mică întârziere"
+
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:211
+msgid "Exit after the engine has loaded"
+msgstr "Ieși după ce motorul a fost încărcat"
+
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:226
+msgid "PackageKit service"
+msgstr "Serviciul PackageKit"
+
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:263
+msgid "Cannot connect to the system bus"
+msgstr "Nu se poate face conexiunea cu magistrala sistemului"
+
+#. TRANSLATORS: cannot register on system bus, unknown reason
+#: ../src/pk-main.c:313
+#, c-format
+msgid "Error trying to start: %s\n"
+msgstr "Eroare la încercarea de a porni: %s\n"
commit 9d6209b5d1241214a75b83fe007d5334d70f4324
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 14:59:49 2009 +0000

    trivial: add a few more its4 ignore lines

diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index b543e23..2df80e9 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -31,6 +31,8 @@
 
 #include "pk-tools-common.h"
 
+#define PK_MAX_PATH_LEN 1023
+
 typedef enum {
 	PK_CNF_POLICY_RUN,
 	PK_CNF_POLICY_INSTALL,
@@ -260,8 +262,8 @@ pk_cnf_find_alternatives (const gchar *cmd, guint len)
 	const gchar *cmdt;
 	const gchar *cmdt2;
 	guint i, j;
-	gchar buffer_bin[1024];
-	gchar buffer_sbin[1024];
+	gchar buffer_bin[PK_MAX_PATH_LEN+1];
+	gchar buffer_sbin[PK_MAX_PATH_LEN+1];
 	gboolean ret;
 
 	array = g_ptr_array_new ();
@@ -291,15 +293,21 @@ pk_cnf_find_alternatives (const gchar *cmd, guint len)
 			g_ptr_array_add (unique, (gpointer) cmdt);
 	}
 
-	/* seed path, we don't want to be doing g_strdup_printf in the fast path */
-	strncpy (buffer_bin, "/usr/bin/", 1023);
-	strncpy (buffer_sbin, "/usr/sbin/", 1023);
+	/* ITS4: ignore, source is constant size */
+	strncpy (buffer_bin, "/usr/bin/", PK_MAX_PATH_LEN);
+
+	/* ITS4: ignore, source is constant size */
+	strncpy (buffer_sbin, "/usr/sbin/", PK_MAX_PATH_LEN);
 
 	/* remove any that exist (fast path) */
 	for (i=0; i<unique->len; i++) {
 		cmdt = g_ptr_array_index (unique, i);
-		strncpy (&buffer_bin[9], cmdt, 1023-9);
-		strncpy (&buffer_sbin[10], cmdt, 1023-10);
+
+		/* ITS4: ignore, size is checked */
+		strncpy (&buffer_bin[9], cmdt, PK_MAX_PATH_LEN-9);
+
+		/* ITS4: ignore, size is checked */
+		strncpy (&buffer_sbin[10], cmdt, PK_MAX_PATH_LEN-10);
 
 		/* does file exist in bindir (common case) */
 		ret = g_file_test (buffer_bin, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE);
commit 30ac76df4e16c8ba423c911b85a9cae8de3d37cb
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 14:41:42 2009 +0000

    trivial: dummy update description fix

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index e89654b..c591ef8 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -291,7 +291,10 @@ backend_get_update_detail_timeout (gpointer data)
 						  "http://bgzilla.fd.org/result.php?#12344;Freedesktop Bugzilla #12344;"
 						  "http://bgzilla.gnome.org/result.php?#9876;GNOME Bugzilla #9876",
 						  "http://nvd.nist.gov/nvd.cfm?cvename=CVE-2007-3381;CVE-2007-3381",
-						  PK_RESTART_ENUM_SYSTEM, "Update to newest version",
+						  PK_RESTART_ENUM_SYSTEM,
+						  "Update to newest upstream version.\n"
+						  "* This should fix many driver bugs when using nouveau\n"
+						  " * This also introduces the new `frobnicator` driver for *vibrating* rabbit hardware.",
 						  "", PK_UPDATE_STATE_ENUM_UNSTABLE, "2008-06-28", NULL);
 		} else if (egg_strequal (package_id, "gtkhtml2;2.19.1-4.fc8;i386;fedora")) {
 			pk_backend_update_detail (backend, package_id,
commit cce5f83327d1ceda835ec0745f5ec0d2331aef47
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 12:58:47 2009 +0000

    bugfix: don't allow pk_backend_error_timeout_delay_cb() to be called more than once (should never happen)

diff --git a/src/pk-backend.c b/src/pk-backend.c
index 61fd404..6bedd12 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -1356,7 +1356,7 @@ pk_backend_error_timeout_delay_cb (gpointer data)
 	if (backend->priv->finished) {
 		egg_warning ("consistency error");
 		egg_debug_backtrace ();
-		return FALSE;
+		goto out;
 	}
 
 	/* warn the backend developer that they've done something worng
@@ -1368,6 +1368,8 @@ pk_backend_error_timeout_delay_cb (gpointer data)
 	g_signal_emit (backend, signals [PK_BACKEND_MESSAGE], 0, message, buffer);
 
 	pk_backend_finished (backend);
+out:
+	backend->priv->signal_error_timeout = 0;
 	return FALSE;
 }
 
@@ -1941,8 +1943,10 @@ pk_backend_reset (PkBackend *backend)
 	}
 
 	/* if we set an error code notifier, clear */
-	if (backend->priv->signal_error_timeout != 0)
+	if (backend->priv->signal_error_timeout != 0) {
 		g_source_remove (backend->priv->signal_error_timeout);
+		backend->priv->signal_error_timeout = 0;
+	}
 
 	pk_package_obj_free (backend->priv->last_package);
 	backend->priv->set_error = FALSE;
commit 38eb54705be9ae1a25accb2bdefcec7b8e3f7f0f
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 12:58:07 2009 +0000

    feature: warn if there are any pending sources at the end of each self test section - trivial git add

diff --git a/lib/packagekit-glib/egg-test.c b/lib/packagekit-glib/egg-test.c
index 3703f2a..ee79c67 100644
--- a/lib/packagekit-glib/egg-test.c
+++ b/lib/packagekit-glib/egg-test.c
@@ -195,6 +195,18 @@ egg_test_end (EggTest *test)
 		test->hang_loop_id = 0;
 	}
 
+	/* remove all the test callbacks */
+	while (g_source_remove_by_user_data (test))
+		g_print ("WARNING: removed callback for test module");
+
+	/* check we don't have any pending iterations */
+	if (g_main_context_pending (NULL)) {
+		g_print ("WARNING: Pending event in context! Running to completion... ");
+		while (g_main_context_pending (NULL))
+			g_main_context_iteration (NULL, TRUE);
+		g_print ("Done!\n");
+	}
+
 	test->started = FALSE;
 	g_free (test->type);
 }
commit 83b4a51dd790d06f7ebaf5708369483978ca5abe
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 12:57:46 2009 +0000

    feature: warn if there are any pending sources at the end of each self test section

diff --git a/src/pk-transaction-db.c b/src/pk-transaction-db.c
index f9fab19..39b1d41 100644
--- a/src/pk-transaction-db.c
+++ b/src/pk-transaction-db.c
@@ -827,7 +827,7 @@ pk_transaction_db_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "do the deferred write");
-	while (g_main_context_pending (NULL)
+	while (g_main_context_pending (NULL))
 		g_main_context_iteration (NULL, TRUE);
 	ms = egg_test_elapsed (test);
 	if (ms > 1)
commit 58059d988cb4177cc69b0f29040b661d0571248f
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 12:56:46 2009 +0000

    trivial: formatting nit

diff --git a/lib/packagekit-glib/pk-control.c b/lib/packagekit-glib/pk-control.c
index b2cfdd9..2ab5a42 100644
--- a/lib/packagekit-glib/pk-control.c
+++ b/lib/packagekit-glib/pk-control.c
@@ -753,7 +753,7 @@ pk_control_transaction_list_changed_cb (DBusGProxy *proxy, gchar **array, PkCont
 		g_strfreev (control->priv->array);
 	control->priv->array = g_strdupv (array);
 	egg_debug ("emit transaction-list-changed");
-	g_signal_emit (control , signals [PK_CONTROL_LIST_CHANGED], 0);
+	g_signal_emit (control, signals [PK_CONTROL_LIST_CHANGED], 0);
 }
 
 /**
diff --git a/src/pk-transaction-db.c b/src/pk-transaction-db.c
index 3e040be..f9fab19 100644
--- a/src/pk-transaction-db.c
+++ b/src/pk-transaction-db.c
@@ -827,7 +827,8 @@ pk_transaction_db_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "do the deferred write");
-	g_main_context_iteration (NULL, TRUE);
+	while (g_main_context_pending (NULL)
+		g_main_context_iteration (NULL, TRUE);
 	ms = egg_test_elapsed (test);
 	if (ms > 1)
 		egg_test_success (test, "acceptable time %ims", ms);
commit 4f5c22cfc680b1dada84936ffb8484aba253e4e9
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 10:37:40 2009 +0000

    bugfix: don't store out job-id in a seporate file, as this adds 37ms to each generate_tid() method when using new versions of GLib. Instead use a deferred sync write to the database which reduces the hotpath to 2ms

diff --git a/src/Makefile.am b/src/Makefile.am
index eb68831..901296d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -94,8 +94,6 @@ shared_SOURCES =					\
 	pk-backend-dbus.c				\
 	pk-transaction-db.h				\
 	pk-transaction-db.c				\
-	pk-transaction-id.h				\
-	pk-transaction-id.c				\
 	pk-transaction-list.c				\
 	pk-transaction-list.h				\
 	$(NULL)
diff --git a/src/pk-engine.c b/src/pk-engine.c
index 718b60e..1cf778e 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -50,7 +50,6 @@
 #include "pk-backend-internal.h"
 #include "pk-engine.h"
 #include "pk-transaction.h"
-#include "pk-transaction-id.h"
 #include "pk-transaction-db.h"
 #include "pk-transaction-list.h"
 #include "pk-inhibit.h"
@@ -261,7 +260,7 @@ pk_engine_get_tid (PkEngine *engine, DBusGMethodInvocation *context)
 
 	egg_debug ("GetTid method called");
 	sender = dbus_g_method_get_sender (context);
-	new_tid = pk_transaction_id_generate ();
+	new_tid = pk_transaction_db_generate_id (engine->priv->transaction_db);
 
 	ret = pk_transaction_list_create (engine->priv->transaction_list, new_tid, sender);
 	egg_debug ("sending tid: '%s'", new_tid);
diff --git a/src/pk-transaction-db.c b/src/pk-transaction-db.c
index aab11f3..3e040be 100644
--- a/src/pk-transaction-db.c
+++ b/src/pk-transaction-db.c
@@ -47,15 +47,19 @@ static void     pk_transaction_db_finalize	(GObject        *object);
 
 #define PK_TRANSACTION_DB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_TRANSACTION_DB, PkTransactionDbPrivate))
 
+#define PK_TRANSACTION_DB_ID_FILE_OBSOLETE	LOCALSTATEDIR "/lib/PackageKit/job_count.dat"
+
 #if PK_BUILD_LOCAL
-#define PK_TRANSACTION_DB_FILE		"./transactions.db"
+#define PK_TRANSACTION_DB_FILE			"./transactions.db"
 #else
-#define PK_TRANSACTION_DB_FILE		PK_DB_DIR "/transactions.db"
+#define PK_TRANSACTION_DB_FILE			PK_DB_DIR "/transactions.db"
 #endif
 
 struct PkTransactionDbPrivate
 {
 	sqlite3			*db;
+	guint			 job_count;
+	guint			 database_save_id;
 };
 
 enum {
@@ -109,10 +113,10 @@ pk_transaction_db_item_free (PkTransactionDbItem *item)
 }
 
 /**
- * pk_transaction_sqlite_callback:
+ * pk_transaction_sqlite_transaction_cb:
  **/
 static gint
-pk_transaction_sqlite_callback (void *data, gint argc, gchar **argv, gchar **col_name)
+pk_transaction_sqlite_transaction_cb (void *data, gint argc, gchar **argv, gchar **col_name)
 {
 	PkTransactionDbItem item;
 	PkTransactionDb *tdb = PK_TRANSACTION_DB (data);
@@ -202,7 +206,7 @@ pk_transaction_db_sql_statement (PkTransactionDb *tdb, const gchar *sql)
 	g_return_val_if_fail (PK_IS_TRANSACTION_DB (tdb), FALSE);
 	g_return_val_if_fail (tdb->priv->db != NULL, FALSE);
 
-	rc = sqlite3_exec (tdb->priv->db, sql, pk_transaction_sqlite_callback, tdb, &error_msg);
+	rc = sqlite3_exec (tdb->priv->db, sql, pk_transaction_sqlite_transaction_cb, tdb, &error_msg);
 	if (rc != SQLITE_OK) {
 		egg_warning ("SQL error: %s\n", error_msg);
 		sqlite3_free (error_msg);
@@ -456,6 +460,123 @@ pk_transaction_db_print (PkTransactionDb *tdb)
 }
 
 /**
+ * pk_transaction_db_empty:
+ **/
+gboolean
+pk_transaction_db_empty (PkTransactionDb *tdb)
+{
+	const gchar *statement;
+
+	g_return_val_if_fail (PK_IS_TRANSACTION_DB (tdb), FALSE);
+	g_return_val_if_fail (tdb->priv->db != NULL, FALSE);
+
+	statement = "TRUNCATE TABLE transactions;";
+	sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
+	return TRUE;
+}
+
+/**
+ * pk_transaction_sqlite_job_id_cb:
+ **/
+static gint
+pk_transaction_sqlite_job_id_cb (void *data, gint argc, gchar **argv, gchar **col_name)
+{
+	PkTransactionDb *tdb = PK_TRANSACTION_DB (data);
+	if (argc != 1) {
+		egg_warning ("wrong number of replies: %i", argc);
+		goto out;
+	}
+	egg_strtouint (argv[0], &tdb->priv->job_count);
+out:
+	return 0;
+}
+
+
+/**
+ * pk_transaction_db_get_random_hex_string:
+ **/
+static gchar *
+pk_transaction_db_get_random_hex_string (guint length)
+{
+	GRand *gen;
+	gint32 num;
+	gchar *string;
+	guint i;
+
+	gen = g_rand_new ();
+
+	/* allocate a string with the correct size */
+	string = g_strnfill (length, 'x');
+	for (i=0; i<length; i++) {
+		num = g_rand_int_range (gen, (gint32) 'a', (gint32) 'f');
+		/* assign a random number as a char */
+		string[i] = (gchar) num;
+	}
+	g_rand_free (gen);
+	return string;
+}
+
+/**
+ * pk_transaction_db_defer_write_job_count_cb:
+ **/
+static gboolean
+pk_transaction_db_defer_write_job_count_cb (PkTransactionDb *tdb)
+{
+	gchar *statement = NULL;
+	gchar *error_msg = NULL;
+	gint rc;
+
+	/* force fsync as we don't want to repeat this number */
+	sqlite3_exec (tdb->priv->db, "PRAGMA synchronous=ON", NULL, NULL, NULL);
+
+	/* save the job count */
+	egg_debug ("doing deferred write syncronous");
+	statement = g_strdup_printf ("UPDATE config SET value = '%i' WHERE key = 'job_count'", tdb->priv->job_count);
+	rc = sqlite3_exec (tdb->priv->db, statement, NULL, NULL, &error_msg);
+	if (rc != SQLITE_OK) {
+		egg_error ("failed to set job id: %s\n", error_msg);
+		sqlite3_free (error_msg);
+		goto out;
+	}
+
+	/* turn off fsync */
+	sqlite3_exec (tdb->priv->db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
+
+	/* allow this to happen again */
+	tdb->priv->database_save_id = 0;
+out:
+	g_free (statement);
+	return FALSE;
+}
+
+/**
+ * pk_transaction_db_generate_id:
+ **/
+gchar *
+pk_transaction_db_generate_id (PkTransactionDb *tdb)
+{
+	gchar *rand_str = NULL;
+	gchar *tid = NULL;
+
+	/* increment */
+	tdb->priv->job_count++;
+	egg_debug ("job count now %i", tdb->priv->job_count);
+
+	/* we don't need to wait for the database write, just do this the
+	 * next time we are idle (but ensure we do this on shutdown) */
+	if (tdb->priv->database_save_id == 0) {
+		egg_debug ("deferring low priority write until idle");
+		tdb->priv->database_save_id = g_idle_add_full (G_PRIORITY_LOW, (GSourceFunc) pk_transaction_db_defer_write_job_count_cb, tdb, NULL);
+	}
+
+	/* make the tid */
+	rand_str = pk_transaction_db_get_random_hex_string (8);
+	tid = g_strdup_printf ("/%i_%s_data", tdb->priv->job_count, rand_str);
+	g_free (rand_str);
+	return tid;
+}
+
+/**
  * pk_transaction_db_class_init:
  * @klass: The PkTransactionDbClass
  **/
@@ -475,43 +596,25 @@ pk_transaction_db_class_init (PkTransactionDbClass *klass)
 }
 
 /**
- * pk_transaction_db_empty:
- **/
-gboolean
-pk_transaction_db_empty (PkTransactionDb *tdb)
-{
-	const gchar *statement;
-
-	g_return_val_if_fail (PK_IS_TRANSACTION_DB (tdb), FALSE);
-	g_return_val_if_fail (tdb->priv->db != NULL, FALSE);
-
-	statement = "TRUNCATE TABLE transactions;";
-	sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
-	return TRUE;
-}
-
-/**
  * pk_transaction_db_init:
  **/
 static void
 pk_transaction_db_init (PkTransactionDb *tdb)
 {
-	gboolean file_exists;
 	const gchar *statement;
 	gint rc;
 	gchar *error_msg = NULL;
 	const gchar *role_text;
-	gchar *statement2;
+	gchar *text;
 	gchar *timespec;
+	gboolean ret;
 	guint i;
 
 	g_return_if_fail (PK_IS_TRANSACTION_DB (tdb));
 
 	tdb->priv = PK_TRANSACTION_DB_GET_PRIVATE (tdb);
 	tdb->priv->db = NULL;
-
-	/* if the database file was not installed (or was nuked) recreate it */
-	file_exists = g_file_test (PK_TRANSACTION_DB_FILE, G_FILE_TEST_EXISTS);
+	tdb->priv->database_save_id = 0;
 
 	egg_debug ("trying to open database '%s'", PK_TRANSACTION_DB_FILE);
 	rc = sqlite3_open (PK_TRANSACTION_DB_FILE, &tdb->priv->db);
@@ -530,7 +633,7 @@ pk_transaction_db_init (PkTransactionDb *tdb)
 		egg_debug ("creating table to repair: %s", error_msg);
 		sqlite3_free (error_msg);
 		statement = "CREATE TABLE transactions ("
-			    "transaction_id TEXT primary key,"
+			    "transaction_id TEXT PRIMARY KEY,"
 			    "timespec TEXT,"
 			    "duration INTEGER,"
 			    "succeeded INTEGER DEFAULT 0,"
@@ -557,7 +660,7 @@ pk_transaction_db_init (PkTransactionDb *tdb)
 	rc = sqlite3_exec (tdb->priv->db, "SELECT * FROM last_action LIMIT 1", NULL, NULL, &error_msg);
 	if (rc != SQLITE_OK) {
 		egg_debug ("adding last action details: %s", error_msg);
-		statement = "CREATE TABLE last_action (role TEXT primary key, timespec TEXT);";
+		statement = "CREATE TABLE last_action (role TEXT PRIMARY KEY, timespec TEXT);";
 		sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
 
 		/* create values for now */
@@ -565,12 +668,45 @@ pk_transaction_db_init (PkTransactionDb *tdb)
 		for (i=0; i<PK_ROLE_ENUM_UNKNOWN; i++) {
 			role_text = pk_role_enum_to_text (i);
 			/* reset to now if the role does not exist */
-			statement2 = g_strdup_printf ("INSERT INTO last_action (role, timespec) VALUES ('%s', '%s')", role_text, timespec);
-			sqlite3_exec (tdb->priv->db, statement2, NULL, NULL, NULL);
-			g_free (statement2);
+			text = g_strdup_printf ("INSERT INTO last_action (role, timespec) VALUES ('%s', '%s')", role_text, timespec);
+			sqlite3_exec (tdb->priv->db, text, NULL, NULL, NULL);
+			g_free (text);
 		}
 		g_free (timespec);
 	}
+
+	/* check config (since 0.4.6) */
+	rc = sqlite3_exec (tdb->priv->db, "SELECT * FROM config LIMIT 1", NULL, NULL, &error_msg);
+	if (rc != SQLITE_OK) {
+		egg_debug ("adding config: %s", error_msg);
+		statement = "CREATE TABLE config (key TEXT PRIMARY KEY, value TEXT);";
+		sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
+
+		/* save creation version */
+		text = g_strdup_printf ("INSERT INTO config (key, value) VALUES ('version', '%s')", PACKAGE_VERSION);
+		sqlite3_exec (tdb->priv->db, text, NULL, NULL, NULL);
+		g_free (text);
+
+		/* get the old job count from the text file (this is a legacy file) */
+		ret = g_file_get_contents (PK_TRANSACTION_DB_ID_FILE_OBSOLETE, &text, NULL, NULL);
+		if (ret)
+			egg_strtouint (text, &tdb->priv->job_count);
+		g_free (text);
+
+		/* save job id */
+		text = g_strdup_printf ("INSERT INTO config (key, value) VALUES ('job_count', '%i')", tdb->priv->job_count);
+		sqlite3_exec (tdb->priv->db, text, NULL, NULL, NULL);
+		g_free (text);
+	} else {
+		/* get the job count */
+		statement = "SELECT value FROM config WHERE key = 'job_count'";
+		rc = sqlite3_exec (tdb->priv->db, statement, pk_transaction_sqlite_job_id_cb, tdb, &error_msg);
+		if (rc != SQLITE_OK) {
+			egg_warning ("failed to get job id: %s\n", error_msg);
+			sqlite3_free (error_msg);
+		}
+		egg_debug ("job count is now at %i", tdb->priv->job_count);
+	}
 }
 
 /**
@@ -585,6 +721,12 @@ pk_transaction_db_finalize (GObject *object)
 	tdb = PK_TRANSACTION_DB (object);
 	g_return_if_fail (tdb->priv != NULL);
 
+	/* if we shutdown with a deferred database write, then enforce it here */
+	if (tdb->priv->database_save_id != 0) {
+		pk_transaction_db_defer_write_job_count_cb (tdb);
+		g_source_remove (tdb->priv->database_save_id);
+	}
+
 	/* close the database */
 	sqlite3_close (tdb->priv->db);
 
@@ -616,6 +758,7 @@ pk_transaction_db_test (EggTest *test)
 {
 	PkTransactionDb *db;
 	guint value;
+	gchar *tid;
 	gboolean ret;
 	guint ms;
 
@@ -652,6 +795,28 @@ pk_transaction_db_test (EggTest *test)
 	else
 		egg_test_failed (test, "took a long time: %ims", ms);
 
+	/************************************************************
+	 ****************          IDENT           ******************
+	 ************************************************************/
+	egg_test_title (test, "get an tid object");
+	tid = pk_transaction_db_generate_id (db);
+	ms = egg_test_elapsed (test);
+	if (ms < 5)
+		egg_test_success (test, "acceptable time %ims", ms);
+	else
+		egg_test_failed (test, "took a long time: %ims", ms);
+	g_free (tid);
+
+	/************************************************************/
+	egg_test_title (test, "get an tid object (no wait)");
+	tid = pk_transaction_db_generate_id (db);
+	ms = egg_test_elapsed (test);
+	if (ms < 5)
+		egg_test_success (test, "acceptable time %ims", ms);
+	else
+		egg_test_failed (test, "took a long time: %ims", ms);
+	g_free (tid);
+
 	/************************************************************/
 	egg_test_title (test, "set the correct time");
 	ret = pk_transaction_db_action_time_reset (db, PK_ROLE_ENUM_REFRESH_CACHE);
@@ -660,6 +825,15 @@ pk_transaction_db_test (EggTest *test)
 	else
 		egg_test_failed (test, "failed to reset value");
 
+	/************************************************************/
+	egg_test_title (test, "do the deferred write");
+	g_main_context_iteration (NULL, TRUE);
+	ms = egg_test_elapsed (test);
+	if (ms > 1)
+		egg_test_success (test, "acceptable time %ims", ms);
+	else
+		egg_test_failed (test, "took too short time: %ims", ms);
+
 	g_usleep (2*1000*1000);
 
 	/************************************************************/
diff --git a/src/pk-transaction-db.h b/src/pk-transaction-db.h
index 91c4b0e..8dfdbb8 100644
--- a/src/pk-transaction-db.h
+++ b/src/pk-transaction-db.h
@@ -75,6 +75,8 @@ gboolean	 pk_transaction_db_action_time_reset	(PkTransactionDb	*tdb,
 							 PkRoleEnum		 role);
 guint		 pk_transaction_db_action_time_since	(PkTransactionDb	*tdb,
 							 PkRoleEnum		 role);
+gchar		*pk_transaction_db_generate_id		(PkTransactionDb	*tdb)
+							 G_GNUC_WARN_UNUSED_RESULT;
 
 G_END_DECLS
 
diff --git a/src/pk-transaction-list.c b/src/pk-transaction-list.c
index 0a74ecb..371d09e 100644
--- a/src/pk-transaction-list.c
+++ b/src/pk-transaction-list.c
@@ -42,7 +42,6 @@
 #include "egg-debug.h"
 #include "egg-string.h"
 
-#include "pk-transaction-id.h"
 #include "pk-transaction-list.h"
 #include "org.freedesktop.PackageKit.Transaction.h"
 
@@ -791,6 +790,9 @@ pk_transaction_list_new (void)
 #include "egg-test.h"
 #include "pk-backend-internal.h"
 #include "pk-cache.h"
+#include "pk-transaction-db.h"
+
+static PkTransactionDb *db = NULL;
 
 /**
  * pk_transaction_list_test_finished_cb:
@@ -821,7 +823,7 @@ pk_transaction_list_test_get_item (PkTransactionList *tlist)
 	gchar *tid;
 
 	/* get tid */
-	tid = pk_transaction_id_generate ();
+	tid = pk_transaction_db_generate_id (db);
 
 	/* create PkTransaction instance */
 	pk_transaction_list_create (tlist, tid, ":0");
@@ -851,6 +853,7 @@ pk_transaction_list_test (EggTest *test)
 
 	/* we get a cache object to reproduce the engine having it ref'd */
 	cache = pk_cache_new ();
+	db = pk_transaction_db_new ();
 
 	/************************************************************/
 	egg_test_title (test, "get a transaction list object");
@@ -859,7 +862,7 @@ pk_transaction_list_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "make sure we get a valid tid");
-	tid = pk_transaction_id_generate ();
+	tid = pk_transaction_db_generate_id (db);
 	if (tid != NULL)
 		egg_test_success (test, "got tid %s", tid);
 	else
@@ -935,7 +938,7 @@ pk_transaction_list_test (EggTest *test)
 
 	/* get a new tid */
 	g_free (tid);
-	tid = pk_transaction_id_generate ();
+	tid = pk_transaction_db_generate_id (db);
 
 	/************************************************************/
 	egg_test_title (test, "create another item");
@@ -1340,6 +1343,7 @@ pk_transaction_list_test (EggTest *test)
 	g_object_unref (tlist);
 	g_object_unref (backend);
 	g_object_unref (cache);
+	g_object_unref (db);
 
 	egg_test_end (test);
 }
commit e4a5cfb13187b210086f1a8cf17e2d1d4df46891
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 10:35:25 2009 +0000

    trivial: decrease the speed of the SIGKILL spawn test as sometimes it can finish before the cancel timesout

diff --git a/data/tests/pk-spawn-test.sh b/data/tests/pk-spawn-test.sh
index 7be7395..c8018f3 100755
--- a/data/tests/pk-spawn-test.sh
+++ b/data/tests/pk-spawn-test.sh
@@ -6,7 +6,7 @@
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
 
-time=0.30
+time=0.5
 
 echo -e "percentage\t0"
 echo -e "percentage\t10"
diff --git a/src/pk-spawn.c b/src/pk-spawn.c
index 1c31d43..bd609e4 100644
--- a/src/pk-spawn.c
+++ b/src/pk-spawn.c
@@ -835,7 +835,7 @@ pk_spawn_test (EggTest *test)
 	/************************************************************
 	 **********           Killing tests               ***********
 	 ************************************************************/
-	egg_test_title (test, "make sure run correct helper, and kill it");
+	egg_test_title (test, "make sure run correct helper, and kill it using SIGKILL");
 	mexit = PK_SPAWN_EXIT_TYPE_UNKNOWN;
 	path = egg_test_get_data_file ("pk-spawn-test.sh");
 	argv = g_strsplit (path, " ", 0);
@@ -853,8 +853,8 @@ pk_spawn_test (EggTest *test)
 	egg_test_loop_check (test);
 
 	/************************************************************/
-	egg_test_title (test, "make sure finished in SIGQUIT");
-	if (mexit == PK_SPAWN_EXIT_TYPE_SIGQUIT)
+	egg_test_title (test, "make sure finished in SIGKILL");
+	if (mexit == PK_SPAWN_EXIT_TYPE_SIGKILL)
 		egg_test_success (test, NULL);
 	else
 		egg_test_failed (test, "finish %i!", mexit);
@@ -863,7 +863,7 @@ pk_spawn_test (EggTest *test)
 	new_spawn_object (test, &spawn);
 
 	/************************************************************/
-	egg_test_title (test, "make sure run correct helper, and quit it");
+	egg_test_title (test, "make sure run correct helper, and SIGQUIT it");
 	mexit = PK_SPAWN_EXIT_TYPE_UNKNOWN;
 	path = egg_test_get_data_file ("pk-spawn-test-sigquit.sh");
 	argv = g_strsplit (path, " ", 0);
diff --git a/src/pk-transaction-id.c b/src/pk-transaction-id.c
deleted file mode 100644
index ca28e89..0000000
--- a/src/pk-transaction-id.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <glib/gi18n.h>
-
-#include "egg-debug.h"
-#include "egg-string.h"
-
-#include "pk-transaction-id.h"
-#define PK_TRANSACTION_ID_COUNT_FILE		LOCALSTATEDIR "/lib/PackageKit/job_count.dat"
-
-/**
- * pk_transaction_id_get_random_hex_string:
- **/
-static gchar *
-pk_transaction_id_get_random_hex_string (guint length)
-{
-	GRand *gen;
-	gint32 num;
-	gchar *string;
-	guint i;
-
-	gen = g_rand_new ();
-
-	/* allocate a string with the correct size */
-	string = g_strnfill (length, 'x');
-	for (i=0; i<length; i++) {
-		num = g_rand_int_range (gen, (gint32) 'a', (gint32) 'f');
-		/* assign a random number as a char */
-		string[i] = (gchar) num;
-	}
-	g_rand_free (gen);
-	return string;
-}
-
-/**
- * pk_transaction_id_load_job_count:
- **/
-static guint
-pk_transaction_id_load_job_count (void)
-{
-	gboolean ret;
-	gchar *contents;
-	guint job_count;
-	ret = g_file_get_contents (PK_TRANSACTION_ID_COUNT_FILE, &contents, NULL, NULL);
-	if (ret == FALSE) {
-		egg_warning ("failed to get last job");
-		return FALSE;
-	}
-
-	/* convert */
-	ret = egg_strtouint (contents, &job_count);
-	if (ret == FALSE) {
-		egg_warning ("failed to convert");
-	}
-
-	/* check we got a sane number */
-	if (job_count > 10240) {
-		egg_warning ("invalid job count!");
-		job_count = 0;
-	}
-
-	egg_debug ("job=%i", job_count);
-	g_free (contents);
-	return job_count;
-}
-
-/**
- * pk_transaction_id_save_job_count:
- **/
-static gboolean
-pk_transaction_id_save_job_count (guint job_count)
-{
-	gboolean ret;
-	gchar *contents;
-
-	egg_debug ("saving %i", job_count);
-	contents = g_strdup_printf ("%i", job_count);
-	ret = g_file_set_contents (PK_TRANSACTION_ID_COUNT_FILE, contents, -1, NULL);
-	g_free (contents);
-	if (ret == FALSE) {
-		egg_warning ("failed to set last job");
-		return FALSE;
-	}
-	return TRUE;
-}
-
-/**
- * pk_transaction_id_equal:
- **/
-gboolean
-pk_transaction_id_equal (const gchar *tid1, const gchar *tid2)
-{
-	/* TODO, ignore the data part */
-	return egg_strequal (tid1, tid2);
-}
-
-/**
- * pk_transaction_id_generate:
- **/
-gchar *
-pk_transaction_id_generate (void)
-{
-	gchar *rand_str;
-	gchar *tid;
-	guint job_count;
-
-	/* load from file */
-	job_count = pk_transaction_id_load_job_count ();
-	rand_str = pk_transaction_id_get_random_hex_string (8);
-	job_count++;
-
-	/* save the new value */
-	pk_transaction_id_save_job_count (job_count);
-
-	/* make the tid */
-	tid = g_strdup_printf ("/%i_%s_data", job_count, rand_str);
-
-	g_free (rand_str);
-	return tid;
-}
-
-/***************************************************************************
- ***                          MAKE CHECK TESTS                           ***
- ***************************************************************************/
-#ifdef EGG_TEST
-#include "egg-test.h"
-
-void
-egg_test_transaction_id (EggTest *test)
-{
-	gchar *tid;
-	gboolean ret;
-
-	if (!egg_test_start (test, "PkTransactionId"))
-		return;
-
-	/************************************************************
-	 ****************          IDENT           ******************
-	 ************************************************************/
-	egg_test_title (test, "get an tid object");
-	tid = pk_transaction_id_generate ();
-	egg_test_assert (test, tid != NULL);
-	g_free (tid);
-
-	/************************************************************/
-	egg_test_title (test, "tid equal pass (same)");
-	ret = pk_transaction_id_equal ("/34_1234def_r23", "/34_1234def_r23");
-	egg_test_assert (test, ret);
-
-	egg_test_end (test);
-}
-#endif
-
diff --git a/src/pk-transaction-id.h b/src/pk-transaction-id.h
deleted file mode 100644
index e15ab2b..0000000
--- a/src/pk-transaction-id.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2007-2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __PK_TRANSACTION_ID_H
-#define __PK_TRANSACTION_ID_H
-
-G_BEGIN_DECLS
-
-gchar		*pk_transaction_id_generate		(void)
-							 G_GNUC_WARN_UNUSED_RESULT;
-gboolean	 pk_transaction_id_check		(const gchar	*tid)
-							 G_GNUC_WARN_UNUSED_RESULT;
-gboolean	 pk_transaction_id_equal		(const gchar	*tid1,
-							 const gchar	*tid2)
-							 G_GNUC_WARN_UNUSED_RESULT;
-
-G_END_DECLS
-
-#endif /* __PK_TRANSACTION_ID_H */
commit eef9b4c2c0ad0af970397ee9e900d68bac3650da
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Mar 17 10:21:40 2009 +0000

    trivial: don't print the thread data in egg-debug by default, this adds 4ms to each debug call when running in verbose mode on the console

diff --git a/lib/packagekit-glib/egg-debug.c b/lib/packagekit-glib/egg-debug.c
index f18a5d1..22c460f 100644
--- a/lib/packagekit-glib/egg-debug.c
+++ b/lib/packagekit-glib/egg-debug.c
@@ -131,15 +131,13 @@ pk_print_line (const gchar *func, const gchar *file, const int line, const gchar
 	gchar *str_time;
 	gchar *header;
 	time_t the_time;
-	GThread *thread;
 
 	time (&the_time);
 	str_time = g_new0 (gchar, 255);
 	strftime (str_time, 254, "%H:%M:%S", localtime (&the_time));
-	thread = g_thread_self ();
 
 	/* generate header text */
-	header = g_strdup_printf ("TI:%s\tTH:%p\tFI:%s\tFN:%s,%d", str_time, thread, file, func, line);
+	header = g_strdup_printf ("TI:%s\tFI:%s\tFN:%s,%d", str_time, file, func, line);
 	g_free (str_time);
 
 	/* always in light green */
commit 055d1592430df15b43cb5dc95ff74d38ac7c329a
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 16 21:44:00 2009 +0000

    bugfix: don't force SQLite to do fsync in PkTransactionDb, we can reduce our cold cache start by 700ms and warm cache start by 50ms

diff --git a/src/pk-transaction-db.c b/src/pk-transaction-db.c
index 2fd9e06..aab11f3 100644
--- a/src/pk-transaction-db.c
+++ b/src/pk-transaction-db.c
@@ -521,6 +521,9 @@ pk_transaction_db_init (PkTransactionDb *tdb)
 		return;
 	}
 
+	/* we don't need to keep doing fsync */
+	sqlite3_exec (tdb->priv->db, "PRAGMA synchronous=OFF", NULL, NULL, NULL);
+
 	/* check transactions */
 	rc = sqlite3_exec (tdb->priv->db, "SELECT * FROM transactions LIMIT 1", NULL, NULL, &error_msg);
 	if (rc != SQLITE_OK) {
commit e16ade86735c32f3b2690d2a18749573c7dc6744
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 16 18:24:44 2009 +0000

    bugfix: only check the transaction database once at startup, which shaves off 25ms off the cold start time

diff --git a/src/pk-transaction-db.c b/src/pk-transaction-db.c
index 217c178..2fd9e06 100644
--- a/src/pk-transaction-db.c
+++ b/src/pk-transaction-db.c
@@ -198,36 +198,11 @@ pk_transaction_db_sql_statement (PkTransactionDb *tdb, const gchar *sql)
 {
 	gchar *error_msg = NULL;
 	gint rc;
-	const gchar *statement;
 
 	g_return_val_if_fail (PK_IS_TRANSACTION_DB (tdb), FALSE);
 	g_return_val_if_fail (tdb->priv->db != NULL, FALSE);
 
 	rc = sqlite3_exec (tdb->priv->db, sql, pk_transaction_sqlite_callback, tdb, &error_msg);
-
-	/* can we handle the error? */
-	if (rc != SQLITE_OK) {
-		/* add column uid (since 0.3.11) */
-		if (g_strcmp0 (error_msg, "no such column: uid") == 0) {
-			egg_debug ("SQL: creating column uid");
-			sqlite3_free (error_msg);
-			statement = "ALTER TABLE transactions ADD COLUMN uid INTEGER DEFAULT 0;";
-			rc = sqlite3_exec (tdb->priv->db, statement, NULL, NULL, &error_msg);
-		}
-		/* add column cmdline (since 0.3.11) */
-		if (g_strcmp0 (error_msg, "no such column: cmdline") == 0) {
-			egg_debug ("SQL: creating column cmdline");
-			sqlite3_free (error_msg);
-			statement = "ALTER TABLE transactions ADD COLUMN cmdline TEXT;";
-			rc = sqlite3_exec (tdb->priv->db, statement, NULL, NULL, &error_msg);
-		}
-	}
-
-	/* retry command */
-	if (rc == SQLITE_OK)
-		rc = sqlite3_exec (tdb->priv->db, sql, pk_transaction_sqlite_callback, tdb, &error_msg);
-
-	/* can't handle this, or error handle failed */
 	if (rc != SQLITE_OK) {
 		egg_warning ("SQL error: %s\n", error_msg);
 		sqlite3_free (error_msg);
@@ -516,43 +491,19 @@ pk_transaction_db_empty (PkTransactionDb *tdb)
 }
 
 /**
- * pk_transaction_db_create_table_last_action:
- **/
-static gboolean
-pk_transaction_db_create_table_last_action (PkTransactionDb *tdb)
-{
-	const gchar *role_text;
-	const gchar *statement;
-	gchar *statement2;
-	gchar *timespec;
-	guint i;
-
-	g_return_val_if_fail (PK_IS_TRANSACTION_DB (tdb), FALSE);
-	g_return_val_if_fail (tdb->priv->db != NULL, FALSE);
-
-	timespec = pk_iso8601_present ();
-	statement = "CREATE TABLE last_action (role TEXT primary key, timespec TEXT);";
-	sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
-	for (i=0; i<PK_ROLE_ENUM_UNKNOWN; i++) {
-		role_text = pk_role_enum_to_text (i);
-		/* reset to now if the role does not exist */
-		statement2 = g_strdup_printf ("INSERT INTO last_action (role, timespec) VALUES ('%s', '%s')", role_text, timespec);
-		sqlite3_exec (tdb->priv->db, statement2, NULL, NULL, NULL);
-		g_free (statement2);
-	}
-	g_free (timespec);
-	return TRUE;
-}
-
-/**
  * pk_transaction_db_init:
  **/
 static void
 pk_transaction_db_init (PkTransactionDb *tdb)
 {
-	gboolean create_file;
+	gboolean file_exists;
 	const gchar *statement;
 	gint rc;
+	gchar *error_msg = NULL;
+	const gchar *role_text;
+	gchar *statement2;
+	gchar *timespec;
+	guint i;
 
 	g_return_if_fail (PK_IS_TRANSACTION_DB (tdb));
 
@@ -560,32 +511,63 @@ pk_transaction_db_init (PkTransactionDb *tdb)
 	tdb->priv->db = NULL;
 
 	/* if the database file was not installed (or was nuked) recreate it */
-	create_file = g_file_test (PK_TRANSACTION_DB_FILE, G_FILE_TEST_EXISTS);
+	file_exists = g_file_test (PK_TRANSACTION_DB_FILE, G_FILE_TEST_EXISTS);
 
 	egg_debug ("trying to open database '%s'", PK_TRANSACTION_DB_FILE);
 	rc = sqlite3_open (PK_TRANSACTION_DB_FILE, &tdb->priv->db);
-	if (rc) {
+	if (rc != SQLITE_OK) {
 		egg_error ("Can't open database: %s\n", sqlite3_errmsg (tdb->priv->db));
 		sqlite3_close (tdb->priv->db);
 		return;
-	} else {
-		if (create_file == FALSE) {
-			statement = "CREATE TABLE transactions ("
-				    "transaction_id TEXT primary key,"
-				    "timespec TEXT,"
-				    "duration INTEGER,"
-				    "succeeded INTEGER DEFAULT 0,"
-				    "role TEXT,"
-				    "data TEXT,"
-				    "description TEXT,"
-				    "uid INTEGER DEFAULT 0,"
-				    "cmdline TEXT);";
-			sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
-		}
 	}
 
-	/* we might be running an old database, recreate */
-	pk_transaction_db_create_table_last_action (tdb);
+	/* check transactions */
+	rc = sqlite3_exec (tdb->priv->db, "SELECT * FROM transactions LIMIT 1", NULL, NULL, &error_msg);
+	if (rc != SQLITE_OK) {
+		egg_debug ("creating table to repair: %s", error_msg);
+		sqlite3_free (error_msg);
+		statement = "CREATE TABLE transactions ("
+			    "transaction_id TEXT primary key,"
+			    "timespec TEXT,"
+			    "duration INTEGER,"
+			    "succeeded INTEGER DEFAULT 0,"
+			    "role TEXT,"
+			    "data TEXT,"
+			    "description TEXT,"
+			    "uid INTEGER DEFAULT 0,"
+			    "cmdline TEXT);";
+		sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
+	}
+
+	/* check transactions has enough data (since 0.3.11) */
+	rc = sqlite3_exec (tdb->priv->db, "SELECT uid, cmdline FROM transactions LIMIT 1", NULL, NULL, &error_msg);
+	if (rc != SQLITE_OK) {
+		egg_debug ("altering table to repair: %s", error_msg);
+		sqlite3_free (error_msg);
+		statement = "ALTER TABLE transactions ADD COLUMN uid INTEGER DEFAULT 0;";
+		sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
+		statement = "ALTER TABLE transactions ADD COLUMN cmdline TEXT;";
+		sqlite3_exec (tdb->priv->db, statement, NULL, NULL, &error_msg);
+	}
+
+	/* check last_action (since 0.3.10) */
+	rc = sqlite3_exec (tdb->priv->db, "SELECT * FROM last_action LIMIT 1", NULL, NULL, &error_msg);
+	if (rc != SQLITE_OK) {
+		egg_debug ("adding last action details: %s", error_msg);
+		statement = "CREATE TABLE last_action (role TEXT primary key, timespec TEXT);";
+		sqlite3_exec (tdb->priv->db, statement, NULL, NULL, NULL);
+
+		/* create values for now */
+		timespec = pk_iso8601_present ();
+		for (i=0; i<PK_ROLE_ENUM_UNKNOWN; i++) {
+			role_text = pk_role_enum_to_text (i);
+			/* reset to now if the role does not exist */
+			statement2 = g_strdup_printf ("INSERT INTO last_action (role, timespec) VALUES ('%s', '%s')", role_text, timespec);
+			sqlite3_exec (tdb->priv->db, statement2, NULL, NULL, NULL);
+			g_free (statement2);
+		}
+		g_free (timespec);
+	}
 }
 
 /**
@@ -632,6 +614,7 @@ pk_transaction_db_test (EggTest *test)
 	PkTransactionDb *db;
 	guint value;
 	gboolean ret;
+	guint ms;
 
 	if (!egg_test_start (test, "PkTransactionDb"))
 		return;
@@ -647,7 +630,24 @@ pk_transaction_db_test (EggTest *test)
 	g_unlink (PK_TRANSACTION_DB_FILE);
 #endif
 
+	/************************************************************/
+	egg_test_title (test, "check we created quickly");
 	db = pk_transaction_db_new ();
+	ms = egg_test_elapsed (test);
+	if (ms < 1500)
+		egg_test_success (test, "acceptable time %ims", ms);
+	else
+		egg_test_failed (test, "took a long time: %ims", ms);
+	g_object_unref (db);
+
+	/************************************************************/
+	egg_test_title (test, "check we opened quickly");
+	db = pk_transaction_db_new ();
+	ms = egg_test_elapsed (test);
+	if (ms < 100)
+		egg_test_success (test, "acceptable time %ims", ms);
+	else
+		egg_test_failed (test, "took a long time: %ims", ms);
 
 	/************************************************************/
 	egg_test_title (test, "set the correct time");
commit bc4f0b43be602a18c4bc4444d65904b228778c62
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 16 17:31:42 2009 +0000

    dummy: make the distro upgrade data configurable

diff --git a/backends/dummy/pk-backend-dummy.c b/backends/dummy/pk-backend-dummy.c
index cb64604..e89654b 100644
--- a/backends/dummy/pk-backend-dummy.c
+++ b/backends/dummy/pk-backend-dummy.c
@@ -43,6 +43,7 @@ static gboolean _has_signature = FALSE;
 static gboolean _use_blocked = FALSE;
 static gboolean _use_eula = FALSE;
 static gboolean _use_gpg = FALSE;
+static gboolean _use_distro_upgrade = FALSE;
 
 /**
  * backend_initialize:
@@ -210,10 +211,13 @@ static void
 backend_get_distro_upgrades (PkBackend *backend)
 {
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
+	if (!_use_distro_upgrade)
+		goto out;
 	pk_backend_distro_upgrade (backend, PK_DISTRO_UPGRADE_ENUM_STABLE,
 				   "fedora-9", "Fedora 9");
 	pk_backend_distro_upgrade (backend, PK_DISTRO_UPGRADE_ENUM_UNSTABLE,
 				   "fedora-10-rc1", "Fedora 10 RC1");
+out:
 	pk_backend_finished (backend);
 }
 
commit 46a5545165dc50d3d1407fd766937e2c736c3fe5
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 16 15:21:12 2009 +0000

    trivial: spelling nit

diff --git a/etc/PackageKit.conf.in b/etc/PackageKit.conf.in
index c2f1303..36b7e8f 100644
--- a/etc/PackageKit.conf.in
+++ b/etc/PackageKit.conf.in
@@ -96,7 +96,7 @@ UpdatePackageList=true
 # default=true
 UpdateCheckProcesses=true
 
-# Check for updates in testing repositories when we chack for updates
+# Check for updates in testing repositories when we check for updates
 #
 # NOTE: Don't enable this if you do not want testing updates to be checked
 # as this will increase the network bandwidth used.
commit f5af9b0477899e2c246ca8ff8fe5b42ba02e8009
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 16 15:16:43 2009 +0000

    feature: add a UseUpdateCache config variable to be able to turn off the updates cache for debugging

diff --git a/etc/PackageKit.conf.in b/etc/PackageKit.conf.in
index bc0bea2..c2f1303 100644
--- a/etc/PackageKit.conf.in
+++ b/etc/PackageKit.conf.in
@@ -104,3 +104,11 @@ UpdateCheckProcesses=true
 # default=true
 CheckTestingRepos=true
 
+# Use update cache when possible to avoid using the backend
+#
+# NOTE: Don't disable this unless you're trying to find bugs in packagekitd
+# and you want your backend to service every request.
+#
+# default=true
+UseUpdateCache=true
+
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 89f4c04..be79ae4 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -2497,7 +2497,8 @@ pk_transaction_get_updates (PkTransaction *transaction, const gchar *filter, DBu
 
 	/* try and reuse cache */
 	updates_cache = pk_cache_get_updates (transaction->priv->cache);
-	if (updates_cache != NULL) {
+	ret = pk_conf_get_bool (transaction->priv->conf, "UseUpdateCache");
+	if (ret && updates_cache != NULL) {
 		const PkPackageObj *obj;
 		const gchar *info_text;
 		guint i;
commit 5494f1d236ac20c5ad3108822b74a29c3d6cb8a8
Merge: 788d050... 16793ea...
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 16 09:08:56 2009 +0000

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

commit 16793ea6f95efcf3a01550c030c9f64685ec03ad
Author: Marcin Banasiak <megabajt at pld-linux.org>
Date:   Sun Mar 15 12:46:53 2009 +0100

    poldek: emit file list we downloaded in DownloadPackages

diff --git a/backends/poldek/pk-backend-poldek.c b/backends/poldek/pk-backend-poldek.c
index 17e63b2..7c255c1 100644
--- a/backends/poldek/pk-backend-poldek.c
+++ b/backends/poldek/pk-backend-poldek.c
@@ -2116,8 +2116,29 @@ backend_download_packages_thread (PkBackend *backend)
 	pd->bytesget = 0;
 	pd->bytesdownload = poldek_get_bytes_to_download (ts, pkgs);
 
-	if (!packages_fetch (poldek_get_pmctx (ts->ctx), pkgs, destdir, 1)) {
-		/* something goes wrong */
+	if (packages_fetch (poldek_get_pmctx (ts->ctx), pkgs, destdir, 1)) {
+		GString *filelist = NULL;
+		gchar *result = NULL;
+
+		filelist = g_string_new ("");
+
+		/* emit the file list we downloaded */
+		for (i = 0; i < n_array_size (pkgs); i++) {
+			struct pkg *pkg = n_array_nth (pkgs, i);
+			gchar buf[256];
+
+			if (i > 0)
+			    g_string_append_c (filelist, ';');
+
+			g_string_append_printf (filelist, "%s/%s", destdir,
+						pkg_filename (pkg, buf, sizeof(buf)));
+		}
+
+		result = g_string_free (filelist, FALSE);
+
+		pk_backend_files (backend, NULL, result);
+
+		g_free (result);
 	}
 
 	poldek_ts_free (ts);
commit e9e541e70314aadf21184fe19529807a2e7ffc27
Author: Rui Manuel da Costa Gouveia <rui.gouveia at globaltek.pt>
Date:   Sat Mar 14 20:27:13 2009 +0000

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

diff --git a/po/pt.po b/po/pt.po
index db56ad9..338053c 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -215,17 +215,17 @@ msgstr "Reinicialização da aplicação requerida por:"
 #. TRANSLATORS: a package needs to restart they system
 #: ../client/pk-console.c:572
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "Por favor, reinicie o computador para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart the session
 #: ../client/pk-console.c:575
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "Por favor, termine e volte a iniciar a sessão para completar a actualização."
 
 #. TRANSLATORS: a package needs to restart the application
 #: ../client/pk-console.c:578
 msgid "Please restart the application as it is being used."
-msgstr ""
+msgstr "Por favor, reinicie a aplicação para completar a actualização."
 
 #. TRANSLATORS: The package is already installed on the system
 #: ../client/pk-console.c:691
@@ -237,7 +237,7 @@ msgstr "O pacote %s já está instalado"
 #: ../client/pk-console.c:699
 #, c-format
 msgid "The package %s could not be installed: %s"
-msgstr ""
+msgstr "Não foi possível instalar o pacote %s: %s"
 
 #. TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows
 #: ../client/pk-console.c:724
@@ -256,19 +256,19 @@ msgstr "Erro interno: %s"
 #: ../client/pk-console.c:1360
 #, c-format
 msgid "This tool could not install the packages: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu instalar os pacotes: %s"
 
 #. TRANSLATORS: There was an error installing the files. The detailed error follows
 #: ../client/pk-console.c:759
 #, c-format
 msgid "This tool could not install the files: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu instalar os ficheiros: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:815
 #, c-format
 msgid "This tool could not remove %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu remover %s: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:838
@@ -276,7 +276,7 @@ msgstr ""
 #: ../client/pk-console.c:909
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu remover os pacotes: %s"
 
 #. TRANSLATORS: When removing, we might have to remove other dependencies
 #: ../client/pk-console.c:888
@@ -297,7 +297,7 @@ msgstr ""
 #: ../client/pk-console.c:941
 #, c-format
 msgid "This tool could not download the package %s as it could not be found"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu transferir o pacote %s pois não o conseguiu encontrar"
 
 #. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
 #: ../client/pk-console.c:972
@@ -391,7 +391,7 @@ msgstr "Pacotes para remover"
 #. TRANSLATORS: We didn't find any differences
 #: ../client/pk-console.c:1314
 msgid "No new packages need to be installed"
-msgstr ""
+msgstr "Não existem pacotes novos para instalar"
 
 #. TRANSLATORS: follows a list of packages to install
 #: ../client/pk-console.c:1320
@@ -411,7 +411,7 @@ msgstr "não encontrado."
 #. TRANSLATORS: We didn't find any packages to install
 #: ../client/pk-console.c:1347
 msgid "No packages can be found to install"
-msgstr ""
+msgstr "Não foram encontrados pacotes para instalar"
 
 #. TRANSLATORS: installing new packages from package list
 #: ../client/pk-console.c:1353
@@ -422,13 +422,13 @@ msgstr "A instalar pacotes"
 #: ../client/pk-console.c:1389
 #, c-format
 msgid "This tool could not find the update details for %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu encontrar os detalhes de actualização para %s: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1397
 #, c-format
 msgid "This tool could not get the update details for %s: %s"
-msgstr ""
+msgstr "Esta ferramenta não conseguiu obter os detalhes de actualização para %s: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
 #: ../client/pk-console.c:1443
@@ -453,7 +453,7 @@ msgstr "Sem ficheiros"
 #. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
 #: ../client/pk-console.c:1522
 msgid "Repository signature required"
-msgstr ""
+msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #: ../client/pk-console.c:1532
@@ -468,12 +468,12 @@ msgstr "A assinatura não foi aceite."
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1570
 msgid "End user license agreement required"
-msgstr ""
+msgstr "O acordo de licenciamento com o utilizador final é necessário"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the license
 #: ../client/pk-console.c:1577
 msgid "Do you agree to this license?"
-msgstr ""
+msgstr "Concorda com esta licença?"
 
 #. TRANSLATORS: This is where the user declined the license
 #: ../client/pk-console.c:1581
@@ -534,7 +534,7 @@ msgstr ""
 #. TRANSLATORS: a search type can be name, details, file, etc
 #: ../client/pk-console.c:1898
 msgid "A search type is required, e.g. name"
-msgstr ""
+msgstr "Um tipo de pesquisa é necessário. Por exemplo, nome"
 
 #. TRANSLATORS: the user needs to provide a search term
 #: ../client/pk-console.c:1904
@@ -542,7 +542,7 @@ msgstr ""
 #: ../client/pk-console.c:1920
 #: ../client/pk-console.c:1928
 msgid "A search term is required"
-msgstr ""
+msgstr "Um termo de pesquisa é necessário"
 
 #. TRANSLATORS: the search type was provided, but invalid
 #: ../client/pk-console.c:1934
@@ -552,17 +552,17 @@ msgstr "Tipo de pesquisa inválida"
 #. TRANSLATORS: the user did not specify what they wanted to install
 #: ../client/pk-console.c:1940
 msgid "A package name or filename to install is required"
-msgstr ""
+msgstr "É necessário um nome de pacote ou nome de ficheiro a instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
 #: ../client/pk-console.c:1948
 msgid "A type, key_id and package_id are required"
-msgstr ""
+msgstr "São necessários um tipo, id de chave e id de pacote"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
 #: ../client/pk-console.c:1956
 msgid "A package name to remove is required"
-msgstr ""
+msgstr "É necessário um nome de pacote para remover"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
 #: ../client/pk-console.c:1963
@@ -786,7 +786,7 @@ msgstr ""
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:137
 msgid "Please choose the correct package: "
-msgstr ""
+msgstr "Por favor, escolha o pacote correcto:"
 
 #: ../client/pk-tools-common.c:162
 #, c-format
@@ -796,7 +796,7 @@ msgstr "Por favor insira um número de 1 a %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 ""
+msgstr "Não foi possível encontrar o ficheiro"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
 #: ../contrib/command-not-found/pk-command-not-found.c:485
@@ -806,7 +806,7 @@ msgstr "Incapaz de iniciar:"
 #. 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 ""
+msgstr "Comando PackageKit não encontrado"
 
 #. 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
@@ -833,12 +833,12 @@ msgstr "Comandos semelhantes são:"
 #. TRANSLATORS: ask the user to choose a file to run
 #: ../contrib/command-not-found/pk-command-not-found.c:592
 msgid "Please choose a command to run"
-msgstr ""
+msgstr "Por favor, escolha um comando para 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 ""
+msgstr "O pacote que fornece este ficheiro é o:"
 
 #. 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
@@ -860,7 +860,7 @@ msgstr ""
 #. 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 ""
+msgstr "Por favor, escolha um pacote para instalar"
 
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/src/contents.cpp:298
@@ -909,7 +909,7 @@ msgstr "Versão"
 #. TRANSLATORS: noting found, so can't install
 #: ../contrib/browser-plugin/src/contents.cpp:344
 msgid "No packages found for your system"
-msgstr ""
+msgstr "Não foram encontrados pacotes para o seu sistema"
 
 #. TRANSLATORS: package is being installed
 #: ../contrib/browser-plugin/src/contents.cpp:349
@@ -971,7 +971,7 @@ msgstr "Mostrar a versão e terminar"
 #. TRANSLATORS: exit after we've started up, used for user profiling
 #: ../src/pk-main.c:208
 msgid "Exit after a small delay"
-msgstr ""
+msgstr "Sair depois de uma pequena pausa"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
 #: ../src/pk-main.c:211
@@ -986,7 +986,7 @@ msgstr "Serviço PackageKit"
 #. TRANSLATORS: fatal error, dbus is not running
 #: ../src/pk-main.c:263
 msgid "Cannot connect to the system bus"
-msgstr ""
+msgstr "Não foi possível ligar ao barramento do sistema"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason
 #: ../src/pk-main.c:313
commit f5af58ac390cc06dc0ca88c835ff4fb5ef8be3c8
Author: Rui Manuel da Costa Gouveia <rui.gouveia at globaltek.pt>
Date:   Sat Mar 14 12:43:19 2009 +0000

    Add Portuguese to LINGUAS file
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/LINGUAS b/po/LINGUAS
index 60e81cd..9ac6f0f 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -18,6 +18,7 @@ nb
 nl
 pa
 pl
+pt
 pt_BR
 ru
 sk
commit f7ae6e091e20bc092f326616f46d0f489961b9ca
Author: Rui Manuel da Costa Gouveia <rui.gouveia at globaltek.pt>
Date:   Sat Mar 14 12:38:03 2009 +0000

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

diff --git a/po/pt.po b/po/pt.po
index 4bed20a..db56ad9 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -11,6 +11,7 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Portuguese\n"
 "X-Poedit-Country: PORTUGAL\n"
+"X-Poedit-Basepath: /home/ruigo/src/PackageKit/po/\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #: ../client/pk-console.c:234
@@ -40,7 +41,6 @@ msgstr "Falso"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #: ../client/pk-console.c:240
-#, fuzzy
 msgid "Role"
 msgstr "Função"
 
@@ -110,9 +110,8 @@ msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
 #: ../client/pk-console.c:318
-#, fuzzy
 msgid "Parent"
-msgstr "Parent"
+msgstr "Pai"
 
 #. TRANSLATORS: this is the name of the parent group
 #: ../client/pk-console.c:321
@@ -201,17 +200,17 @@ msgstr "Desconhecido"
 #. TRANSLATORS: a package requires the system to be restarted
 #: ../client/pk-console.c:529
 msgid "System restart required by:"
-msgstr ""
+msgstr "Reinicialização do sistema requerida por:"
 
 #. TRANSLATORS: a package requires the session to be restarted
 #: ../client/pk-console.c:532
 msgid "Session restart required:"
-msgstr ""
+msgstr "Reinicialização da sessão requerida:"
 
 #. TRANSLATORS: a package requires the application to be restarted
 #: ../client/pk-console.c:535
 msgid "Application restart required by:"
-msgstr ""
+msgstr "Reinicialização da aplicação requerida por:"
 
 #. TRANSLATORS: a package needs to restart they system
 #: ../client/pk-console.c:572
@@ -494,7 +493,7 @@ msgstr ""
 #. these are commands we can use with pkcon
 #: ../client/pk-console.c:1665
 msgid "Subcommands:"
-msgstr ""
+msgstr "Sub-comandos:"
 
 #. TRANSLATORS: command line argument, if we should show debugging information
 #. TRANSLATORS: if we should show debugging data
@@ -515,7 +514,7 @@ msgstr "Mostrar a versão da aplicação e terminar"
 #. TRANSLATORS: command line argument, use a filter to narrow down results
 #: ../client/pk-console.c:1763
 msgid "Set the filter, e.g. installed"
-msgstr "Defina o filtro, exemplo, instalado"
+msgstr "Configurar o filtro, exemplo, instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
 #: ../client/pk-console.c:1766
@@ -547,9 +546,8 @@ msgstr ""
 
 #. TRANSLATORS: the search type was provided, but invalid
 #: ../client/pk-console.c:1934
-#, fuzzy
 msgid "Invalid search type"
-msgstr "Tipo de túnel inválido $TYPE"
+msgstr "Tipo de pesquisa inválida"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
 #: ../client/pk-console.c:1940
@@ -594,9 +592,8 @@ msgstr ""
 #. TRANSLATORS: The user did not specify a repository (software source) name
 #: ../client/pk-console.c:2009
 #: ../client/pk-console.c:2017
-#, fuzzy
 msgid "A repository name is required"
-msgstr "Nome de folha é obrigatório"
+msgstr "É obrigatório um nome de repositório"
 
 #. TRANSLATORS: The user didn't provide any data
 #: ../client/pk-console.c:2025
@@ -626,9 +623,8 @@ msgstr ""
 #: ../client/pk-console.c:2094
 #: ../client/pk-console.c:2102
 #: ../client/pk-generate-pack.c:241
-#, fuzzy
 msgid "A package name is required"
-msgstr "Nome de folha é obrigatório"
+msgstr "É obrigatório um nome de pacote"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
 #: ../client/pk-console.c:2086
@@ -648,9 +644,9 @@ msgstr ""
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
 #: ../client/pk-console.c:2181
-#, fuzzy, c-format
+#, c-format
 msgid "Option '%s' is not supported"
-msgstr "Não é suportada uma imagem de uma imagem."
+msgstr "A opção '%s' não é suportada"
 
 #. TRANSLATORS: User does not have permission to do this
 #: ../client/pk-console.c:2194
@@ -746,15 +742,14 @@ msgstr ""
 
 #. TRANSLATORS: The package name is being matched up to available packages
 #: ../client/pk-generate-pack.c:338
-#, fuzzy
 msgid "Finding package name."
-msgstr "Não foi disponibilizado o nome do pacote."
+msgstr "A procurar o nome do pacote."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
 #: ../client/pk-generate-pack.c:342
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find package '%s': %s"
-msgstr "Não foi possível encontrar o programa seleccionado."
+msgstr "Não foi possível encontrar o pacote '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:359
@@ -769,21 +764,19 @@ msgstr ""
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:371
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create '%s': %s"
-msgstr "não foi possível criar o %s: %s\n"
+msgstr "Não foi possível criar '%s': %s"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
 #: ../client/pk-monitor.c:143
-#, fuzzy
 msgid "PackageKit Monitor"
-msgstr "Monitor de Rede"
+msgstr "Monitorizar o PackageKit"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:118
-#, fuzzy
 msgid "The package could not be found"
-msgstr "O executável '%1' não foi encontrado."
+msgstr "O pacote não foi encontrado"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:130
@@ -796,9 +789,9 @@ msgid "Please choose the correct package: "
 msgstr ""
 
 #: ../client/pk-tools-common.c:162
-#, fuzzy, c-format
+#, c-format
 msgid "Please enter a number from 1 to %i: "
-msgstr "Por favor insira um mês de 1 a 12"
+msgstr "Por favor insira um número de 1 a %i: "
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
 #: ../contrib/command-not-found/pk-command-not-found.c:361
@@ -807,9 +800,8 @@ msgstr ""
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
 #: ../contrib/command-not-found/pk-command-not-found.c:485
-#, fuzzy
 msgid "Failed to launch:"
-msgstr "Incapaz de iniciar %s: %s"
+msgstr "Incapaz de iniciar:"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/command-not-found/pk-command-not-found.c:526
@@ -818,29 +810,25 @@ msgstr ""
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
 #: ../contrib/command-not-found/pk-command-not-found.c:548
-#, fuzzy
 msgid "Command not found."
 msgstr "Comando não encontrado."
 
 #. TRANSLATORS: tell the user what we think the command is
 #: ../contrib/command-not-found/pk-command-not-found.c:555
-#, fuzzy
 msgid "Similar command is:"
-msgstr "Comando é insensível"
+msgstr "Comando semelhante é:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
 #: ../contrib/command-not-found/pk-command-not-found.c:564
-#, fuzzy
 msgid "Run similar command:"
-msgstr "Executar um comando definido"
+msgstr "Executar um comando semelhante:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
 #: ../contrib/command-not-found/pk-command-not-found.c:576
 #: ../contrib/command-not-found/pk-command-not-found.c:585
-#, fuzzy
 msgid "Similar commands are:"
-msgstr "Existem %d mensagens semelhantes."
+msgstr "Comandos semelhantes são:"
 
 #. TRANSLATORS: ask the user to choose a file to run
 #: ../contrib/command-not-found/pk-command-not-found.c:592
@@ -876,9 +864,8 @@ msgstr ""
 
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/browser-plugin/src/contents.cpp:298
-#, fuzzy
 msgid "Getting package information..."
-msgstr "A obter a informação de %s em \"%s\""
+msgstr "A obter informação de pacotes..."
 
 #. TRANSLATORS: run an applicaiton
 #: ../contrib/browser-plugin/src/contents.cpp:304
@@ -930,18 +917,16 @@ msgid "Installing..."
 msgstr "A instalar..."
 
 #: ../data/packagekit-catalog.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Catalog"
-msgstr "A carregar o catálogo "
+msgstr "Catálogo do PackageKit"
 
 #: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Package List"
-msgstr "Reiniciar Lista de Pacotes"
+msgstr "Lista de Pacotes do PackageKit"
 
 #: ../data/packagekit-servicepack.xml.in.h:1
 msgid "PackageKit Service Pack"
-msgstr ""
+msgstr "PackageKit Service Pack"
 
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
@@ -951,7 +936,7 @@ msgstr ""
 #. TRANSLATORS: only two ways this can fail...
 #: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
-msgstr ""
+msgstr "Isto pode acontecer por duas razões:"
 
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
commit 8038f7dc9cafc77b175808c19b1679ea56e252d4
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Fri Mar 13 01:28:33 2009 -0600

    conary: add More info to callbacks

diff --git a/backends/conary/conaryBackend.py b/backends/conary/conaryBackend.py
index ad4965f..162f762 100755
--- a/backends/conary/conaryBackend.py
+++ b/backends/conary/conaryBackend.py
@@ -203,8 +203,11 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
     def _get_update(self, applyList, cache=True):
         from conary.conaryclient.update import NoNewTrovesError
         updJob = self.client.newUpdateJob()
+        log.info("get_ Job")
         try:
+            log.info("prepare updateJOb")
             suggMap = self.client.prepareUpdateJob(updJob, applyList)
+            log.info("end prepare updateJOB")
         except NoNewTrovesError:
             self.error(ERROR_NO_PACKAGES_TO_UPDATE, "No new apps were found")
         if cache:
@@ -280,8 +283,6 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
         self.allow_cancel(True)
         self.percentage(None)
         self.status(STATUS_INFO)
-        log.info(pklog)
-#        pklog.info("======== resolve =========")
         log.info("filters: %s package:%s " % (filters, package))
 
         cache = Cache()
@@ -462,7 +463,7 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
 #    @ExceptionHandler
     def refresh_cache(self):
         #log.debug("refresh-cache command ")
-        self.percentage()
+    #    self.percentage()
         self.status(STATUS_REFRESH_CACHE)
         cache = Cache()
         cache.refresh()
@@ -726,6 +727,7 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
             log.info(i[0])
         applyList = [ (x[0], (None, None), x[1:], True) for x in updateItems ]
         log.info("_get_update ....")
+        self.status(STATUS_RUNNING)
         updJob, suggMap = self._get_update(applyList)
         log.info("_get_update ....end.")
 
diff --git a/backends/conary/conaryCallback.py b/backends/conary/conaryCallback.py
index f241592..abecd4d 100644
--- a/backends/conary/conaryCallback.py
+++ b/backends/conary/conaryCallback.py
@@ -43,7 +43,7 @@ class UpdateSystemCallback(callbacks.UpdateCallback):
     #3
     def requestingChangeSet(self):
         log.info("Callback UpdateSystem........ STATUS_REQUEST changeset ")
-        self.backend.status(STATUS_DOWNLOAD)
+        self.backend.status(STATUS_REQUEST)
         self.backend.percentage(self.progress.percent)
         log.info(self.progress.percent)
         if not self.disablepercent:
@@ -136,7 +136,8 @@ class UpdateSystemCallback(callbacks.UpdateCallback):
     def creatingDatabaseTransaction(self, troveNum, troveCount):
         self.backend.percentage(self.progress.percent)
         log.info(self.progress.percent)
-        self.preparingUpdate(troveNum, troveCount, add=troveCount)
+        self.backend.status(STATUS_COMMIT)
+        #self.preparingUpdate(troveNum, troveCount, add=troveCount)
 
     def committingTransaction(self):
         #self.backend.status('Committing Transaction')
@@ -327,13 +328,18 @@ class UpdateCallback(callbacks.UpdateCallback):
         newVersion, newFlavor = job[2]
         #log.info("JOB>>>>>>>> %s " % str(job) )
         if oldVersion and newVersion:
-            log.info("Callback ........ STATUS_UPDATE preparing Update ")
+            log.info("pU.. status Update")
             self.backend.status(STATUS_UPDATE)
             package_id = self.backend.get_package_id(name, newVersion, newFlavor)
             self.backend.package(package_id, INFO_UPDATING, '')
+        elif oldVersion and not newVersion:
+            self.backend.status(STATUS_REMOVE)
+            log.info("pU.. status remove")
+            package_id = self.backend.get_package_id(name, oldVersion, oldFlavor)
+            self.backend.package(package_id, INFO_REMOVING, '')
         elif not oldVersion and newVersion:
-            log.info("Callback ........ STATUS_INSTALL preparing Update")
-            self.backend.status(STATUS_INSTALL)
+            #self.backend.status(STATUS_INSTALL)
+            log.info("pU.. status install")
             package_id = self.backend.get_package_id(name, newVersion, newFlavor)
             self.backend.package(package_id, INFO_INSTALLING, '')
         log.info(self.progress.percent)
@@ -342,7 +348,8 @@ class UpdateCallback(callbacks.UpdateCallback):
         log.info("callback. .......... creating Database Transactions")
         self.backend.percentage(self.progress.percent)
         log.info(self.progress.percent)
-        self.preparingUpdate(troveNum, troveCount, add=troveCount)
+        self.backend.status(STATUS_COMMIT)
+     #   self.preparingUpdate(troveNum, troveCount, add=troveCount)
 
     # 9
     def committingTransaction(self):
commit dfb3ad1491e5dd8eb2a9d14402463d6f9f3ad2a5
Merge: 0c03dc4... e92388b...
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Thu Mar 12 01:39:17 2009 -0600

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

commit e92388b32a07b85a3a5f5f3ad7761e0396742da2
Author: Rui Manuel da Costa Gouveia <rui.gouveia at globaltek.pt>
Date:   Thu Mar 12 01:27:39 2009 +0000

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

diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 0000000..4bed20a
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,1011 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: packagekit\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-03-11 21:41+0000\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Rui Gouveia <rui.gouveia at globaltek.pt>\n"
+"Language-Team: pt <fedora-trans-pt 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: Portuguese\n"
+"X-Poedit-Country: PORTUGAL\n"
+
+#. TRANSLATORS: this is an atomic transaction
+#: ../client/pk-console.c:234
+msgid "Transaction"
+msgstr "Transacção"
+
+#. TRANSLATORS: this is the time the transaction was started in system timezone
+#: ../client/pk-console.c:236
+msgid "System time"
+msgstr "Hora do sistema"
+
+#. TRANSLATORS: this is if the transaction succeeded or not
+#: ../client/pk-console.c:238
+msgid "Succeeded"
+msgstr "Sucesso"
+
+#. TRANSLATORS: if the repo is enabled
+#: ../client/pk-console.c:238
+#: ../client/pk-console.c:405
+msgid "True"
+msgstr "Verdadeiro"
+
+#: ../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:240
+#, fuzzy
+msgid "Role"
+msgstr "Função"
+
+#. TRANSLATORS: this is The duration of the transaction
+#: ../client/pk-console.c:245
+msgid "Duration"
+msgstr "Duração"
+
+#: ../client/pk-console.c:245
+msgid "(seconds)"
+msgstr "(segundos)"
+
+#. TRANSLATORS: this is The command line used to do the action
+#: ../client/pk-console.c:249
+msgid "Command line"
+msgstr "Linha de comando"
+
+#. TRANSLATORS: this is the user ID of the user that started the action
+#: ../client/pk-console.c:251
+msgid "User ID"
+msgstr "ID de Utilizador"
+
+#. TRANSLATORS: this is the username, e.g. hughsie
+#: ../client/pk-console.c:258
+msgid "Username"
+msgstr "Nome do utilizador"
+
+#. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
+#: ../client/pk-console.c:262
+msgid "Real name"
+msgstr "Nome real"
+
+#: ../client/pk-console.c:270
+msgid "Affected packages:"
+msgstr "Pacotes afectados"
+
+#: ../client/pk-console.c:272
+msgid "Affected packages: None"
+msgstr "Pacotes afectados: Nenhum"
+
+#. TRANSLATORS: this is the distro, e.g. Fedora 10
+#: ../client/pk-console.c:297
+msgid "Distribution"
+msgstr "Distribuição"
+
+#. TRANSLATORS: this is type of update, stable or testing
+#: ../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:301
+#: ../client/pk-console.c:324
+msgid "Summary"
+msgstr "Sumário"
+
+#. TRANSLATORS: this is the group category name
+#: ../client/pk-console.c:313
+msgid "Category"
+msgstr "Categori­a"
+
+#. TRANSLATORS: this is group identifier
+#: ../client/pk-console.c:315
+msgid "ID"
+msgstr "ID"
+
+#. TRANSLATORS: this is the parent group
+#: ../client/pk-console.c:318
+#, fuzzy
+msgid "Parent"
+msgstr "Parent"
+
+#. TRANSLATORS: this is the name of the parent group
+#: ../client/pk-console.c:321
+msgid "Name"
+msgstr "Nome"
+
+#. TRANSLATORS: this is preferred icon for the group
+#: ../client/pk-console.c:327
+msgid "Icon"
+msgstr "Ícone"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:342
+msgid "Details about the update:"
+msgstr "Detalhes acerca da actualização:"
+
+#. TRANSLATORS: details about the update, package name and version
+#: ../client/pk-console.c:344
+msgid "Package"
+msgstr "Pacote"
+
+#. TRANSLATORS: details about the update, any packages that this update updates
+#: ../client/pk-console.c:347
+msgid "Updates"
+msgstr "Actualizações"
+
+#. TRANSLATORS: details about the update, any packages that this update obsoletes
+#: ../client/pk-console.c:351
+msgid "Obsoletes"
+msgstr "Torna absoleto"
+
+#. TRANSLATORS: details about the update, the vendor URLs
+#: ../client/pk-console.c:355
+msgid "Vendor"
+msgstr "Fabricante"
+
+#. TRANSLATORS: details about the update, the bugzilla URLs
+#: ../client/pk-console.c:359
+msgid "Bugzilla"
+msgstr "Bugzilla"
+
+#. TRANSLATORS: details about the update, the CVE URLs
+#: ../client/pk-console.c:363
+msgid "CVE"
+msgstr "CVE"
+
+#. TRANSLATORS: details about the update, if the package requires a restart
+#: ../client/pk-console.c:367
+msgid "Restart"
+msgstr "Reiniciar"
+
+#. TRANSLATORS: details about the update, any description of the update
+#: ../client/pk-console.c:371
+msgid "Update text"
+msgstr "Actualizar texto"
+
+#. TRANSLATORS: details about the update, the changelog for the package
+#: ../client/pk-console.c:375
+msgid "Changes"
+msgstr "Alterações"
+
+#. TRANSLATORS: details about the update, the ongoing state of the update
+#: ../client/pk-console.c:379
+msgid "State"
+msgstr "Estado"
+
+#. TRANSLATORS: details about the update, date the update was issued
+#: ../client/pk-console.c:384
+msgid "Issued"
+msgstr "Emitido"
+
+#. TRANSLATORS: details about the update, date the update was updated
+#: ../client/pk-console.c:389
+msgid "Updated"
+msgstr "Actualizado"
+
+#: ../client/pk-console.c:476
+#: ../client/pk-console.c:478
+msgid "Percentage"
+msgstr "Percentagem"
+
+#: ../client/pk-console.c:478
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#. TRANSLATORS: a package requires the system to be restarted
+#: ../client/pk-console.c:529
+msgid "System restart required by:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the session to be restarted
+#: ../client/pk-console.c:532
+msgid "Session restart required:"
+msgstr ""
+
+#. TRANSLATORS: a package requires the application to be restarted
+#: ../client/pk-console.c:535
+msgid "Application restart required by:"
+msgstr ""
+
+#. TRANSLATORS: a package needs to restart they system
+#: ../client/pk-console.c:572
+msgid "Please restart the computer to complete the update."
+msgstr ""
+
+#. TRANSLATORS: a package needs to restart the session
+#: ../client/pk-console.c:575
+msgid "Please logout and login to complete the update."
+msgstr ""
+
+#. TRANSLATORS: a package needs to restart the application
+#: ../client/pk-console.c:578
+msgid "Please restart the application as it is being used."
+msgstr ""
+
+#. TRANSLATORS: The package is already installed on the system
+#: ../client/pk-console.c:691
+#, c-format
+msgid "The package %s is already installed"
+msgstr "O pacote %s já está instalado"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:699
+#, c-format
+msgid "The package %s could not be installed: %s"
+msgstr ""
+
+#. 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-tools-common.c:89
+#, c-format
+msgid "Internal error: %s"
+msgstr "Erro interno: %s"
+
+#. TRANSLATORS: There was an error installing the packages. The detailed error follows
+#: ../client/pk-console.c:732
+#: ../client/pk-console.c:1360
+#, c-format
+msgid "This tool could not install the packages: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error installing the files. The detailed error follows
+#: ../client/pk-console.c:759
+#, c-format
+msgid "This tool could not install the files: %s"
+msgstr ""
+
+#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
+#: ../client/pk-console.c:815
+#, c-format
+msgid "This tool could not remove %s: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:838
+#: ../client/pk-console.c:876
+#: ../client/pk-console.c:909
+#, c-format
+msgid "This tool could not remove the packages: %s"
+msgstr ""
+
+#. TRANSLATORS: When removing, we might have to remove other dependencies
+#: ../client/pk-console.c:888
+msgid "The following packages have to be removed:"
+msgstr "Os seguintes pacotes precisam de ser removidos:"
+
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:895
+msgid "Proceed removing additional packages?"
+msgstr ""
+
+#. TRANSLATORS: We did not remove any packages
+#: ../client/pk-console.c:900
+msgid "The package removal was canceled!"
+msgstr ""
+
+#. TRANSLATORS: The package name was not found in any software sources
+#: ../client/pk-console.c:941
+#, c-format
+msgid "This tool could not download the package %s as it could not be found"
+msgstr ""
+
+#. TRANSLATORS: Could not download the packages for some reason. The detailed error follows
+#: ../client/pk-console.c:972
+#, c-format
+msgid "This tool could not download the packages: %s"
+msgstr ""
+
+#. 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
+#, c-format
+msgid "This tool could not update %s: %s"
+msgstr "Esta ferramenta não conseguiu 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
+#, c-format
+msgid "This tool could not get the requirements for %s: %s"
+msgstr ""
+
+#. 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
+#, c-format
+msgid "This tool could not get the dependencies for %s: %s"
+msgstr ""
+
+#. 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
+#, c-format
+msgid "This tool could not get package details for %s: %s"
+msgstr ""
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1120
+#, c-format
+msgid "This tool could not find the files for %s: %s"
+msgstr "Esta ferramenta não conseguiu encontrar os ficheiros para %s: %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:1128
+#, c-format
+msgid "This tool could not get the file list for %s: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error getting the list of packages. The filename follows
+#: ../client/pk-console.c:1150
+#, c-format
+msgid "File already exists: %s"
+msgstr "Ficheiro já existe: %s"
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1155
+#: ../client/pk-console.c:1211
+#: ../client/pk-console.c:1286
+msgid "Getting package list"
+msgstr "A obter lista de pacotes"
+
+#. TRANSLATORS: There was an error getting the list of packages. The detailed error follows
+#: ../client/pk-console.c:1161
+#: ../client/pk-console.c:1217
+#: ../client/pk-console.c:1292
+#, c-format
+msgid "This tool could not get package list: %s"
+msgstr ""
+
+#. TRANSLATORS: There was an error saving the list
+#: ../client/pk-console.c:1172
+msgid "Failed to save to disk"
+msgstr "A gravação para disco falhou"
+
+#. TRANSLATORS: There was an error getting the list. The filename follows
+#: ../client/pk-console.c:1206
+#: ../client/pk-console.c:1281
+#, c-format
+msgid "File does not exist: %s"
+msgstr "Ficheiro não existe: %s"
+
+#. TRANSLATORS: header to a list of packages newly added
+#: ../client/pk-console.c:1238
+msgid "Packages to add"
+msgstr "Pacotes para adicionar"
+
+#. TRANSLATORS: header to a list of packages removed
+#: ../client/pk-console.c:1246
+msgid "Packages to remove"
+msgstr "Pacotes para remover"
+
+#. TRANSLATORS: We didn't find any differences
+#: ../client/pk-console.c:1314
+msgid "No new packages need to be installed"
+msgstr ""
+
+#. TRANSLATORS: follows a list of packages to install
+#: ../client/pk-console.c:1320
+msgid "To install"
+msgstr "Para instalar"
+
+#. TRANSLATORS: searching takes some time....
+#: ../client/pk-console.c:1332
+msgid "Searching for package: "
+msgstr "Pesquisar por pacote:"
+
+#. TRANSLATORS: package was not found -- this is the end of a string ended in ...
+#: ../client/pk-console.c:1336
+msgid "not found."
+msgstr "não encontrado."
+
+#. TRANSLATORS: We didn't find any packages to install
+#: ../client/pk-console.c:1347
+msgid "No packages can be found to install"
+msgstr ""
+
+#. TRANSLATORS: installing new packages from package list
+#: ../client/pk-console.c:1353
+msgid "Installing packages"
+msgstr "A instalar pacotes"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:1389
+#, c-format
+msgid "This tool could not find the update details for %s: %s"
+msgstr ""
+
+#. 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 ""
+
+#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
+#: ../client/pk-console.c:1443
+msgid "Error:"
+msgstr "Erro:"
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:1457
+msgid "Package description"
+msgstr "Descrição do pacote"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:1491
+msgid "Package files"
+msgstr "Ficheiros do pacote"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:1499
+msgid "No files"
+msgstr "Sem ficheiros"
+
+#. TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later
+#: ../client/pk-console.c:1522
+msgid "Repository signature required"
+msgstr ""
+
+#. TRANSLATORS: This a prompt asking the user to import the security key
+#: ../client/pk-console.c:1532
+msgid "Do you accept this signature?"
+msgstr "Aceita esta assinatura?"
+
+#. TRANSLATORS: This is where the user declined the security key
+#: ../client/pk-console.c:1536
+msgid "The signature was not accepted."
+msgstr "A assinatura não foi aceite."
+
+#. TRANSLATORS: This a request for a EULA
+#: ../client/pk-console.c:1570
+msgid "End user license agreement required"
+msgstr ""
+
+#. TRANSLATORS: This a prompt asking the user to agree to the license
+#: ../client/pk-console.c:1577
+msgid "Do you agree to this license?"
+msgstr ""
+
+#. TRANSLATORS: This is where the user declined the license
+#: ../client/pk-console.c:1581
+msgid "The license was refused."
+msgstr "A licença foi recusada."
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
+#: ../client/pk-console.c:1610
+msgid "The daemon crashed mid-transaction!"
+msgstr ""
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1663
+msgid "PackageKit Console Interface"
+msgstr ""
+
+#. these are commands we can use with pkcon
+#: ../client/pk-console.c:1665
+msgid "Subcommands:"
+msgstr ""
+
+#. 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-monitor.c:125
+#: ../contrib/command-not-found/pk-command-not-found.c:510
+#: ../src/pk-main.c:199
+msgid "Show extra debugging information"
+msgstr "Mostrar informação de depuração adicional"
+
+#. TRANSLATORS: command line argument, just show the version string
+#: ../client/pk-console.c:1760
+#: ../client/pk-monitor.c:127
+msgid "Show the program version and exit"
+msgstr "Mostrar a versão da aplicação e terminar"
+
+#. TRANSLATORS: command line argument, use a filter to narrow down results
+#: ../client/pk-console.c:1763
+msgid "Set the filter, e.g. installed"
+msgstr "Defina o filtro, exemplo, instalado"
+
+#. TRANSLATORS: command line argument, work asynchronously
+#: ../client/pk-console.c:1766
+msgid "Exit without waiting for actions to complete"
+msgstr ""
+
+#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
+#: ../client/pk-console.c:1793
+msgid "This tool could not connect to system DBUS."
+msgstr ""
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1880
+msgid "The filter specified was invalid"
+msgstr ""
+
+#. TRANSLATORS: a search type can be name, details, file, etc
+#: ../client/pk-console.c:1898
+msgid "A search type is required, e.g. name"
+msgstr ""
+
+#. 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
+msgid "A search term is required"
+msgstr ""
+
+#. TRANSLATORS: the search type was provided, but invalid
+#: ../client/pk-console.c:1934
+#, fuzzy
+msgid "Invalid search type"
+msgstr "Tipo de túnel inválido $TYPE"
+
+#. TRANSLATORS: the user did not specify what they wanted to install
+#: ../client/pk-console.c:1940
+msgid "A package name or filename to install is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1948
+msgid "A type, key_id and package_id are required"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify what they wanted to remove
+#: ../client/pk-console.c:1956
+msgid "A package name to remove is required"
+msgstr ""
+
+#. TRANSLATORS: the user did not specify anything about what to download or where
+#: ../client/pk-console.c:1963
+msgid "A destination directory and then the package names to download are required"
+msgstr ""
+
+#. TRANSLATORS: the directory does not exist, so we can't continue
+#: ../client/pk-console.c:1969
+msgid "Directory not found"
+msgstr "Directório não encontrado"
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1976
+msgid "A licence identifier (eula-id) is required"
+msgstr ""
+
+#. TRANSLATORS: geeky error, 99.9999% of users won't see this
+#: ../client/pk-console.c:1985
+msgid "A transaction identifier (tid) is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a package name
+#: ../client/pk-console.c:2001
+msgid "A package name to resolve is required"
+msgstr ""
+
+#. TRANSLATORS: The user did not specify a repository (software source) name
+#: ../client/pk-console.c:2009
+#: ../client/pk-console.c:2017
+#, fuzzy
+msgid "A repository name is required"
+msgstr "Nome de folha é obrigatório"
+
+#. TRANSLATORS: The user didn't provide any data
+#: ../client/pk-console.c:2025
+msgid "A repo name, parameter and value are required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify what action to use
+#: ../client/pk-console.c:2038
+msgid "An action, e.g. 'update-system' is required"
+msgstr ""
+
+#. TRANSLATORS: The user specified an invalid action
+#: ../client/pk-console.c:2044
+msgid "A correct role is required"
+msgstr ""
+
+#. TRANSLATORS: we keep a database updated with the time that an action was last executed
+#: ../client/pk-console.c:2050
+msgid "Failed to get the time since this action was last completed"
+msgstr ""
+
+#. TRANSLATORS: The user did not provide a package name
+#. TRANSLATORS: This is when the user fails to supply the package name
+#: ../client/pk-console.c: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
+#, fuzzy
+msgid "A package name is required"
+msgstr "Nome de folha é obrigatório"
+
+#. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
+#: ../client/pk-console.c:2086
+msgid "A package provide string is required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify a filename to create as a list
+#: ../client/pk-console.c:2110
+msgid "A list file name to create is required"
+msgstr ""
+
+#. TRANSLATORS: The user didn't specify a filename to open as a list
+#: ../client/pk-console.c:2119
+#: ../client/pk-console.c:2128
+msgid "A list file to open is required"
+msgstr ""
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command line
+#: ../client/pk-console.c:2181
+#, fuzzy, c-format
+msgid "Option '%s' is not supported"
+msgstr "Não é suportada uma imagem de uma imagem."
+
+#. TRANSLATORS: User does not have permission to do this
+#: ../client/pk-console.c:2194
+msgid "Incorrect privileges for this operation"
+msgstr ""
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:2197
+msgid "Command failed"
+msgstr "Comando falhou"
+
+#. TRANSLATORS: This is the state of the transaction
+#: ../client/pk-generate-pack.c:101
+msgid "Downloading"
+msgstr "A transferir"
+
+#. TRANSLATORS: This is when the main packages are being downloaded
+#: ../client/pk-generate-pack.c:121
+msgid "Downloading packages"
+msgstr "A transferir pacotes"
+
+#. TRANSLATORS: This is when the dependency packages are being downloaded
+#: ../client/pk-generate-pack.c:126
+msgid "Downloading dependencies"
+msgstr "A transferir dependências"
+
+#. 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 ""
+
+#. TRANSLATORS: the output location
+#: ../client/pk-generate-pack.c:191
+msgid "The output file or directory (the current directory is used if ommitted)"
+msgstr ""
+
+#. TRANSLATORS: put a list of packages in the pack
+#: ../client/pk-generate-pack.c:194
+msgid "The package to be put into the service pack"
+msgstr ""
+
+#. TRANSLATORS: put all pending updates in the pack
+#: ../client/pk-generate-pack.c:197
+msgid "Put all updates available in the service pack"
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:225
+msgid "Neither --package or --updates option selected."
+msgstr ""
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:233
+msgid "Both options selected."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:301
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr ""
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:304
+msgid "The pack was not overwritten."
+msgstr ""
+
+#. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
+#: ../client/pk-generate-pack.c:317
+msgid "Failed to create directory:"
+msgstr "Criação da directoria falhou:"
+
+#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
+#: ../client/pk-generate-pack.c:327
+msgid "Failed to open package list."
+msgstr ""
+
+#. TRANSLATORS: The package name is being matched up to available packages
+#: ../client/pk-generate-pack.c:338
+#, fuzzy
+msgid "Finding package name."
+msgstr "Não foi disponibilizado o nome do pacote."
+
+#. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
+#: ../client/pk-generate-pack.c:342
+#, fuzzy, c-format
+msgid "Failed to find package '%s': %s"
+msgstr "Não foi possível encontrar o programa seleccionado."
+
+#. TRANSLATORS: This is telling the user we are in the process of making the pack
+#: ../client/pk-generate-pack.c:359
+msgid "Creating service pack..."
+msgstr ""
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:366
+#, c-format
+msgid "Service pack created '%s'"
+msgstr ""
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:371
+#, fuzzy, c-format
+msgid "Failed to create '%s': %s"
+msgstr "não foi possível criar o %s: %s\n"
+
+#. TRANSLATORS: this is a program that monitors PackageKit
+#: ../client/pk-monitor.c:143
+#, fuzzy
+msgid "PackageKit Monitor"
+msgstr "Monitor de Rede"
+
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:118
+#, fuzzy
+msgid "The package could not be found"
+msgstr "O executável '%1' não foi encontrado."
+
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-tools-common.c:130
+msgid "More than one package matches:"
+msgstr ""
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:137
+msgid "Please choose the correct package: "
+msgstr ""
+
+#: ../client/pk-tools-common.c:162
+#, fuzzy, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Por favor insira um mês de 1 a 12"
+
+#. 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 ""
+
+#. TRANSLATORS: we failed to launch the executable, the error follows
+#: ../contrib/command-not-found/pk-command-not-found.c:485
+#, fuzzy
+msgid "Failed to launch:"
+msgstr "Incapaz de iniciar %s: %s"
+
+#. 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 ""
+
+#. TRANSLATORS: the prefix of all the output telling the user why it's not executing
+#: ../contrib/command-not-found/pk-command-not-found.c:548
+#, fuzzy
+msgid "Command not found."
+msgstr "Comando não encontrado."
+
+#. TRANSLATORS: tell the user what we think the command is
+#: ../contrib/command-not-found/pk-command-not-found.c:555
+#, fuzzy
+msgid "Similar command is:"
+msgstr "Comando é insensível"
+
+#. TRANSLATORS: Ask the user if we should run the similar command
+#: ../contrib/command-not-found/pk-command-not-found.c:564
+#, fuzzy
+msgid "Run similar command:"
+msgstr "Executar um comando definido"
+
+#. TRANSLATORS: show the user a list of commands that they could have meant
+#. TRANSLATORS: show the user a list of commands we could run
+#: ../contrib/command-not-found/pk-command-not-found.c:576
+#: ../contrib/command-not-found/pk-command-not-found.c:585
+#, fuzzy
+msgid "Similar commands are:"
+msgstr "Existem %d mensagens semelhantes."
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/browser-plugin/src/contents.cpp:298
+#, fuzzy
+msgid "Getting package information..."
+msgstr "A obter a informação de %s em \"%s\""
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/browser-plugin/src/contents.cpp:304
+#, c-format
+msgid "Run %s"
+msgstr "Executar %s"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/browser-plugin/src/contents.cpp:310
+msgid "Installed version"
+msgstr "Versão instalada"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/src/contents.cpp:318
+#, c-format
+msgid "Run version %s now"
+msgstr "Executar a versão %s agora"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/browser-plugin/src/contents.cpp:324
+msgid "Run now"
+msgstr "Executar agora"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/browser-plugin/src/contents.cpp:330
+#, c-format
+msgid "Update to version %s"
+msgstr "Actualizar para a versão %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/browser-plugin/src/contents.cpp:336
+#, c-format
+msgid "Install %s now"
+msgstr "Instalar %s agora"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/browser-plugin/src/contents.cpp:339
+msgid "Version"
+msgstr "Versão"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/browser-plugin/src/contents.cpp:344
+msgid "No packages found for your system"
+msgstr ""
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/browser-plugin/src/contents.cpp:349
+msgid "Installing..."
+msgstr "A instalar..."
+
+#: ../data/packagekit-catalog.xml.in.h:1
+#, fuzzy
+msgid "PackageKit Catalog"
+msgstr "A carregar o catálogo "
+
+#: ../data/packagekit-package-list.xml.in.h:1
+#, fuzzy
+msgid "PackageKit Package List"
+msgstr "Reiniciar Lista de Pacotes"
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr ""
+
+#. TRANSLATORS: failed due to DBus security
+#: ../src/pk-main.c:87
+msgid "Startup failed due to security policies on this machine."
+msgstr ""
+
+#. TRANSLATORS: only two ways this can fail...
+#: ../src/pk-main.c:89
+msgid "This can happen for two reasons:"
+msgstr ""
+
+#. TRANSLATORS: only allowed to be owned by root
+#: ../src/pk-main.c:91
+msgid "The correct user is not launching the executable (usually root)"
+msgstr ""
+
+#. TRANSLATORS: or we are installed in a prefix
+#: ../src/pk-main.c:93
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr ""
+
+#. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
+#: ../src/pk-main.c:193
+msgid "Packaging backend to use, e.g. dummy"
+msgstr ""
+
+#. TRANSLATORS: if we should run in the background
+#: ../src/pk-main.c:196
+msgid "Daemonize and detach from the terminal"
+msgstr ""
+
+#. TRANSLATORS: if we should not monitor how long we are inactive for
+#: ../src/pk-main.c:202
+msgid "Disable the idle timer"
+msgstr ""
+
+#. TRANSLATORS: show version
+#: ../src/pk-main.c:205
+msgid "Show version and exit"
+msgstr "Mostrar a versão e terminar"
+
+#. TRANSLATORS: exit after we've started up, used for user profiling
+#: ../src/pk-main.c:208
+msgid "Exit after a small delay"
+msgstr ""
+
+#. TRANSLATORS: exit straight away, used for automatic profiling
+#: ../src/pk-main.c:211
+msgid "Exit after the engine has loaded"
+msgstr ""
+
+#. TRANSLATORS: describing the service that is running
+#: ../src/pk-main.c:226
+msgid "PackageKit service"
+msgstr "Serviço PackageKit"
+
+#. TRANSLATORS: fatal error, dbus is not running
+#: ../src/pk-main.c:263
+msgid "Cannot connect to the system bus"
+msgstr ""
+
+#. TRANSLATORS: cannot register on system bus, unknown reason
+#: ../src/pk-main.c:313
+#, c-format
+msgid "Error trying to start: %s\n"
+msgstr "Erro ao tentar iniciar: %s\n"
+
commit 269abba34ed3a69e47ef709456a13561c1ab280d
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Mar 11 13:41:48 2009 -0300

    Made Transaction::cancel() a slot

diff --git a/lib/packagekit-qt/src/CMakeLists.txt b/lib/packagekit-qt/src/CMakeLists.txt
index c463a78..30f23e1 100644
--- a/lib/packagekit-qt/src/CMakeLists.txt
+++ b/lib/packagekit-qt/src/CMakeLists.txt
@@ -34,7 +34,7 @@ set( lib_SRCS
 QT4_AUTOMOC(${lib_SRCS})
 
 add_library(packagekit-qt SHARED ${lib_SRCS})
-set_target_properties( packagekit-qt PROPERTIES VERSION 4.1 SOVERSION 0 )
+set_target_properties( packagekit-qt PROPERTIES VERSION 4.2 SOVERSION 0 )
 
 target_link_libraries(packagekit-qt
   ${QT_QTCORE_LIBRARY}
diff --git a/lib/packagekit-qt/src/transaction.h b/lib/packagekit-qt/src/transaction.h
index 39993c4..d2f91c8 100644
--- a/lib/packagekit-qt/src/transaction.h
+++ b/lib/packagekit-qt/src/transaction.h
@@ -85,11 +85,6 @@ public:
 	bool callerActive();
 
 	/**
-	 * Cancels the transaction
-	 */
-	void cancel();
-
-	/**
 	 * Returns the last package processed by the transaction
 	 *
 	 * This is mostly used when getting an already existing Transaction, to
@@ -243,6 +238,12 @@ public:
 		UnknownExitStatus = -1
 	} ExitStatus;
 
+public Q_SLOTS:
+	/**
+	 * Cancels the transaction
+	 */
+	void cancel();
+
 Q_SIGNALS:
 	/**
 	 * The transaction has changed it's "cancellability"
commit 788d05057236812a38ab435a2a952a05eeae398a
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Mar 11 16:00:01 2009 +0000

    yum: replace the hardcoded comps->groups map with a config file

diff --git a/backends/yum/Makefile.am b/backends/yum/Makefile.am
index 5a42e58..a91c5b0 100644
--- a/backends/yum/Makefile.am
+++ b/backends/yum/Makefile.am
@@ -1,5 +1,6 @@
 helperdir = $(datadir)/PackageKit/helpers/yum
 dist_helper_DATA = 			\
+	yum-comps-groups.conf		\
 	yumBackend.py			\
 	yumComps.py			\
 	yumFilter.py
diff --git a/backends/yum/yum-comps-groups.conf b/backends/yum/yum-comps-groups.conf
new file mode 100644
index 0000000..09d22d0
--- /dev/null
+++ b/backends/yum/yum-comps-groups.conf
@@ -0,0 +1,21 @@
+[PackageKit Comps Mapping]
+admin-tools=base-system;system-tools,base-system;admin-tools,rpmfusion_free;hardware-support
+desktop-gnome=rpmfusion_free;gnome-desktop,desktops;gnome-desktop
+desktop-kde=desktops;kde-desktop,rpmfusion_free;kde-desktop
+desktop-other=desktops;window-managers,desktops;sugar-desktop,desktops;lxde-desktop,desktops;xfce-desktop
+education=apps;education
+fonts=base-system;fonts,base-system;legacy-fonts
+games=apps;games,rpmfusion_free;games,rpmfusion_nonfree;games
+graphics=apps;graphics
+internet=apps;text-internet,apps;graphical-internet,rpmfusion_free;internet
+legacy=base-system;legacy-software-support
+localization=base-system;input-methods,language-support;khmer-support,language-support;persian-support,language-support;georgian-support,language-support;malay-support,language-support;tonga-support,language-support;portuguese-support,language-support;japanese-support,language-support;hungarian-support,language-support;somali-support,language-support;punjabi-support,language-support;bhutanese-support,language-support;british-support,language-support;korean-support,language-support;lao-support,language-support;inuktitut-support,language-support;german-support,language-support;hindi-support,language-support;faeroese-support,language-support;swedish-support,language-support;tsonga-support,language-support;russian-support,language-support;serbian-support,language-support;latvian-support,language-support;samoan-support,language-support;sinhala-support,language-support;catalan-support,language-support;lithuanian-support,language-support;turkish-support,language-support;arabic-support,language-support;vietnamese-support,language-support;mongolian-support,language-support;tswana-support,language-support;irish-support,language-support;italian-support,language-support;slovak-support,language-support;slovenian-support,language-support;belarusian-support,language-support;northern-sotho-support,language-support;kannada-support,language-support;malayalam-support,language-support;swati-support,language-support;breton-support,language-support;romanian-support,language-support;greek-support,language-support;tagalog-support,language-support;zulu-support,language-support;tibetan-support,language-support;danish-support,language-support;afrikaans-support,language-support;southern-sotho-support,language-support;bosnian-support,language-support;brazilian-support,language-support;basque-support,language-support;welsh-support,language-support;thai-support,language-support;telugu-support,language-support;low-saxon-support,language-support;urdu-support,language-support;tamil-support,language-support;indonesian-support,language-support;gujarati-support,language-support;xhosa-support,language-support;chinese-support,language-support;czech-support,language-support;venda-support,language-support;bulgarian-support,language-support;albanian-support,language-support;galician-support,language-support;armenian-support,language-support;dutch-support,language-support;oriya-support,language-support;maori-support,language-support;nepali-support,language-support;icelandic-support,language-support;ukrainian-support,language-support;assamese-support,language-support;bengali-support,language-support;spanish-support,language-support;hebrew-support,language-support;estonian-support,language-support;french-support,language-support;croatian-support,language-support;filipino-support,language-support;finnish-support,language-support;norwegian-support,language-support;southern-ndebele-support,language-support;polish-support,language-support;gaelic-support,language-support;marathi-support,language-support;ethiopic-support,language-support;esperanto-support,language-support;northern-sami-support,language-support;macedonian-support,language-support;walloon-support,language-support;kashubian-support,language-support;kashmiri-support,language-support;konkani-support,language-support;tajik-support,language-support;sindhi-support,language-support;uzbek-support,language-support;burmese-support,language-support;maithili-support,rpmfusion_free;misc-tools
+multimedia=apps;sound-and-video,rpmfusion_free;sound-and-video
+office=apps;office,apps;editors
+other=apps;engineering-and-scientific,rpmfusion_free;misc-libs,rpmfusion_nonfree;emulators
+programming=development;haskell,development;kde-software-development,development;gnome-software-development,development;development-tools,development;eclipse,development;development-libs,development;x-software-development,development;web-development,development;legacy-software-development,development;ruby,development;java-development,development;xfce-software-development,development;fedora-packager
+publishing=apps;authoring-and-publishing
+servers=servers;clustering,servers;dns-server,servers;server-cfg,servers;news-server,servers;web-server,servers;smb-server,servers;sql-server,servers;ftp-server,servers;printing,servers;mysql,servers;mail-server,servers;network-server,servers;legacy-network-server
+system=base-system;java,base-system;base-x,base-system;hardware-support,base-system;dial-up,base-system;base,rpmfusion_free;base,rpmfusion_free;system-tools,rpmfusion_nonfree;hardware-support,rpmfusion_nonfree;misc-tools,rpmfusion_nonfree;base
+virtualization=base-system;virtualization
+
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 9b47614..610b374 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -328,6 +328,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         fltlist = filters.split(';')
         pkgfilter = YumFilter(fltlist)
         package_list = []
+        keys = key.split(' ')
 
         # get collection objects
         if FILTER_NOT_COLLECTIONS not in fltlist:
@@ -338,7 +339,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             installed = []
             available = []
             try:
-                res = self.yumbase.searchGenerator(searchlist, [key])
+                res = self.yumbase.searchGenerator(searchlist, keys)
                 for (pkg, inst) in res:
                     if pkg.repo.id == 'installed':
                         installed.append(pkg)
diff --git a/backends/yum/yumComps.py b/backends/yum/yumComps.py
index 069f163..3638448 100755
--- a/backends/yum/yumComps.py
+++ b/backends/yum/yumComps.py
@@ -23,180 +23,6 @@ import sqlite3
 import os
 import yum
 
-groupMap = {
-'desktops;gnome-desktop'                      : GROUP_DESKTOP_GNOME,
-'desktops;window-managers'                    : GROUP_DESKTOP_OTHER,
-'desktops;sugar-desktop'                      : GROUP_DESKTOP_OTHER,
-'desktops;lxde-desktop'                       : GROUP_DESKTOP_OTHER,
-'desktops;kde-desktop'                        : GROUP_DESKTOP_KDE,
-'desktops;xfce-desktop'                       : GROUP_DESKTOP_XFCE,
-'apps;authoring-and-publishing'               : GROUP_PUBLISHING,
-'apps;office'                                 : GROUP_OFFICE,
-'apps;sound-and-video'                        : GROUP_MULTIMEDIA,
-'apps;editors'                                : GROUP_OFFICE,
-'apps;engineering-and-scientific'             : GROUP_OTHER,
-'apps;games'                                  : GROUP_GAMES,
-'apps;graphics'                               : GROUP_GRAPHICS,
-'apps;text-internet'                          : GROUP_INTERNET,
-'apps;graphical-internet'                     : GROUP_INTERNET,
-'apps;education'                              : GROUP_EDUCATION,
-'development;haskell'                         : GROUP_PROGRAMMING,
-'development;kde-software-development'        : GROUP_PROGRAMMING,
-'development;gnome-software-development'      : GROUP_PROGRAMMING,
-'development;development-tools'               : GROUP_PROGRAMMING,
-'development;eclipse'                         : GROUP_PROGRAMMING,
-'development;development-libs'                : GROUP_PROGRAMMING,
-'development;x-software-development'          : GROUP_PROGRAMMING,
-'development;web-development'                 : GROUP_PROGRAMMING,
-'development;legacy-software-development'     : GROUP_PROGRAMMING,
-'development;ruby'                            : GROUP_PROGRAMMING,
-'development;java-development'                : GROUP_PROGRAMMING,
-'development;xfce-software-development'       : GROUP_PROGRAMMING,
-'development;fedora-packager'                 : GROUP_PROGRAMMING,
-'servers;clustering'                          : GROUP_SERVERS,
-'servers;dns-server'                          : GROUP_SERVERS,
-'servers;server-cfg'                          : GROUP_SERVERS,
-'servers;news-server'                         : GROUP_SERVERS,
-'servers;web-server'                          : GROUP_SERVERS,
-'servers;smb-server'                          : GROUP_SERVERS,
-'servers;sql-server'                          : GROUP_SERVERS,
-'servers;ftp-server'                          : GROUP_SERVERS,
-'servers;printing'                            : GROUP_SERVERS,
-'servers;mysql'                               : GROUP_SERVERS,
-'servers;mail-server'                         : GROUP_SERVERS,
-'servers;network-server'                      : GROUP_SERVERS,
-'servers;legacy-network-server'               : GROUP_SERVERS,
-'base-system;input-methods'                   : GROUP_LOCALIZATION,
-'base-system;java'                            : GROUP_SYSTEM,
-'base-system;base-x'                          : GROUP_SYSTEM,
-'base-system;system-tools'                    : GROUP_ADMIN_TOOLS,
-'base-system;fonts'                           : GROUP_FONTS,
-'base-system;hardware-support'                : GROUP_SYSTEM,
-'base-system;dial-up'                         : GROUP_SYSTEM,
-'base-system;admin-tools'                     : GROUP_ADMIN_TOOLS,
-'base-system;legacy-software-support'         : GROUP_LEGACY,
-'base-system;base'                            : GROUP_SYSTEM,
-'base-system;virtualization'                  : GROUP_VIRTUALIZATION,
-'base-system;legacy-fonts'                    : GROUP_FONTS,
-'language-support;khmer-support'              : GROUP_LOCALIZATION,
-'language-support;persian-support'            : GROUP_LOCALIZATION,
-'language-support;georgian-support'           : GROUP_LOCALIZATION,
-'language-support;malay-support'              : GROUP_LOCALIZATION,
-'language-support;tonga-support'              : GROUP_LOCALIZATION,
-'language-support;portuguese-support'         : GROUP_LOCALIZATION,
-'language-support;japanese-support'           : GROUP_LOCALIZATION,
-'language-support;hungarian-support'          : GROUP_LOCALIZATION,
-'language-support;somali-support'             : GROUP_LOCALIZATION,
-'language-support;punjabi-support'            : GROUP_LOCALIZATION,
-'language-support;bhutanese-support'          : GROUP_LOCALIZATION,
-'language-support;british-support'            : GROUP_LOCALIZATION,
-'language-support;korean-support'             : GROUP_LOCALIZATION,
-'language-support;lao-support'                : GROUP_LOCALIZATION,
-'language-support;inuktitut-support'          : GROUP_LOCALIZATION,
-'language-support;german-support'             : GROUP_LOCALIZATION,
-'language-support;hindi-support'              : GROUP_LOCALIZATION,
-'language-support;faeroese-support'           : GROUP_LOCALIZATION,
-'language-support;swedish-support'            : GROUP_LOCALIZATION,
-'language-support;tsonga-support'             : GROUP_LOCALIZATION,
-'language-support;russian-support'            : GROUP_LOCALIZATION,
-'language-support;serbian-support'            : GROUP_LOCALIZATION,
-'language-support;latvian-support'            : GROUP_LOCALIZATION,
-'language-support;samoan-support'             : GROUP_LOCALIZATION,
-'language-support;sinhala-support'            : GROUP_LOCALIZATION,
-'language-support;catalan-support'            : GROUP_LOCALIZATION,
-'language-support;lithuanian-support'         : GROUP_LOCALIZATION,
-'language-support;turkish-support'            : GROUP_LOCALIZATION,
-'language-support;arabic-support'             : GROUP_LOCALIZATION,
-'language-support;vietnamese-support'         : GROUP_LOCALIZATION,
-'language-support;mongolian-support'          : GROUP_LOCALIZATION,
-'language-support;tswana-support'             : GROUP_LOCALIZATION,
-'language-support;irish-support'              : GROUP_LOCALIZATION,
-'language-support;italian-support'            : GROUP_LOCALIZATION,
-'language-support;slovak-support'             : GROUP_LOCALIZATION,
-'language-support;slovenian-support'          : GROUP_LOCALIZATION,
-'language-support;belarusian-support'         : GROUP_LOCALIZATION,
-'language-support;northern-sotho-support'     : GROUP_LOCALIZATION,
-'language-support;kannada-support'            : GROUP_LOCALIZATION,
-'language-support;malayalam-support'          : GROUP_LOCALIZATION,
-'language-support;swati-support'              : GROUP_LOCALIZATION,
-'language-support;breton-support'             : GROUP_LOCALIZATION,
-'language-support;romanian-support'           : GROUP_LOCALIZATION,
-'language-support;greek-support'              : GROUP_LOCALIZATION,
-'language-support;tagalog-support'            : GROUP_LOCALIZATION,
-'language-support;zulu-support'               : GROUP_LOCALIZATION,
-'language-support;tibetan-support'            : GROUP_LOCALIZATION,
-'language-support;danish-support'             : GROUP_LOCALIZATION,
-'language-support;afrikaans-support'          : GROUP_LOCALIZATION,
-'language-support;southern-sotho-support'     : GROUP_LOCALIZATION,
-'language-support;bosnian-support'            : GROUP_LOCALIZATION,
-'language-support;brazilian-support'          : GROUP_LOCALIZATION,
-'language-support;basque-support'             : GROUP_LOCALIZATION,
-'language-support;welsh-support'              : GROUP_LOCALIZATION,
-'language-support;thai-support'               : GROUP_LOCALIZATION,
-'language-support;telugu-support'             : GROUP_LOCALIZATION,
-'language-support;low-saxon-support'          : GROUP_LOCALIZATION,
-'language-support;urdu-support'               : GROUP_LOCALIZATION,
-'language-support;tamil-support'              : GROUP_LOCALIZATION,
-'language-support;indonesian-support'         : GROUP_LOCALIZATION,
-'language-support;gujarati-support'           : GROUP_LOCALIZATION,
-'language-support;xhosa-support'              : GROUP_LOCALIZATION,
-'language-support;chinese-support'            : GROUP_LOCALIZATION,
-'language-support;czech-support'              : GROUP_LOCALIZATION,
-'language-support;venda-support'              : GROUP_LOCALIZATION,
-'language-support;bulgarian-support'          : GROUP_LOCALIZATION,
-'language-support;albanian-support'           : GROUP_LOCALIZATION,
-'language-support;galician-support'           : GROUP_LOCALIZATION,
-'language-support;armenian-support'           : GROUP_LOCALIZATION,
-'language-support;dutch-support'              : GROUP_LOCALIZATION,
-'language-support;oriya-support'              : GROUP_LOCALIZATION,
-'language-support;maori-support'              : GROUP_LOCALIZATION,
-'language-support;nepali-support'             : GROUP_LOCALIZATION,
-'language-support;icelandic-support'          : GROUP_LOCALIZATION,
-'language-support;ukrainian-support'          : GROUP_LOCALIZATION,
-'language-support;assamese-support'           : GROUP_LOCALIZATION,
-'language-support;bengali-support'            : GROUP_LOCALIZATION,
-'language-support;spanish-support'            : GROUP_LOCALIZATION,
-'language-support;hebrew-support'             : GROUP_LOCALIZATION,
-'language-support;estonian-support'           : GROUP_LOCALIZATION,
-'language-support;french-support'             : GROUP_LOCALIZATION,
-'language-support;croatian-support'           : GROUP_LOCALIZATION,
-'language-support;filipino-support'           : GROUP_LOCALIZATION,
-'language-support;finnish-support'            : GROUP_LOCALIZATION,
-'language-support;norwegian-support'          : GROUP_LOCALIZATION,
-'language-support;southern-ndebele-support'   : GROUP_LOCALIZATION,
-'language-support;polish-support'             : GROUP_LOCALIZATION,
-'language-support;gaelic-support'             : GROUP_LOCALIZATION,
-'language-support;marathi-support'            : GROUP_LOCALIZATION,
-'language-support;ethiopic-support'           : GROUP_LOCALIZATION,
-'language-support;esperanto-support'          : GROUP_LOCALIZATION,
-'language-support;northern-sami-support'      : GROUP_LOCALIZATION,
-'language-support;macedonian-support'         : GROUP_LOCALIZATION,
-'language-support;walloon-support'            : GROUP_LOCALIZATION,
-'language-support;kashubian-support'          : GROUP_LOCALIZATION,
-'language-support;kashmiri-support'           : GROUP_LOCALIZATION,
-'language-support;konkani-support'            : GROUP_LOCALIZATION,
-'language-support;tajik-support'              : GROUP_LOCALIZATION,
-'language-support;sindhi-support'             : GROUP_LOCALIZATION,
-'language-support;uzbek-support'              : GROUP_LOCALIZATION,
-'language-support;burmese-support'            : GROUP_LOCALIZATION,
-'language-support;maithili-support'           : GROUP_LOCALIZATION,
-'rpmfusion_free;kde-desktop'                  : GROUP_DESKTOP_KDE,
-'rpmfusion_free;misc-libs'                    : GROUP_OTHER,
-'rpmfusion_free;games'                        : GROUP_GAMES,
-'rpmfusion_free;misc-tools'                   : GROUP_LOCALIZATION,
-'rpmfusion_free;hardware-support'             : GROUP_ADMIN_TOOLS,
-'rpmfusion_free;sound-and-video'              : GROUP_MULTIMEDIA,
-'rpmfusion_free;base'                         : GROUP_SYSTEM,
-'rpmfusion_free;gnome-desktop'                : GROUP_DESKTOP_GNOME,
-'rpmfusion_free;internet'                     : GROUP_INTERNET,
-'rpmfusion_free;system-tools'                 : GROUP_SYSTEM,
-'rpmfusion_nonfree;games'                     : GROUP_GAMES,
-'rpmfusion_nonfree;hardware-support'          : GROUP_SYSTEM,
-'rpmfusion_nonfree;misc-tools'                : GROUP_SYSTEM,
-'rpmfusion_nonfree;emulators'                 : GROUP_OTHER,
-'rpmfusion_nonfree;base'                      : GROUP_SYSTEM
-}
-
 __DB_VER__ = '1'
 class yumComps:
 
@@ -208,6 +34,26 @@ class yumComps:
             db = '/var/cache/PackageKit/groups.sqlite'
         self.db = db
 
+        # load the group map
+        self.groupMap = {}
+        mapping = open('/usr/share/PackageKit/helpers/yum/yum-comps-groups.conf', 'r')
+        lines = mapping.readlines()
+        for line in lines:
+            line = line.replace('\n', '')
+
+            # blank line
+            if len(line) == 0:
+                continue
+
+            # fonts=base-system;fonts,base-system;legacy-fonts
+            split = line.split('=')
+            if len(split) < 2:
+                continue
+
+            entries = split[1].split(',')
+            for entry in entries:
+                self.groupMap[entry] = split[0]
+
     def connect(self):
         ''' connect to database '''
         try:
@@ -244,11 +90,12 @@ class yumComps:
             self.cursor = self.connection.cursor()
         except Exception, e:
             print e
-        self.cursor.execute('CREATE TABLE groups (name TEXT, category TEXT, groupid TEXT, group_enum TEXT, pkgtype Text);')
-        self.cursor.execute('CREATE TABLE version (version TEXT);')
-        self.cursor.execute('INSERT INTO version values(?);', __DB_VER__)
-        self.connection.commit()
-        self.refresh()
+        else:
+            self.cursor.execute('CREATE TABLE groups (name TEXT, category TEXT, groupid TEXT, group_enum TEXT, pkgtype Text);')
+            self.cursor.execute('CREATE TABLE version (version TEXT);')
+            self.cursor.execute('INSERT INTO version values(?);', __DB_VER__)
+            self.connection.commit()
+            self.refresh()
 
     def _add_db(self, name, category, groupid, pkgroup, pkgtype):
         ''' add an item into the database '''
@@ -290,8 +137,8 @@ class yumComps:
             group_id = "%s;%s" % (cat_id, group_name)
 
             group_enum = GROUP_OTHER
-            if groupMap.has_key(group_id):
-                group_enum = groupMap[group_id]
+            if self.groupMap.has_key(group_id):
+                group_enum = self.groupMap[group_id]
             else:
                 print 'unknown group enum', group_id
 
@@ -366,7 +213,7 @@ class yumComps:
 
 def main():
     _yb = yum.YumBase()
-    _db = "/var/cache/yum/packagekit-groups.sqlite"
+    _db = "/var/cache/PackageKit/groups.sqlite"
     comps = yumComps(_yb, _db)
     comps.connect()
     print "pk group system"
commit 0c03dc45b4f1c37745cb36eb2e9648a9d01101bf
Merge: b3c07f0... 0ecdc78...
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Tue Mar 10 19:02:03 2009 -0600

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

commit 7b13b2aa13fbb2d374a895a895025441a387e600
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 9 11:57:57 2009 +0000

    yum: don't output duplicated updates. Fixes rh#488509

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index e33779f..9b47614 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2157,7 +2157,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         except Exception, e:
             self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
         md = self.updateMetadata
-        for pkg in pkgs:
+        for pkg in unique(pkgs):
             if pkgfilter.pre_process(pkg):
                 # Get info about package in updates info
                 notice = md.get_notice((pkg.name, pkg.version, pkg.release))
commit 0618621fa3089dd09d668dfe646d6fe851870c3b
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 9 09:52:13 2009 +0000

    trivial: RELEASE updates

diff --git a/RELEASE b/RELEASE
index 7e6ba6c..8ebdeb4 100644
--- a/RELEASE
+++ b/RELEASE
@@ -3,8 +3,8 @@ PackageKit Release Notes
 1. Write NEWS entries for PackageKit and gnome-packagekit in the same
    format as usual. Ignore any trivial commits.
 
-git shortlog PACKAGEKIT_0_4_4.. | grep -v trivial | grep -v Merge > NEWS.new
-git shortlog GNOME_PACKAGEKIT_0_4_4.. | grep -v trivial | grep -v Merge > NEWS.new
+git shortlog PACKAGEKIT_0_4_5.. | grep -v trivial | grep -v Merge > NEWS.new
+git shortlog GNOME_PACKAGEKIT_0_4_5.. | grep -v trivial | grep -v Merge > NEWS.new
 
 2. Add download date to docs/html/pk-download.html, save file.
 
@@ -12,8 +12,8 @@ git shortlog GNOME_PACKAGEKIT_0_4_4.. | grep -v trivial | grep -v Merge > NEWS.n
 
 4. Commit changes in PackageKit git:
 
-git commit -a -m "Release version 0.4.5"
-git tag -a -f -m "Release 0.4.5" PACKAGEKIT_0_4_5
+git commit -a -m "Release version 0.4.6"
+git tag -a -f -m "Release 0.4.6" PACKAGEKIT_0_4_6
 git push --tags
 git push
 git push git+ssh://hughsient@git.freedesktop.org/git/packagekit
@@ -21,8 +21,8 @@ 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 commit -a -m "Release version 0.4.6"
+git tag GNOME_PACKAGEKIT_0_4_6
 git push --tags
 git push
 
@@ -44,9 +44,9 @@ git push
 11. Send an email to packagekit at lists.freedesktop.org
 
 =================================================
-Subject: PackageKit and gnome-packagekit 0.4.5 released!
+Subject: PackageKit and gnome-packagekit 0.4.6 released!
 
-Today I released PackageKit and gnome-packagekit 0.4.5.
+Today I released PackageKit and gnome-packagekit 0.4.6.
 
 PackageKit release notes: http://cgit.freedesktop.org/packagekit/tree/NEWS
 
commit 0ecdc7896b110f8cb97145da082524d72c64da13
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Mar 9 09:49:26 2009 +0000

    trivial: post release version bump

diff --git a/configure.ac b/configure.ac
index a168db8..00457d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 AC_PREREQ(2.52)
 
-AC_INIT(PackageKit, 0.4.5)
+AC_INIT(PackageKit, 0.4.6)
 AC_CONFIG_SRCDIR(src)
 AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
 AM_CONFIG_HEADER(config.h)
commit b3c07f075bfa6c5bd21c7127921e60dc7177656a
Merge: 68afcbe... df30eed...
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Sun Mar 8 22:02:45 2009 -0600

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

commit 68afcbe1ad5bc9cc798d1a362c4f9b0f2d2da43a
Merge: b5c118b... 92f043a...
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Fri Mar 6 11:57:30 2009 -0600

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

commit b5c118ba766325e33f4b827b6bcd6f2779ca96dd
Author: Andres Vargas ( zodman ) <zodman at foresightlinux.org>
Date:   Fri Mar 6 11:54:54 2009 -0600

    trivial: change the info of package

diff --git a/backends/conary/conaryBackend.py b/backends/conary/conaryBackend.py
index d4fae39..ad4965f 100755
--- a/backends/conary/conaryBackend.py
+++ b/backends/conary/conaryBackend.py
@@ -280,8 +280,8 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
         self.allow_cancel(True)
         self.percentage(None)
         self.status(STATUS_INFO)
-
-        log.info("======== resolve =========")
+        log.info(pklog)
+#        pklog.info("======== resolve =========")
         log.info("filters: %s package:%s " % (filters, package))
 
         cache = Cache()
@@ -454,8 +454,9 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
         log.info(">>>>>>>>>> get update >>>>>>>>>>>>")
         #self._get_update(applyList)
         log.info(">>>>>>>>>> DO Update >>>>>>>>>>>>")
-        self._do_update(applyList)
+        jobs = self._do_update(applyList)
         log.info(">>>>>>>>>>END DO Update >>>>>>>>>>>>")
+        log.info(jobs)
         self.client.setUpdateCallback(self.callback )
 
 #    @ExceptionHandler
@@ -750,7 +751,11 @@ class PackageKitConaryBackend(PackageKitBaseBackend):
             troveTuple.append(name)
             troveTuple.append(version)
             installed = self.check_installed(troveTuple)
-            self._show_package(name, version, flavor, INFO_NORMAL)
+            if name in self.rebootpkgs:
+                info = INFO_SECURITY
+            else:
+                info = INFO_NORMAL
+            self._show_package(name, version, flavor, info)
         log.info("============== end get_updates ========================")
         self.client.setUpdateCallback(self.callback)
 
diff --git a/backends/conary/pk-backend-conary.c b/backends/conary/pk-backend-conary.c
index df3c9a6..326110f 100644
--- a/backends/conary/pk-backend-conary.c
+++ b/backends/conary/pk-backend-conary.c
@@ -321,8 +321,8 @@ backend_resolve (PkBackend *backend, PkBitfield filters, gchar **package_ids)
 }
 
 PK_BACKEND_OPTIONS (
-	"Conary",				/* description */
-	"Ken VanDine <ken at vandine.org>",
+	"Conary with XMLCache",				/* description */
+	"Andres Vargas <zodman at foresightlinux.org>",
 						/* author */
 	backend_initialize,			/* initalize */
 	backend_destroy,			/* destroy */


More information about the PackageKit-commit mailing list