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

Richard Hughes hughsient at kemper.freedesktop.org
Tue Oct 12 03:14:45 PDT 2010


 RELEASE                                           |   16 
 backends/aptcc/Makefile.am                        |   14 
 backends/aptcc/apt-utils.cpp                      |  199 ++
 backends/aptcc/apt-utils.h                        |   32 
 backends/aptcc/apt.cpp                            |  328 ++-
 backends/aptcc/pk-backend-aptcc.cpp               |    6 
 backends/aptcc/pkg_acqfile.cpp                    |   38 
 backends/aptcc/pkg_acqfile.h                      |   20 
 backends/zypp/pk-backend-zypp.cpp                 |    7 
 configure.ac                                      |   41 
 contrib/command-not-found/pk-command-not-found.c  |   41 
 lib/Makefile.am                                   |    5 
 lib/packagekit-glib2/Makefile.am                  |    4 
 lib/packagekit-glib2/pk-catalog.c                 |    4 
 lib/packagekit-glib2/pk-client-sync.c             |  138 -
 lib/packagekit-glib2/pk-client.c                  |   72 
 lib/packagekit-glib2/pk-common.c                  |    2 
 lib/packagekit-glib2/pk-control-sync.c            |    2 
 lib/packagekit-glib2/pk-control.c                 |    3 
 lib/packagekit-glib2/pk-desktop.c                 |    4 
 lib/packagekit-glib2/pk-enum.c                    |   10 
 lib/packagekit-glib2/pk-enum.h                    |   28 
 lib/packagekit-glib2/pk-package-id.c              |    2 
 lib/packagekit-glib2/pk-package-ids.c             |   10 
 lib/packagekit-glib2/pk-package-sack.c            |   20 
 lib/packagekit-glib2/pk-results.c                 |   30 
 lib/packagekit-glib2/pk-service-pack.c            |    4 
 lib/packagekit-glib2/pk-task.c                    |   90 
 lib/packagekit-glib2/pk-task.h                    |    2 
 lib/packagekit-glib2/pk-transaction-list.c        |    2 
 lib/packagekit-sharp/.gitignore                   |    2 
 lib/packagekit-sharp/Client.custom                |   73 
 lib/packagekit-sharp/Makefile.am                  |   38 
 lib/packagekit-sharp/PackageKit.metadata          |   30 
 lib/packagekit-sharp/PackageList.custom           |   41 
 lib/packagekit-sharp/README                       |   30 
 lib/packagekit-sharp/TOOO                         |   11 
 lib/packagekit-sharp/generated/.gitignore         |    2 
 lib/packagekit-sharp/packagekit-api.raw           | 2124 ---------------------
 lib/packagekit-sharp/packagekit-api.xml           | 2132 ----------------------
 lib/packagekit-sharp/packagekit-sharp-sources.xml |   11 
 lib/packagekit-sharp/samples/.gitignore           |    3 
 lib/packagekit-sharp/samples/ListUpdates.cs       |   59 
 lib/packagekit-sharp/samples/Makefile.am          |   17 
 lib/packagekit-sharp/samples/UpdateSystem.cs      |   60 
 lib/packagekit-sharp/samples/launcher.in          |   20 
 lib/packagekit-sharp/test/Test.cs                 |   25 
 lib/python/packagekit/package.py                  |    7 
 48 files changed, 833 insertions(+), 5026 deletions(-)

New commits:
commit d46c9a76a82fba6f6c948e8cb78c9b3fd63f05f3
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Oct 12 10:11:52 2010 +0100

    Do not strip the trailing plus when comparing licences, as GPL+ exists, but GPL does not

diff --git a/lib/python/packagekit/package.py b/lib/python/packagekit/package.py
index 89faf41..d10d9e4 100644
--- a/lib/python/packagekit/package.py
+++ b/lib/python/packagekit/package.py
@@ -40,10 +40,6 @@ class PackagekitPackage:
         can be redistributed under any of the licenses in the group.
         For instance: GPLv2+ or Artistic or FooLicense.
 
-        Also, if a license ends with "+", the "+" is removed before
-        comparing it to the list of valid licenses.  So if license
-        "FooLicense" is free, then "FooLicense+" is considered free.
-
         Groups of licenses can be grouped with " and " to indicate
         that parts of the package are distributed under one group of
         licenses, while other parts of the package are distributed
@@ -76,9 +72,6 @@ class PackagekitPackage:
                 if len(license) < 1:
                     continue
 
-                if license[-1] == "+":
-                    license = license[0:-1]
-
                 if license in PackageKitEnum.free_licenses:
                     one_free_group = True
                     group_is_free = True
commit 8510b4307a7bacc54a12c6d53fafc4f8e7173f3f
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Oct 12 09:57:40 2010 +0100

    glib: Add several more FSF free licenses

diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index e6bb340..c1bcb60 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -378,6 +378,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_AFL,			"AFL"},
 	{PK_LICENSE_ENUM_AGPLV1,		"AGPLv1"},
 	{PK_LICENSE_ENUM_AMDPLPA,		"AMDPLPA"},
+	{PK_LICENSE_ENUM_AML,			"AML"},
 	{PK_LICENSE_ENUM_AMPAS_BSD,		"AMPAS BSD"},
 	{PK_LICENSE_ENUM_APSL_2_DOT_0,		"APSL 2.0"},
 	{PK_LICENSE_ENUM_ARL,			"ARL"},
@@ -388,6 +389,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_ASL_1_DOT_1,		"ASL 1.1"},
 	{PK_LICENSE_ENUM_ASL_2_DOT_0,		"ASL 2.0"},
 	{PK_LICENSE_ENUM_BAEKMUK,		"Baekmuk"},
+	{PK_LICENSE_ENUM_BEOPEN,		"BeOpen"},
 	{PK_LICENSE_ENUM_BITTORRENT,		"BitTorrent"},
 	{PK_LICENSE_ENUM_BOOST,			"Boost"},
 	{PK_LICENSE_ENUM_BSD,			"BSD"},
@@ -460,6 +462,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_JPYTHON,		"JPython"},
 	{PK_LICENSE_ENUM_KNUTH,			"Knuth"},
 	{PK_LICENSE_ENUM_LBNL_BSD,		"LBNL BSD"},
+	{PK_LICENSE_ENUM_LDPL,			"LDPL"},
 	{PK_LICENSE_ENUM_LGPLV2,		"LGPLv2"},
 	{PK_LICENSE_ENUM_LGPLV2_PLUS,		"LGPLv2+"},
 	{PK_LICENSE_ENUM_LGPLV2_PLUS_OR_ARTISTIC, "LGPLv2+ or Artistic"},
@@ -485,6 +488,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_MPLV1_DOT_0,		"MPLv1.0"},
 	{PK_LICENSE_ENUM_MPLV1_DOT_1,		"MPLv1.1"},
 	{PK_LICENSE_ENUM_MS_PL,			"MS-PL"},
+	{PK_LICENSE_ENUM_MS_RL,			"MS-RL"},
 	{PK_LICENSE_ENUM_NAUMEN,		"Naumen"},
 	{PK_LICENSE_ENUM_NCSA,			"NCSA"},
 	{PK_LICENSE_ENUM_NETCDF,		"NetCDF"},
@@ -497,6 +501,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_OAL,			"OAL"},
 	{PK_LICENSE_ENUM_OFL,			"OFL"},
 	{PK_LICENSE_ENUM_OFSFDL,		"OFSFDL"},
+	{PK_LICENSE_ENUM_OML,			"OML"},
 	{PK_LICENSE_ENUM_OPENLDAP,		"OpenLDAP"},
 	{PK_LICENSE_ENUM_OPENPBS,		"OpenPBS"},
 	{PK_LICENSE_ENUM_OPENSSL,		"OpenSSL"},
@@ -509,6 +514,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_PHORUM,		"Phorum"},
 	{PK_LICENSE_ENUM_PHP,			"PHP"},
 	{PK_LICENSE_ENUM_PLEXUS,		"Plexus"},
+	{PK_LICENSE_ENUM_POSTGRESQL,		"PostgreSQL"},
 	{PK_LICENSE_ENUM_PSUTILS,		"psutils"},
 	{PK_LICENSE_ENUM_PTFL,			"PTFL"},
 	{PK_LICENSE_ENUM_PUBLIC_DOMAIN,		"Public Domain"},
@@ -518,6 +524,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_QPL,			"QPL"},
 	{PK_LICENSE_ENUM_RDISC,			"Rdisc"},
 	{PK_LICENSE_ENUM_RICEBSD,		"RiceBSD"},
+	{PK_LICENSE_ENUM_ROMIO,			"Romio"},
 	{PK_LICENSE_ENUM_RPSL,			"RPSL"},
 	{PK_LICENSE_ENUM_RUBY,			"Ruby"},
 	{PK_LICENSE_ENUM_SAXPATH,		"Saxpath"},
@@ -531,6 +538,7 @@ static const PkEnumMatch enum_free_licenses[] = {
 	{PK_LICENSE_ENUM_SPL,			"SPL"},
 	{PK_LICENSE_ENUM_STIX,			"STIX"},
 	{PK_LICENSE_ENUM_TCL,			"TCL"},
+	{PK_LICENSE_ENUM_TEEWORLDS,		"Teeworlds"},
 	{PK_LICENSE_ENUM_TMATE,			"TMate"},
 	{PK_LICENSE_ENUM_TOSL,			"TOSL"},
 	{PK_LICENSE_ENUM_TPL,			"TPL"},
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index 75de973..fcac493 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -503,6 +503,7 @@ typedef enum {
 	PK_LICENSE_ENUM_AFL,
 	PK_LICENSE_ENUM_AGPLV1,
 	PK_LICENSE_ENUM_AMDPLPA,
+	PK_LICENSE_ENUM_AML,
 	PK_LICENSE_ENUM_AMPAS_BSD,
 	PK_LICENSE_ENUM_APSL_2_DOT_0,
 	PK_LICENSE_ENUM_ARL,
@@ -513,6 +514,7 @@ typedef enum {
 	PK_LICENSE_ENUM_ASL_1_DOT_1,
 	PK_LICENSE_ENUM_ASL_2_DOT_0,
 	PK_LICENSE_ENUM_BAEKMUK,
+	PK_LICENSE_ENUM_BEOPEN,
 	PK_LICENSE_ENUM_BITTORRENT,
 	PK_LICENSE_ENUM_BOOST,
 	PK_LICENSE_ENUM_BSD,
@@ -585,6 +587,7 @@ typedef enum {
 	PK_LICENSE_ENUM_JPYTHON,
 	PK_LICENSE_ENUM_KNUTH,
 	PK_LICENSE_ENUM_LBNL_BSD,
+	PK_LICENSE_ENUM_LDPL,
 	PK_LICENSE_ENUM_LGPLV2,
 	PK_LICENSE_ENUM_LGPLV2_PLUS,
 	PK_LICENSE_ENUM_LGPLV2_PLUS_OR_ARTISTIC,
@@ -610,6 +613,7 @@ typedef enum {
 	PK_LICENSE_ENUM_MPLV1_DOT_0,
 	PK_LICENSE_ENUM_MPLV1_DOT_1,
 	PK_LICENSE_ENUM_MS_PL,
+	PK_LICENSE_ENUM_MS_RL,
 	PK_LICENSE_ENUM_NAUMEN,
 	PK_LICENSE_ENUM_NCSA,
 	PK_LICENSE_ENUM_NETCDF,
@@ -622,6 +626,7 @@ typedef enum {
 	PK_LICENSE_ENUM_OAL,
 	PK_LICENSE_ENUM_OFL,
 	PK_LICENSE_ENUM_OFSFDL,
+	PK_LICENSE_ENUM_OML,
 	PK_LICENSE_ENUM_OPENLDAP,
 	PK_LICENSE_ENUM_OPENPBS,
 	PK_LICENSE_ENUM_OPENSSL,
@@ -634,6 +639,7 @@ typedef enum {
 	PK_LICENSE_ENUM_PHORUM,
 	PK_LICENSE_ENUM_PHP,
 	PK_LICENSE_ENUM_PLEXUS,
+	PK_LICENSE_ENUM_POSTGRESQL,
 	PK_LICENSE_ENUM_PSUTILS,
 	PK_LICENSE_ENUM_PTFL,
 	PK_LICENSE_ENUM_PUBLIC_DOMAIN,
@@ -643,6 +649,7 @@ typedef enum {
 	PK_LICENSE_ENUM_QPL,
 	PK_LICENSE_ENUM_RDISC,
 	PK_LICENSE_ENUM_RICEBSD,
+	PK_LICENSE_ENUM_ROMIO,
 	PK_LICENSE_ENUM_RPSL,
 	PK_LICENSE_ENUM_RUBY,
 	PK_LICENSE_ENUM_SAXPATH,
@@ -656,6 +663,7 @@ typedef enum {
 	PK_LICENSE_ENUM_SPL,
 	PK_LICENSE_ENUM_STIX,
 	PK_LICENSE_ENUM_TCL,
+	PK_LICENSE_ENUM_TEEWORLDS,
 	PK_LICENSE_ENUM_TMATE,
 	PK_LICENSE_ENUM_TOSL,
 	PK_LICENSE_ENUM_TPL,
commit 762abc1f14b2c75bcaad94b8087289dec0b85611
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Oct 11 14:39:55 2010 +0100

    Make the output of command-not-found match the bash builtin. Fixes rh#641311

diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
index c07094f..ab68b2f 100644
--- a/contrib/command-not-found/pk-command-not-found.c
+++ b/contrib/command-not-found/pk-command-not-found.c
@@ -431,7 +431,7 @@ pk_cnf_find_available (const gchar *cmd, guint max_search_time)
 				   (GSourceFunc) pk_cnf_cancel_cb,
 				   cancellable);
 #if GLIB_CHECK_VERSION(2,25,8)
-	g_source_set_name_by_id (cancel_id, "[PkCommandNotFount] cancel");
+	g_source_set_name_by_id (cancel_id, "[PkCommandNotFound] cancel");
 #endif
 
 	/* do search */
@@ -439,7 +439,7 @@ pk_cnf_find_available (const gchar *cmd, guint max_search_time)
 					  PK_FILTER_ENUM_NEWEST,
 					  PK_FILTER_ENUM_ARCH, -1);
 	results = pk_client_search_files (PK_CLIENT(task), filters, values, cancellable,
-					 (PkProgressCallback) pk_cnf_progress_cb, NULL, &error);
+					  NULL, NULL, &error);
 	if (results == NULL) {
 		/* TRANSLATORS: we failed to find the package, this shouldn't happen */
 		g_printerr ("%s: %s\n", _("Failed to search for file"), error->message);
@@ -451,17 +451,10 @@ pk_cnf_find_available (const gchar *cmd, guint max_search_time)
 	error_code = pk_results_get_error_code (results);
 	if (error_code != NULL) {
 		if (pk_error_get_code (error_code) == PK_ERROR_ENUM_TRANSACTION_CANCELLED) {
-			/* TRANSLATORS: the transaction took too long to process */
-			g_printerr ("%s\n", _("The search was cancelled as it was taking too long to complete."));
-
-			/* TRANSLATORS: tell the user what to do --
-			 * the first %s is the keyname, e.g. "MaxSearchTime"
-			 * the second %s is the config file location, e.g. "/etc/PackageKit/CommandNotFound.conf" */
-			g_printerr (_("You can increase the value of '%s' in %s to change the timeout."),
-				    "MaxSearchTime", SYSCONFDIR "/PackageKit/CommandNotFound.conf");
+			egg_debug ("The search was cancelled as it was taking too long");
 		} else {
 			/* TRANSLATORS: the transaction failed in a way we could not expect */
-			g_printerr ("%s: %s, %s\n", _("The transaction failed"),
+			g_printerr ("%s: %s, %s\n", _("Getting the list of files failed"),
 				    pk_error_enum_to_string (pk_error_get_code (error_code)),
 				    pk_error_get_details (error_code));
 			goto out;
@@ -736,8 +729,10 @@ main (int argc, char *argv[])
 		goto out;
 	}
 
-	/* TRANSLATORS: the prefix of all the output telling the user why it's not executing */
-	g_printerr ("%s ", _("Command not found."));
+	/* TRANSLATORS: the prefix of all the output telling the user
+	 * why it's not executing. NOTE: this is lowercase to mimic
+	 * the style of bash itself -- apologies */
+	g_printerr ("bash: %s: %s...\n", argv[1], _("command not found"));
 
 	/* user is not allowing CNF to do anything useful */
 	if (!config->software_source_search &&
@@ -757,13 +752,17 @@ main (int argc, char *argv[])
 			/* TRANSLATORS: tell the user what we think the command is */
 			g_printerr ("%s '%s'\n", _("Similar command is:"), possible);
 			retval = EXIT_COMMAND_NOT_FOUND;
+			goto out;
+		}
 
 		/* run */
-		} else if (config->single_match == PK_CNF_POLICY_RUN) {
+		if (config->single_match == PK_CNF_POLICY_RUN) {
 			retval = pk_cnf_spawn_command (possible, &argv[2]);
+			goto out;
+		}
 
 		/* ask */
-		} else if (config->single_match == PK_CNF_POLICY_ASK) {
+		if (config->single_match == PK_CNF_POLICY_ASK) {
 			/* TRANSLATORS: Ask the user if we should run the similar command */
 			text = g_strdup_printf ("%s %s", _("Run similar command:"), possible);
 			ret = pk_console_get_prompt (text, TRUE);
@@ -814,9 +813,11 @@ main (int argc, char *argv[])
 			if (config->single_install == PK_CNF_POLICY_WARN) {
 				/* TRANSLATORS: tell the user what package provides the command */
 				g_printerr ("%s '%s'\n", _("The package providing this file is:"), parts[PK_PACKAGE_ID_NAME]);
+				goto out;
+			}
 
 			/* ask */
-			} else if (config->single_install == PK_CNF_POLICY_ASK) {
+			if (config->single_install == PK_CNF_POLICY_ASK) {
 				/* TRANSLATORS: as the user if we want to install a package to provide the command */
 				text = g_strdup_printf (_("Install package '%s' to provide command '%s'?"), parts[PK_PACKAGE_ID_NAME], argv[1]);
 				ret = pk_console_get_prompt (text, FALSE);
@@ -828,9 +829,12 @@ main (int argc, char *argv[])
 					else
 						retval = EXIT_COMMAND_NOT_FOUND;
 				}
+				g_print ("\n");
+				goto out;
+			}
 
 			/* install */
-			} else if (config->single_install == PK_CNF_POLICY_INSTALL) {
+			if (config->single_install == PK_CNF_POLICY_INSTALL) {
 				ret = pk_cnf_install_package_id (package_ids[0]);
 				if (ret)
 					retval = pk_cnf_spawn_command (argv[1], &argv[2]);
@@ -873,9 +877,6 @@ main (int argc, char *argv[])
 			goto out;
 		}
 	}
-
-	g_printerr ("\n");
-
 out:
 	g_strfreev (package_ids);
 	if (task != NULL)
commit 9e71e2aa0194b5e44250ffcf415ed8b00e79c260
Author: Zhang Qiang <qiang.z.zhang at intel.com>
Date:   Sat Oct 9 14:15:42 2010 +0800

    zypp: Call zypp_build_pool() when searching with what_provides
    
    Call zypp_build_pool correctly when searching with what_provides.
    
    Without this patch, "pkcon what-provides" got nothing, as
    zypp_build_pool is not called before resolving WhatProvides.

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 5189f8d..c59f079 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -1812,12 +1812,10 @@ backend_what_provides_thread (PkBackend *backend)
 	const gchar *search = values[0]; //Fixme - support possible multiple search values (logical OR)
 	PkProvidesEnum provides = (PkProvidesEnum) pk_backend_get_uint (backend, "provides");
 	PkBitfield _filters = (PkBitfield) pk_backend_get_uint (backend, "filters");
-	zypp::Capability cap (search);
-	zypp::sat::WhatProvides prov (cap);
+	zypp::ResPool pool = zypp_build_pool (backend, true);
 
 	if((provides == PK_PROVIDES_ENUM_HARDWARE_DRIVER) || g_ascii_strcasecmp("drivers_for_attached_hardware", search) == 0) {
 		// solver run
-		zypp::ResPool pool = zypp_build_pool (backend, true);
 		zypp::Resolver solver(pool);
 		solver.setIgnoreAlreadyRecommended (TRUE);
 
@@ -1851,6 +1849,9 @@ backend_what_provides_thread (PkBackend *backend)
 		}
 		solver.setIgnoreAlreadyRecommended (FALSE);
 	} else {
+		zypp::Capability cap (search);
+		zypp::sat::WhatProvides prov (cap);
+
 		for (zypp::sat::WhatProvides::const_iterator it = prov.begin (); it != prov.end (); it++) {
 			if (zypp_filter_solvable (_filters, *it))
 				continue;
commit ff9180656626ecb5e0e226d265ae57588d1a8285
Author: Valeriy Lyasotskiy <onestep at ukr.net>
Date:   Fri Oct 8 01:10:41 2010 +0300

    configure: fixed alpm detection code

diff --git a/configure.ac b/configure.ac
index 729a3af..79ead6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -698,10 +698,9 @@ if test x$enable_opkg = xyes; then
 fi
 
 if test x$enable_alpm = xyes; then
-	with_default_backend=dummy
 	AC_CHECK_HEADER([alpm.h],
-			[with_default_backend=alpm],
-			[AC_MSG_WARN([No alpm headers found - falling back to dummy backend])])
+			[],
+			[AC_MSG_ERROR([No ALPM headers found])])
 fi
 
 if test x$enable_pacman = xyes; then
commit 1bc229d6c9faf7bda279afac3c79ef7759285da3
Merge: 9492376... 55685b8...
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 7 10:30:04 2010 +0100

    Merge branch 'remove-pk-sharp'

commit 9492376f17eb673470f945955b8eda6aea58e96d
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 7 10:01:38 2010 +0100

    trivial: Only include the gobject-introspection Makefile if we are compiling with support

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 98f4076..9c077bc 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -1,9 +1,11 @@
 NULL =
 
+if HAVE_INTROSPECTION
 -include $(INTROSPECTION_MAKEFILE)
 INTROSPECTION_GIRS =
 INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
 INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
+endif
 
 INCLUDES = \
 	$(GLIB_CFLAGS)						\
commit d3364bb4a895b41b64e1ff9e017ce35d6a0b537b
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 7 10:00:46 2010 +0100

    trivial: show if gobject-introspection support was found

diff --git a/configure.ac b/configure.ac
index 8822a8d..13c9624 100644
--- a/configure.ac
+++ b/configure.ac
@@ -873,6 +873,7 @@ echo "
         GStreamer plugin:          ${build_gstreamer_plugin}
         Pango module (GTK2):       ${build_gtk_module_gtk2}
         Pango module (GTK3):       ${build_gtk_module_gtk3}
+        gobject-introspection:     ${found_introspection}
         BASH Command not found:    ${build_command_not_found}
         Cron scripts:              ${build_cron}
         debuginfo-install:         ${build_debuginfo_install}
commit 55685b8d343ce8a282eb3f92c58d05320ac10b89
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 7 09:02:53 2010 +0100

    Move the managed bindings to a seporate repo as they are very out of date

diff --git a/configure.ac b/configure.ac
index 8822a8d..66951d2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -195,32 +195,6 @@ fi
 AM_CONDITIONAL(PK_BUILD_QT, test $build_qt = "yes")
 
 dnl ---------------------------------------------------------------------------
-dnl - Build packageKit-sharp
-dnl ---------------------------------------------------------------------------
-AC_ARG_ENABLE(managed, AS_HELP_STRING([--enable-managed],[Build PackageKit-Sharp]),
-	      enable_managed=$enableval,enable_managed=false)
-if test x$enable_managed = xyes; then
-	PKG_CHECK_MODULES(GLIBSHARP, glib-sharp-2.0)
-
-	# for gapi2-parser, gapi2-fixup and gapi2-codegen (only at build time)
-	PKG_CHECK_MODULES(GAPISHARP, gapi-2.0)
-
-	AC_PATH_PROG(MCS, mcs)
-	CS="C#"
-	if test ! -x "$MCS"; then
-		AC_PATH_PROG(MCS, gmcs)
-		if test ! -x "$MCS"; then
-			AC_MSG_ERROR([No $CS compiler found])
-		fi
-	fi
-
-	build_managed=yes
-else
-	build_managed=no
-fi
-AM_CONDITIONAL(PK_BUILD_MANAGED, test $build_managed = "yes")
-
-dnl ---------------------------------------------------------------------------
 dnl - Service Packs (default enabled)
 dnl ---------------------------------------------------------------------------
 AC_ARG_ENABLE(service-packs, AS_HELP_STRING([--disable-service-packs],[Disable Service Packs support]), enable_servicepacks=$enableval)
@@ -843,8 +817,6 @@ lib/packagekit-qt/modules/Makefile
 lib/packagekit-qt/src/Makefile
 lib/packagekit-qt/test/Makefile
 lib/packagekit-qt/packagekit-qt.pc
-lib/packagekit-sharp/Makefile
-lib/packagekit-sharp/samples/Makefile
 lib/python/Makefile
 lib/python/packagekit/Makefile
 policy/Makefile
@@ -879,7 +851,6 @@ echo "
         device-rebind:             ${build_device_rebind}
         pm-utils scripts:          ${build_pm_utils}
         QT library:                ${build_qt}
-        Managed bindings:          ${build_managed}
 
         Backends:
         ALPM backend:              ${enable_alpm}
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 666510e..fab4805 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -3,8 +3,3 @@ SUBDIRS = python packagekit-glib2
 if PK_BUILD_QT
 SUBDIRS += packagekit-qt
 endif
-
-if PK_BUILD_MANAGED
-SUBDIRS += packagekit-sharp
-endif
-
diff --git a/lib/packagekit-sharp/.gitignore b/lib/packagekit-sharp/.gitignore
deleted file mode 100644
index 4a850cb..0000000
--- a/lib/packagekit-sharp/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/packagekit-sharp.dll
-/*.mdb
diff --git a/lib/packagekit-sharp/Client.custom b/lib/packagekit-sharp/Client.custom
deleted file mode 100644
index 18862d2..0000000
--- a/lib/packagekit-sharp/Client.custom
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Client.custom: customization code for Client.cs
- *
- * Author(s):
- *	Stephane Delcroix  (stephane at delcroix.org)
- *
- * Copyright (c) 2009 Novell, Inc.
- *
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-
-		[DllImport("libpackagekit-glib.dll")]
-		static extern unsafe bool pk_client_set_tid(IntPtr raw, IntPtr tid, out IntPtr error);
-
-		[DllImport("libpackagekit-glib.dll")]
-		static extern IntPtr pk_client_get_tid(IntPtr raw);
-
-		public string Tid {
-			get {
-				IntPtr raw_ret = pk_client_get_tid(Handle);
-				string ret = GLib.Marshaller.PtrToStringGFree(raw_ret);
-				return ret;
-			}
-			set {
-				IntPtr native_tid = GLib.Marshaller.StringToPtrGStrdup (value);
-				IntPtr error = IntPtr.Zero;
-				pk_client_set_tid(Handle, native_tid, out error);
-				GLib.Marshaller.Free (native_tid);
-				if (error != IntPtr.Zero) throw new GLib.GException (error);
-			}
-		}
-
-		[DllImport("libpackagekit-glib.dll")]
-		static extern unsafe bool pk_client_set_use_buffer(IntPtr raw, bool use_buffer, out IntPtr error);
-
-		[DllImport("libpackagekit-glib.dll")]
-		static extern bool pk_client_get_use_buffer(IntPtr raw);
-
-		public bool UseBuffer {
-			get {
-				bool raw_ret = pk_client_get_use_buffer(Handle);
-				bool ret = raw_ret;
-				return ret;
-			}
-			set {
-				IntPtr error = IntPtr.Zero;
-				pk_client_set_use_buffer(Handle, value, out error);
-				if (error != IntPtr.Zero) throw new GLib.GException (error);
-			}
-		}
-
-
-
-
diff --git a/lib/packagekit-sharp/Makefile.am b/lib/packagekit-sharp/Makefile.am
deleted file mode 100644
index 2e8c66b..0000000
--- a/lib/packagekit-sharp/Makefile.am
+++ /dev/null
@@ -1,38 +0,0 @@
-all: packagekit-sharp.dll
-
-generated/Client.cs: packagekit-api.xml $(CUSTOMS)
-	gapi2-codegen --outdir=generated --customdir=$(srcdir) --generate packagekit-api.xml
-
-packagekit-sharp.dll: $(srcdir)/generated/Client.cs $(SOURCES) $(CUSTOMS)
-	$(MCS) -unsafe $(GLIBSHARP_LIBS) -target:library -out:packagekit-sharp.dll $(srcdir)/generated/*.cs $(SOURCES)
-
-packagekit-api.xml: $(srcdir)/packagekit-api.raw $(srcdir)/PackageKit.metadata
-	cp $(srcdir)/packagekit-api.raw packagekit-api.xml
-	chmod +w $(builddir)/packagekit-api.xml
-	gapi2-fixup --api=packagekit-api.xml --metadata=$(srcdir)/PackageKit.metadata
-
-api:
-	gapi2-parser packagekit-sharp-sources.xml
-
-
-CUSTOMS =				\
-	Client.custom			\
-	PackageList.custom
-
-SOURCES =
-
-CLEANFILES =			\
-	packagekit-sharp.dll		\
-	*.mdb
-
-EXTRA_DIST =				\
-	packagekit-sharp-sources.xml	\
-	$(SOURCES)			\
-	$(CUSTOMS)			\
-	packagekit-api.raw			\
-	packagekit-api.xml			\
-	$(srcdir)/generated/*.cs	\
-	PackageKit.metadata
-
-DIST_SUBDIRS =				\
-	samples
diff --git a/lib/packagekit-sharp/PackageKit.metadata b/lib/packagekit-sharp/PackageKit.metadata
deleted file mode 100644
index 029e7d4..0000000
--- a/lib/packagekit-sharp/PackageKit.metadata
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<metadata>
-	<attr	path="/api/namespace[@name='Pk']" name="name">PackageKit</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_download_packages']/*/*[@name='package_ids']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_get_details']/*/*[@name='package_ids']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_get_update_detail']/*/*[@name='package_ids']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_get_requires']/*/*[@name='package_ids']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_get_tid']" name="hidden">true</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_set_tid']" name="hidden">true</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_get_use_buffer']" name="hidden">true</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_set_use_buffer']" name="hidden">true</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_update_packages']/*/*[@name='package_ids']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_install_packages']/*/*[@name='package_ids']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_install_files']/*/*[@name='files_rel']" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkObjList']/method[@cname='pk_obj_list_set_to_string']" name="name">SetToStringFunc</attr>
-	<attr	path="/api/namespace/object[@cname='PkClient']/method[@cname='pk_client_get_require_restart']" name="name">GetRequireRestartStatus</attr>
-	<attr	path="/api/namespace/object[@cname='PkPackageList']/method[@name='GetObj']" name="hidden">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkPackageList']/method[@cname='pk_package_list_to_strv']/return-type" name="null_term_array">1</attr>
-	<attr	path="/api/namespace/object[@cname='PkPackageList']/method[@cname='pk_package_list_to_strv']" name="name">ToStringArray</attr>
-	<add-node	path="/api/namespace/object[@cname='PkClient']">
-	  <signal name="Finished" cname="finished" when="LAST" manual="true" field_name="finished">
-	    <return-type type="void" />
-	    <parameters>
-	      <parameter type="PkClient*" name="client" />
-	      <parameter type="PkExitEnum" name="exit" />
-	      <parameter type="guint" name="runtime" />
-	    </parameters>
-	  </signal>
-	</add-node>
-</metadata>
diff --git a/lib/packagekit-sharp/PackageList.custom b/lib/packagekit-sharp/PackageList.custom
deleted file mode 100644
index ca77678..0000000
--- a/lib/packagekit-sharp/PackageList.custom
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * PackageList.custom
- *
- * Author(s):
- *	Stephane Delcroix  (stephane at delcroix.org)
- *
- * Copyright (c) 2009 Novell, Inc.
- *
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-		[DllImport("libpackagekit-glib.dll")]
-		static extern IntPtr pk_package_list_get_obj(IntPtr raw, uint item);
-
-		public PackageKit.PackageObj this[uint item] {
-			get {
-				IntPtr raw_ret = pk_package_list_get_obj(Handle, item);
-				PackageKit.PackageObj ret = raw_ret == IntPtr.Zero ? null : (PackageKit.PackageObj) GLib.Opaque.GetOpaque (raw_ret, typeof (PackageKit.PackageObj), false);
-				return ret;
-			}
-		}
-
-
diff --git a/lib/packagekit-sharp/README b/lib/packagekit-sharp/README
deleted file mode 100644
index 33d1735..0000000
--- a/lib/packagekit-sharp/README
+++ /dev/null
@@ -1,30 +0,0 @@
-packagekit-sharp: a managed binding for packagekit-glib, usable in Mono and .NET.
-
-The binding's code is autogenerated, so do not edit any files under the generated/
-folder or changes will be lost.
-
-Generating packagekit-api.raw:
-------------------------------
-This file is the raw output of the parsing of packagekit-glib. You only need to
-regenerate it if the pk-glib API was changed.
-
-To regenerate, just run:
-> make api
-
-Note: this require gapi2-parser, ususally found in the gtk-sharp-2.0 or gtk-gapi
-package.
-
-Massaging the raw api, customizing generated sources
-----------------------------------------------------
-the raw api file can be adapted via a list of rules in PackageKit.metadata. In
-addition to this, you can also add custom code in a .custom file in the main
-directory.
-
-If you modify the PackageKit.metadata file, packagekit-api.xml will be regenerated
-before generating the code.
-
-Note: this require gapi2-fixup ang gapi2-codegen.
-
-Building
---------
-type "make", it'll build packagekit-sharp.dll
diff --git a/lib/packagekit-sharp/TOOO b/lib/packagekit-sharp/TOOO
deleted file mode 100644
index a8f9810..0000000
--- a/lib/packagekit-sharp/TOOO
+++ /dev/null
@@ -1,11 +0,0 @@
-PackageKit.Client:
- - "details" signal ???
- - "Files" signal ???
- - "Package" signal ???
- - "Transaction" ???
-DistroUpgradeArgs:
- - type and name for Arg1 ?
-ProgressChangedArgs:
- - last arg name
-UpdateDetailsArgs:
- - details type ?
diff --git a/lib/packagekit-sharp/generated/.gitignore b/lib/packagekit-sharp/generated/.gitignore
deleted file mode 100644
index 44e69f9..0000000
--- a/lib/packagekit-sharp/generated/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.cs
-
diff --git a/lib/packagekit-sharp/packagekit-api.raw b/lib/packagekit-sharp/packagekit-api.raw
deleted file mode 100644
index 9aeb01b..0000000
--- a/lib/packagekit-sharp/packagekit-api.raw
+++ /dev/null
@@ -1,2124 +0,0 @@
-<?xml version="1.0"?>
-<api>
-  <!--
-
-        This file was automatically generated.
-        Please DO NOT MODIFY THIS FILE, modify .metadata files instead.
-
--->
-  <namespace name="Pk" library="libpackagekit-glib.dll">
-    <enum name="CatalogProgress" cname="PkCatalogProgress" type="enum">
-      <member cname="PK_CATALOG_PROGRESS_PACKAGES" name="Packages" />
-      <member cname="PK_CATALOG_PROGRESS_FILES" name="Files" />
-      <member cname="PK_CATALOG_PROGRESS_PROVIDES" name="Provides" />
-      <member cname="PK_CATALOG_PROGRESS_LAST" name="Last" />
-    </enum>
-    <enum name="ClientError" cname="PkClientError" gtype="pk_client_error_get_type" type="enum">
-      <member cname="PK_CLIENT_ERROR_FAILED" name="Failed" />
-      <member cname="PK_CLIENT_ERROR_FAILED_AUTH" name="FailedAuth" />
-      <member cname="PK_CLIENT_ERROR_NO_TID" name="NoTid" />
-      <member cname="PK_CLIENT_ERROR_ALREADY_TID" name="AlreadyTid" />
-      <member cname="PK_CLIENT_ERROR_ROLE_UNKNOWN" name="RoleUnknown" />
-      <member cname="PK_CLIENT_ERROR_CANNOT_START_DAEMON" name="CannotStartDaemon" />
-      <member cname="PK_CLIENT_ERROR_INVALID_INPUT" name="InvalidInput" />
-      <member cname="PK_CLIENT_ERROR_INVALID_FILE" name="InvalidFile" />
-      <member cname="PK_CLIENT_ERROR_NOT_SUPPORTED" name="NotSupported" />
-    </enum>
-    <enum name="ControlError" cname="PkControlError" type="enum">
-      <member cname="PK_CONTROL_ERROR_FAILED" name="Failed" />
-      <member cname="PK_CONTROL_ERROR_CANNOT_START_DAEMON" name="CannotStartDaemon" />
-    </enum>
-    <enum name="DistroUpgradeEnum" cname="PkDistroUpgradeEnum" type="enum">
-      <member cname="PK_DISTRO_UPGRADE_ENUM_STABLE" name="Stable" />
-      <member cname="PK_DISTRO_UPGRADE_ENUM_UNSTABLE" name="Unstable" />
-      <member cname="PK_DISTRO_UPGRADE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ErrorCodeEnum" cname="PkErrorCodeEnum" type="enum">
-      <member cname="PK_ERROR_ENUM_OOM" name="Oom" />
-      <member cname="PK_ERROR_ENUM_NO_NETWORK" name="NoNetwork" />
-      <member cname="PK_ERROR_ENUM_NOT_SUPPORTED" name="NotSupported" />
-      <member cname="PK_ERROR_ENUM_INTERNAL_ERROR" name="InternalError" />
-      <member cname="PK_ERROR_ENUM_GPG_FAILURE" name="GpgFailure" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_ID_INVALID" name="PackageIdInvalid" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED" name="PackageNotInstalled" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_NOT_FOUND" name="PackageNotFound" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_ALREADY_INSTALLED" name="PackageAlreadyInstalled" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED" name="PackageDownloadFailed" />
-      <member cname="PK_ERROR_ENUM_GROUP_NOT_FOUND" name="GroupNotFound" />
-      <member cname="PK_ERROR_ENUM_GROUP_LIST_INVALID" name="GroupListInvalid" />
-      <member cname="PK_ERROR_ENUM_DEP_RESOLUTION_FAILED" name="DepResolutionFailed" />
-      <member cname="PK_ERROR_ENUM_FILTER_INVALID" name="FilterInvalid" />
-      <member cname="PK_ERROR_ENUM_CREATE_THREAD_FAILED" name="CreateThreadFailed" />
-      <member cname="PK_ERROR_ENUM_TRANSACTION_ERROR" name="TransactionError" />
-      <member cname="PK_ERROR_ENUM_TRANSACTION_CANCELLED" name="TransactionCancelled" />
-      <member cname="PK_ERROR_ENUM_NO_CACHE" name="NoCache" />
-      <member cname="PK_ERROR_ENUM_REPO_NOT_FOUND" name="RepoNotFound" />
-      <member cname="PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE" name="CannotRemoveSystemPackage" />
-      <member cname="PK_ERROR_ENUM_PROCESS_KILL" name="ProcessKill" />
-      <member cname="PK_ERROR_ENUM_FAILED_INITIALIZATION" name="FailedInitialization" />
-      <member cname="PK_ERROR_ENUM_FAILED_FINALISE" name="FailedFinalise" />
-      <member cname="PK_ERROR_ENUM_FAILED_CONFIG_PARSING" name="FailedConfigParsing" />
-      <member cname="PK_ERROR_ENUM_CANNOT_CANCEL" name="CannotCancel" />
-      <member cname="PK_ERROR_ENUM_CANNOT_GET_LOCK" name="CannotGetLock" />
-      <member cname="PK_ERROR_ENUM_NO_PACKAGES_TO_UPDATE" name="NoPackagesToUpdate" />
-      <member cname="PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG" name="CannotWriteRepoConfig" />
-      <member cname="PK_ERROR_ENUM_LOCAL_INSTALL_FAILED" name="LocalInstallFailed" />
-      <member cname="PK_ERROR_ENUM_BAD_GPG_SIGNATURE" name="BadGpgSignature" />
-      <member cname="PK_ERROR_ENUM_MISSING_GPG_SIGNATURE" name="MissingGpgSignature" />
-      <member cname="PK_ERROR_ENUM_CANNOT_INSTALL_SOURCE_PACKAGE" name="CannotInstallSourcePackage" />
-      <member cname="PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR" name="RepoConfigurationError" />
-      <member cname="PK_ERROR_ENUM_NO_LICENSE_AGREEMENT" name="NoLicenseAgreement" />
-      <member cname="PK_ERROR_ENUM_FILE_CONFLICTS" name="FileConflicts" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_CONFLICTS" name="PackageConflicts" />
-      <member cname="PK_ERROR_ENUM_REPO_NOT_AVAILABLE" name="RepoNotAvailable" />
-      <member cname="PK_ERROR_ENUM_INVALID_PACKAGE_FILE" name="InvalidPackageFile" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED" name="PackageInstallBlocked" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_CORRUPT" name="PackageCorrupt" />
-      <member cname="PK_ERROR_ENUM_ALL_PACKAGES_ALREADY_INSTALLED" name="AllPackagesAlreadyInstalled" />
-      <member cname="PK_ERROR_ENUM_FILE_NOT_FOUND" name="FileNotFound" />
-      <member cname="PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY" name="NoMoreMirrorsToTry" />
-      <member cname="PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA" name="NoDistroUpgradeData" />
-      <member cname="PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE" name="IncompatibleArchitecture" />
-      <member cname="PK_ERROR_ENUM_NO_SPACE_ON_DEVICE" name="NoSpaceOnDevice" />
-      <member cname="PK_ERROR_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ExitEnum" cname="PkExitEnum" type="enum">
-      <member cname="PK_EXIT_ENUM_SUCCESS" name="Success" />
-      <member cname="PK_EXIT_ENUM_FAILED" name="Failed" />
-      <member cname="PK_EXIT_ENUM_CANCELLED" name="Cancelled" />
-      <member cname="PK_EXIT_ENUM_KEY_REQUIRED" name="KeyRequired" />
-      <member cname="PK_EXIT_ENUM_EULA_REQUIRED" name="EulaRequired" />
-      <member cname="PK_EXIT_ENUM_KILLED" name="Killed" />
-      <member cname="PK_EXIT_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="FilterEnum" cname="PkFilterEnum" type="enum">
-      <member cname="PK_FILTER_ENUM_NONE" name="None" />
-      <member cname="PK_FILTER_ENUM_INSTALLED" name="Installed" />
-      <member cname="PK_FILTER_ENUM_NOT_INSTALLED" name="NotInstalled" />
-      <member cname="PK_FILTER_ENUM_DEVELOPMENT" name="Development" />
-      <member cname="PK_FILTER_ENUM_NOT_DEVELOPMENT" name="NotDevelopment" />
-      <member cname="PK_FILTER_ENUM_GUI" name="Gui" />
-      <member cname="PK_FILTER_ENUM_NOT_GUI" name="NotGui" />
-      <member cname="PK_FILTER_ENUM_FREE" name="Free" />
-      <member cname="PK_FILTER_ENUM_NOT_FREE" name="NotFree" />
-      <member cname="PK_FILTER_ENUM_VISIBLE" name="Visible" />
-      <member cname="PK_FILTER_ENUM_NOT_VISIBLE" name="NotVisible" />
-      <member cname="PK_FILTER_ENUM_SUPPORTED" name="Supported" />
-      <member cname="PK_FILTER_ENUM_NOT_SUPPORTED" name="NotSupported" />
-      <member cname="PK_FILTER_ENUM_BASENAME" name="Basename" />
-      <member cname="PK_FILTER_ENUM_NOT_BASENAME" name="NotBasename" />
-      <member cname="PK_FILTER_ENUM_NEWEST" name="Newest" />
-      <member cname="PK_FILTER_ENUM_NOT_NEWEST" name="NotNewest" />
-      <member cname="PK_FILTER_ENUM_ARCH" name="Arch" />
-      <member cname="PK_FILTER_ENUM_NOT_ARCH" name="NotArch" />
-      <member cname="PK_FILTER_ENUM_SOURCE" name="Source" />
-      <member cname="PK_FILTER_ENUM_NOT_SOURCE" name="NotSource" />
-      <member cname="PK_FILTER_ENUM_COLLECTIONS" name="Collections" />
-      <member cname="PK_FILTER_ENUM_NOT_COLLECTIONS" name="NotCollections" />
-      <member cname="PK_FILTER_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="GroupEnum" cname="PkGroupEnum" type="enum">
-      <member cname="PK_GROUP_ENUM_ACCESSIBILITY" name="Accessibility" />
-      <member cname="PK_GROUP_ENUM_ACCESSORIES" name="Accessories" />
-      <member cname="PK_GROUP_ENUM_ADMIN_TOOLS" name="AdminTools" />
-      <member cname="PK_GROUP_ENUM_COMMUNICATION" name="Communication" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_GNOME" name="DesktopGnome" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_KDE" name="DesktopKde" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_OTHER" name="DesktopOther" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_XFCE" name="DesktopXfce" />
-      <member cname="PK_GROUP_ENUM_EDUCATION" name="Education" />
-      <member cname="PK_GROUP_ENUM_FONTS" name="Fonts" />
-      <member cname="PK_GROUP_ENUM_GAMES" name="Games" />
-      <member cname="PK_GROUP_ENUM_GRAPHICS" name="Graphics" />
-      <member cname="PK_GROUP_ENUM_INTERNET" name="Internet" />
-      <member cname="PK_GROUP_ENUM_LEGACY" name="Legacy" />
-      <member cname="PK_GROUP_ENUM_LOCALIZATION" name="Localization" />
-      <member cname="PK_GROUP_ENUM_MAPS" name="Maps" />
-      <member cname="PK_GROUP_ENUM_MULTIMEDIA" name="Multimedia" />
-      <member cname="PK_GROUP_ENUM_NETWORK" name="Network" />
-      <member cname="PK_GROUP_ENUM_OFFICE" name="Office" />
-      <member cname="PK_GROUP_ENUM_OTHER" name="Other" />
-      <member cname="PK_GROUP_ENUM_POWER_MANAGEMENT" name="PowerManagement" />
-      <member cname="PK_GROUP_ENUM_PROGRAMMING" name="Programming" />
-      <member cname="PK_GROUP_ENUM_PUBLISHING" name="Publishing" />
-      <member cname="PK_GROUP_ENUM_REPOS" name="Repos" />
-      <member cname="PK_GROUP_ENUM_SECURITY" name="Security" />
-      <member cname="PK_GROUP_ENUM_SERVERS" name="Servers" />
-      <member cname="PK_GROUP_ENUM_SYSTEM" name="System" />
-      <member cname="PK_GROUP_ENUM_VIRTUALIZATION" name="Virtualization" />
-      <member cname="PK_GROUP_ENUM_SCIENCE" name="Science" />
-      <member cname="PK_GROUP_ENUM_DOCUMENTATION" name="Documentation" />
-      <member cname="PK_GROUP_ENUM_ELECTRONICS" name="Electronics" />
-      <member cname="PK_GROUP_ENUM_COLLECTIONS" name="Collections" />
-      <member cname="PK_GROUP_ENUM_VENDOR" name="Vendor" />
-      <member cname="PK_GROUP_ENUM_NEWEST" name="Newest" />
-      <member cname="PK_GROUP_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="InfoEnum" cname="PkInfoEnum" type="enum">
-      <member cname="PK_INFO_ENUM_INSTALLED" name="Installed" />
-      <member cname="PK_INFO_ENUM_AVAILABLE" name="Available" />
-      <member cname="PK_INFO_ENUM_LOW" name="Low" />
-      <member cname="PK_INFO_ENUM_ENHANCEMENT" name="Enhancement" />
-      <member cname="PK_INFO_ENUM_NORMAL" name="Normal" />
-      <member cname="PK_INFO_ENUM_BUGFIX" name="Bugfix" />
-      <member cname="PK_INFO_ENUM_IMPORTANT" name="Important" />
-      <member cname="PK_INFO_ENUM_SECURITY" name="Security" />
-      <member cname="PK_INFO_ENUM_BLOCKED" name="Blocked" />
-      <member cname="PK_INFO_ENUM_DOWNLOADING" name="Downloading" />
-      <member cname="PK_INFO_ENUM_UPDATING" name="Updating" />
-      <member cname="PK_INFO_ENUM_INSTALLING" name="Installing" />
-      <member cname="PK_INFO_ENUM_REMOVING" name="Removing" />
-      <member cname="PK_INFO_ENUM_CLEANUP" name="Cleanup" />
-      <member cname="PK_INFO_ENUM_OBSOLETING" name="Obsoleting" />
-      <member cname="PK_INFO_ENUM_COLLECTION_INSTALLED" name="CollectionInstalled" />
-      <member cname="PK_INFO_ENUM_COLLECTION_AVAILABLE" name="CollectionAvailable" />
-      <member cname="PK_INFO_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="LicenseEnum" cname="PkLicenseEnum" type="enum">
-      <member cname="PK_LICENSE_ENUM_GLIDE" name="Glide" />
-      <member cname="PK_LICENSE_ENUM_AFL" name="Afl" />
-      <member cname="PK_LICENSE_ENUM_AMPAS_BSD" name="AmpasBsd" />
-      <member cname="PK_LICENSE_ENUM_AMAZON_DSL" name="AmazonDsl" />
-      <member cname="PK_LICENSE_ENUM_ADOBE" name="Adobe" />
-      <member cname="PK_LICENSE_ENUM_AGPLV1" name="Agplv1" />
-      <member cname="PK_LICENSE_ENUM_AGPLV3" name="Agplv3" />
-      <member cname="PK_LICENSE_ENUM_ASL_1_DOT_0" name="Asl1Dot0" />
-      <member cname="PK_LICENSE_ENUM_ASL_1_DOT_1" name="Asl1Dot1" />
-      <member cname="PK_LICENSE_ENUM_ASL_2_DOT_0" name="Asl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_APSL_2_DOT_0" name="Apsl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_ARTISTIC_CLARIFIED" name="ArtisticClarified" />
-      <member cname="PK_LICENSE_ENUM_ARTISTIC_2_DOT_0" name="Artistic2Dot0" />
-      <member cname="PK_LICENSE_ENUM_ARL" name="Arl" />
-      <member cname="PK_LICENSE_ENUM_BITTORRENT" name="Bittorrent" />
-      <member cname="PK_LICENSE_ENUM_BOOST" name="Boost" />
-      <member cname="PK_LICENSE_ENUM_BSD_WITH_ADVERTISING" name="BsdWithAdvertising" />
-      <member cname="PK_LICENSE_ENUM_BSD" name="Bsd" />
-      <member cname="PK_LICENSE_ENUM_CECILL" name="Cecill" />
-      <member cname="PK_LICENSE_ENUM_CDDL" name="Cddl" />
-      <member cname="PK_LICENSE_ENUM_CPL" name="Cpl" />
-      <member cname="PK_LICENSE_ENUM_CONDOR" name="Condor" />
-      <member cname="PK_LICENSE_ENUM_COPYRIGHT_ONLY" name="CopyrightOnly" />
-      <member cname="PK_LICENSE_ENUM_CRYPTIX" name="Cryptix" />
-      <member cname="PK_LICENSE_ENUM_CRYSTAL_STACKER" name="CrystalStacker" />
-      <member cname="PK_LICENSE_ENUM_DOC" name="Doc" />
-      <member cname="PK_LICENSE_ENUM_WTFPL" name="Wtfpl" />
-      <member cname="PK_LICENSE_ENUM_EPL" name="Epl" />
-      <member cname="PK_LICENSE_ENUM_ECOS" name="Ecos" />
-      <member cname="PK_LICENSE_ENUM_EFL_2_DOT_0" name="Efl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_EU_DATAGRID" name="EuDatagrid" />
-      <member cname="PK_LICENSE_ENUM_LGPLV2_WITH_EXCEPTIONS" name="Lgplv2WithExceptions" />
-      <member cname="PK_LICENSE_ENUM_FTL" name="Ftl" />
-      <member cname="PK_LICENSE_ENUM_GIFTWARE" name="Giftware" />
-      <member cname="PK_LICENSE_ENUM_GPLV2" name="Gplv2" />
-      <member cname="PK_LICENSE_ENUM_GPLV2_WITH_EXCEPTIONS" name="Gplv2WithExceptions" />
-      <member cname="PK_LICENSE_ENUM_GPLV2_PLUS_WITH_EXCEPTIONS" name="Gplv2PlusWithExceptions" />
-      <member cname="PK_LICENSE_ENUM_GPLV3" name="Gplv3" />
-      <member cname="PK_LICENSE_ENUM_GPLV3_WITH_EXCEPTIONS" name="Gplv3WithExceptions" />
-      <member cname="PK_LICENSE_ENUM_GPLV3_PLUS_WITH_EXCEPTIONS" name="Gplv3PlusWithExceptions" />
-      <member cname="PK_LICENSE_ENUM_LGPLV2" name="Lgplv2" />
-      <member cname="PK_LICENSE_ENUM_LGPLV3" name="Lgplv3" />
-      <member cname="PK_LICENSE_ENUM_GNUPLOT" name="Gnuplot" />
-      <member cname="PK_LICENSE_ENUM_IBM" name="Ibm" />
-      <member cname="PK_LICENSE_ENUM_IMATIX" name="Imatix" />
-      <member cname="PK_LICENSE_ENUM_IMAGEMAGICK" name="Imagemagick" />
-      <member cname="PK_LICENSE_ENUM_IMLIB2" name="Imlib2" />
-      <member cname="PK_LICENSE_ENUM_IJG" name="Ijg" />
-      <member cname="PK_LICENSE_ENUM_INTEL_ACPI" name="IntelAcpi" />
-      <member cname="PK_LICENSE_ENUM_INTERBASE" name="Interbase" />
-      <member cname="PK_LICENSE_ENUM_ISC" name="Isc" />
-      <member cname="PK_LICENSE_ENUM_JABBER" name="Jabber" />
-      <member cname="PK_LICENSE_ENUM_JASPER" name="Jasper" />
-      <member cname="PK_LICENSE_ENUM_LPPL" name="Lppl" />
-      <member cname="PK_LICENSE_ENUM_LIBTIFF" name="Libtiff" />
-      <member cname="PK_LICENSE_ENUM_LPL" name="Lpl" />
-      <member cname="PK_LICENSE_ENUM_MECAB_IPADIC" name="MecabIpadic" />
-      <member cname="PK_LICENSE_ENUM_MIT" name="Mit" />
-      <member cname="PK_LICENSE_ENUM_MIT_WITH_ADVERTISING" name="MitWithAdvertising" />
-      <member cname="PK_LICENSE_ENUM_MPLV1_DOT_0" name="Mplv1Dot0" />
-      <member cname="PK_LICENSE_ENUM_MPLV1_DOT_1" name="Mplv1Dot1" />
-      <member cname="PK_LICENSE_ENUM_NCSA" name="Ncsa" />
-      <member cname="PK_LICENSE_ENUM_NGPL" name="Ngpl" />
-      <member cname="PK_LICENSE_ENUM_NOSL" name="Nosl" />
-      <member cname="PK_LICENSE_ENUM_NETCDF" name="Netcdf" />
-      <member cname="PK_LICENSE_ENUM_NETSCAPE" name="Netscape" />
-      <member cname="PK_LICENSE_ENUM_NOKIA" name="Nokia" />
-      <member cname="PK_LICENSE_ENUM_OPENLDAP" name="Openldap" />
-      <member cname="PK_LICENSE_ENUM_OPENPBS" name="Openpbs" />
-      <member cname="PK_LICENSE_ENUM_OSL_1_DOT_0" name="Osl1Dot0" />
-      <member cname="PK_LICENSE_ENUM_OSL_1_DOT_1" name="Osl1Dot1" />
-      <member cname="PK_LICENSE_ENUM_OSL_2_DOT_0" name="Osl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_OSL_3_DOT_0" name="Osl3Dot0" />
-      <member cname="PK_LICENSE_ENUM_OPENSSL" name="Openssl" />
-      <member cname="PK_LICENSE_ENUM_OREILLY" name="Oreilly" />
-      <member cname="PK_LICENSE_ENUM_PHORUM" name="Phorum" />
-      <member cname="PK_LICENSE_ENUM_PHP" name="Php" />
-      <member cname="PK_LICENSE_ENUM_PUBLIC_DOMAIN" name="PublicDomain" />
-      <member cname="PK_LICENSE_ENUM_PYTHON" name="Python" />
-      <member cname="PK_LICENSE_ENUM_QPL" name="Qpl" />
-      <member cname="PK_LICENSE_ENUM_RPSL" name="Rpsl" />
-      <member cname="PK_LICENSE_ENUM_RUBY" name="Ruby" />
-      <member cname="PK_LICENSE_ENUM_SENDMAIL" name="Sendmail" />
-      <member cname="PK_LICENSE_ENUM_SLEEPYCAT" name="Sleepycat" />
-      <member cname="PK_LICENSE_ENUM_SLIB" name="Slib" />
-      <member cname="PK_LICENSE_ENUM_SISSL" name="Sissl" />
-      <member cname="PK_LICENSE_ENUM_SPL" name="Spl" />
-      <member cname="PK_LICENSE_ENUM_TCL" name="Tcl" />
-      <member cname="PK_LICENSE_ENUM_UCD" name="Ucd" />
-      <member cname="PK_LICENSE_ENUM_VIM" name="Vim" />
-      <member cname="PK_LICENSE_ENUM_VNLSL" name="Vnlsl" />
-      <member cname="PK_LICENSE_ENUM_VSL" name="Vsl" />
-      <member cname="PK_LICENSE_ENUM_W3C" name="W3c" />
-      <member cname="PK_LICENSE_ENUM_WXWIDGETS" name="Wxwidgets" />
-      <member cname="PK_LICENSE_ENUM_XINETD" name="Xinetd" />
-      <member cname="PK_LICENSE_ENUM_ZEND" name="Zend" />
-      <member cname="PK_LICENSE_ENUM_ZPLV1_DOT_0" name="Zplv1Dot0" />
-      <member cname="PK_LICENSE_ENUM_ZPLV2_DOT_0" name="Zplv2Dot0" />
-      <member cname="PK_LICENSE_ENUM_ZPLV2_DOT_1" name="Zplv2Dot1" />
-      <member cname="PK_LICENSE_ENUM_ZLIB" name="Zlib" />
-      <member cname="PK_LICENSE_ENUM_ZLIB_WITH_ACK" name="ZlibWithAck" />
-      <member cname="PK_LICENSE_ENUM_CDL" name="Cdl" />
-      <member cname="PK_LICENSE_ENUM_FBSDDL" name="Fbsddl" />
-      <member cname="PK_LICENSE_ENUM_GFDL" name="Gfdl" />
-      <member cname="PK_LICENSE_ENUM_IEEE" name="Ieee" />
-      <member cname="PK_LICENSE_ENUM_OFSFDL" name="Ofsfdl" />
-      <member cname="PK_LICENSE_ENUM_OPEN_PUBLICATION" name="OpenPublication" />
-      <member cname="PK_LICENSE_ENUM_CC_BY" name="CcBy" />
-      <member cname="PK_LICENSE_ENUM_CC_BY_SA" name="CcBySa" />
-      <member cname="PK_LICENSE_ENUM_CC_BY_ND" name="CcByNd" />
-      <member cname="PK_LICENSE_ENUM_DSL" name="Dsl" />
-      <member cname="PK_LICENSE_ENUM_FREE_ART" name="FreeArt" />
-      <member cname="PK_LICENSE_ENUM_OFL" name="Ofl" />
-      <member cname="PK_LICENSE_ENUM_UTOPIA" name="Utopia" />
-      <member cname="PK_LICENSE_ENUM_ARPHIC" name="Arphic" />
-      <member cname="PK_LICENSE_ENUM_BAEKMUK" name="Baekmuk" />
-      <member cname="PK_LICENSE_ENUM_BITSTREAM_VERA" name="BitstreamVera" />
-      <member cname="PK_LICENSE_ENUM_LUCIDA" name="Lucida" />
-      <member cname="PK_LICENSE_ENUM_MPLUS" name="Mplus" />
-      <member cname="PK_LICENSE_ENUM_STIX" name="Stix" />
-      <member cname="PK_LICENSE_ENUM_XANO" name="Xano" />
-      <member cname="PK_LICENSE_ENUM_VOSTROM" name="Vostrom" />
-      <member cname="PK_LICENSE_ENUM_XEROX" name="Xerox" />
-      <member cname="PK_LICENSE_ENUM_RICEBSD" name="Ricebsd" />
-      <member cname="PK_LICENSE_ENUM_QHULL" name="Qhull" />
-      <member cname="PK_LICENSE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="MessageEnum" cname="PkMessageEnum" type="enum">
-      <member cname="PK_MESSAGE_ENUM_BROKEN_MIRROR" name="BrokenMirror" />
-      <member cname="PK_MESSAGE_ENUM_CONNECTION_REFUSED" name="ConnectionRefused" />
-      <member cname="PK_MESSAGE_ENUM_PARAMETER_INVALID" name="ParameterInvalid" />
-      <member cname="PK_MESSAGE_ENUM_PRIORITY_INVALID" name="PriorityInvalid" />
-      <member cname="PK_MESSAGE_ENUM_BACKEND_ERROR" name="BackendError" />
-      <member cname="PK_MESSAGE_ENUM_DAEMON_ERROR" name="DaemonError" />
-      <member cname="PK_MESSAGE_ENUM_CACHE_BEING_REBUILT" name="CacheBeingRebuilt" />
-      <member cname="PK_MESSAGE_ENUM_UNTRUSTED_PACKAGE" name="UntrustedPackage" />
-      <member cname="PK_MESSAGE_ENUM_NEWER_PACKAGE_EXISTS" name="NewerPackageExists" />
-      <member cname="PK_MESSAGE_ENUM_COULD_NOT_FIND_PACKAGE" name="CouldNotFindPackage" />
-      <member cname="PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED" name="ConfigFilesChanged" />
-      <member cname="PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED" name="PackageAlreadyInstalled" />
-      <member cname="PK_MESSAGE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="NetworkEnum" cname="PkNetworkEnum" type="enum">
-      <member cname="PK_NETWORK_ENUM_OFFLINE" name="Offline" />
-      <member cname="PK_NETWORK_ENUM_ONLINE" name="Online" />
-      <member cname="PK_NETWORK_ENUM_WIRED" name="Wired" />
-      <member cname="PK_NETWORK_ENUM_WIFI" name="Wifi" />
-      <member cname="PK_NETWORK_ENUM_MOBILE" name="Mobile" />
-      <member cname="PK_NETWORK_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ProvidesEnum" cname="PkProvidesEnum" type="enum">
-      <member cname="PK_PROVIDES_ENUM_ANY" name="Any" />
-      <member cname="PK_PROVIDES_ENUM_MODALIAS" name="Modalias" />
-      <member cname="PK_PROVIDES_ENUM_CODEC" name="Codec" />
-      <member cname="PK_PROVIDES_ENUM_MIMETYPE" name="Mimetype" />
-      <member cname="PK_PROVIDES_ENUM_FONT" name="Font" />
-      <member cname="PK_PROVIDES_ENUM_HARDWARE_DRIVER" name="HardwareDriver" />
-      <member cname="PK_PROVIDES_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="RestartEnum" cname="PkRestartEnum" type="enum">
-      <member cname="PK_RESTART_ENUM_NONE" name="None" />
-      <member cname="PK_RESTART_ENUM_APPLICATION" name="Application" />
-      <member cname="PK_RESTART_ENUM_SESSION" name="Session" />
-      <member cname="PK_RESTART_ENUM_SYSTEM" name="System" />
-      <member cname="PK_RESTART_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="RoleEnum" cname="PkRoleEnum" type="enum">
-      <member cname="PK_ROLE_ENUM_CANCEL" name="Cancel" />
-      <member cname="PK_ROLE_ENUM_GET_DEPENDS" name="GetDepends" />
-      <member cname="PK_ROLE_ENUM_GET_DETAILS" name="GetDetails" />
-      <member cname="PK_ROLE_ENUM_GET_FILES" name="GetFiles" />
-      <member cname="PK_ROLE_ENUM_GET_PACKAGES" name="GetPackages" />
-      <member cname="PK_ROLE_ENUM_GET_REPO_LIST" name="GetRepoList" />
-      <member cname="PK_ROLE_ENUM_GET_REQUIRES" name="GetRequires" />
-      <member cname="PK_ROLE_ENUM_GET_UPDATE_DETAIL" name="GetUpdateDetail" />
-      <member cname="PK_ROLE_ENUM_GET_UPDATES" name="GetUpdates" />
-      <member cname="PK_ROLE_ENUM_INSTALL_FILES" name="InstallFiles" />
-      <member cname="PK_ROLE_ENUM_INSTALL_PACKAGES" name="InstallPackages" />
-      <member cname="PK_ROLE_ENUM_INSTALL_SIGNATURE" name="InstallSignature" />
-      <member cname="PK_ROLE_ENUM_REFRESH_CACHE" name="RefreshCache" />
-      <member cname="PK_ROLE_ENUM_REMOVE_PACKAGES" name="RemovePackages" />
-      <member cname="PK_ROLE_ENUM_REPO_ENABLE" name="RepoEnable" />
-      <member cname="PK_ROLE_ENUM_REPO_SET_DATA" name="RepoSetData" />
-      <member cname="PK_ROLE_ENUM_RESOLVE" name="Resolve" />
-      <member cname="PK_ROLE_ENUM_ROLLBACK" name="Rollback" />
-      <member cname="PK_ROLE_ENUM_SEARCH_DETAILS" name="SearchDetails" />
-      <member cname="PK_ROLE_ENUM_SEARCH_FILE" name="SearchFile" />
-      <member cname="PK_ROLE_ENUM_SEARCH_GROUP" name="SearchGroup" />
-      <member cname="PK_ROLE_ENUM_SEARCH_NAME" name="SearchName" />
-      <member cname="PK_ROLE_ENUM_UPDATE_PACKAGES" name="UpdatePackages" />
-      <member cname="PK_ROLE_ENUM_UPDATE_SYSTEM" name="UpdateSystem" />
-      <member cname="PK_ROLE_ENUM_WHAT_PROVIDES" name="WhatProvides" />
-      <member cname="PK_ROLE_ENUM_ACCEPT_EULA" name="AcceptEula" />
-      <member cname="PK_ROLE_ENUM_DOWNLOAD_PACKAGES" name="DownloadPackages" />
-      <member cname="PK_ROLE_ENUM_GET_DISTRO_UPGRADES" name="GetDistroUpgrades" />
-      <member cname="PK_ROLE_ENUM_GET_CATEGORIES" name="GetCategories" />
-      <member cname="PK_ROLE_ENUM_GET_OLD_TRANSACTIONS" name="GetOldTransactions" />
-      <member cname="PK_ROLE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ServicePackError" cname="PkServicePackError" gtype="pk_service_pack_error_get_type" type="enum">
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_SETUP" name="FailedSetup" />
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_DOWNLOAD" name="FailedDownload" />
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION" name="FailedExtraction" />
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_CREATE" name="FailedCreate" />
-      <member cname="PK_SERVICE_PACK_ERROR_NOTHING_TO_DO" name="NothingToDo" />
-      <member cname="PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE" name="NotCompatible" />
-    </enum>
-    <enum name="ServicePackStatus" cname="PkServicePackStatus" type="enum">
-      <member cname="PK_SERVICE_PACK_STATUS_DOWNLOAD_PACKAGES" name="DownloadPackages" />
-      <member cname="PK_SERVICE_PACK_STATUS_DOWNLOAD_DEPENDENCIES" name="DownloadDependencies" />
-      <member cname="PK_SERVICE_PACK_STATUS_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="SigTypeEnum" cname="PkSigTypeEnum" type="enum">
-      <member cname="PK_SIGTYPE_ENUM_GPG" name="Gpg" />
-      <member cname="PK_SIGTYPE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="StatusEnum" cname="PkStatusEnum" type="enum">
-      <member cname="PK_STATUS_ENUM_WAIT" name="Wait" />
-      <member cname="PK_STATUS_ENUM_SETUP" name="Setup" />
-      <member cname="PK_STATUS_ENUM_RUNNING" name="Running" />
-      <member cname="PK_STATUS_ENUM_QUERY" name="Query" />
-      <member cname="PK_STATUS_ENUM_INFO" name="Info" />
-      <member cname="PK_STATUS_ENUM_REMOVE" name="Remove" />
-      <member cname="PK_STATUS_ENUM_REFRESH_CACHE" name="RefreshCache" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD" name="Download" />
-      <member cname="PK_STATUS_ENUM_INSTALL" name="Install" />
-      <member cname="PK_STATUS_ENUM_UPDATE" name="Update" />
-      <member cname="PK_STATUS_ENUM_CLEANUP" name="Cleanup" />
-      <member cname="PK_STATUS_ENUM_OBSOLETE" name="Obsolete" />
-      <member cname="PK_STATUS_ENUM_DEP_RESOLVE" name="DepResolve" />
-      <member cname="PK_STATUS_ENUM_SIG_CHECK" name="SigCheck" />
-      <member cname="PK_STATUS_ENUM_ROLLBACK" name="Rollback" />
-      <member cname="PK_STATUS_ENUM_TEST_COMMIT" name="TestCommit" />
-      <member cname="PK_STATUS_ENUM_COMMIT" name="Commit" />
-      <member cname="PK_STATUS_ENUM_REQUEST" name="Request" />
-      <member cname="PK_STATUS_ENUM_FINISHED" name="Finished" />
-      <member cname="PK_STATUS_ENUM_CANCEL" name="Cancel" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_REPOSITORY" name="DownloadRepository" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST" name="DownloadPackagelist" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_FILELIST" name="DownloadFilelist" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_CHANGELOG" name="DownloadChangelog" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_GROUP" name="DownloadGroup" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO" name="DownloadUpdateinfo" />
-      <member cname="PK_STATUS_ENUM_REPACKAGING" name="Repackaging" />
-      <member cname="PK_STATUS_ENUM_LOADING_CACHE" name="LoadingCache" />
-      <member cname="PK_STATUS_ENUM_SCAN_APPLICATIONS" name="ScanApplications" />
-      <member cname="PK_STATUS_ENUM_GENERATE_PACKAGE_LIST" name="GeneratePackageList" />
-      <member cname="PK_STATUS_ENUM_WAITING_FOR_LOCK" name="WaitingForLock" />
-      <member cname="PK_STATUS_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="UpdateStateEnum" cname="PkUpdateStateEnum" type="enum">
-      <member cname="PK_UPDATE_STATE_ENUM_STABLE" name="Stable" />
-      <member cname="PK_UPDATE_STATE_ENUM_UNSTABLE" name="Unstable" />
-      <member cname="PK_UPDATE_STATE_ENUM_TESTING" name="Testing" />
-      <member cname="PK_UPDATE_STATE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <callback name="ObjListCompareFunc" cname="PkObjListCompareFunc">
-      <return-type type="gint" />
-      <parameters>
-        <parameter type="gconstpointer" name="data1" />
-        <parameter type="gconstpointer" name="data2" />
-      </parameters>
-    </callback>
-    <callback name="ObjListCopyFunc" cname="PkObjListCopyFunc">
-      <return-type type="gpointer" />
-      <parameters>
-        <parameter type="gconstpointer" name="data" />
-      </parameters>
-    </callback>
-    <callback name="ObjListEqualFunc" cname="PkObjListEqualFunc">
-      <return-type type="gboolean" />
-      <parameters>
-        <parameter type="gconstpointer" name="data1" />
-        <parameter type="gconstpointer" name="data2" />
-      </parameters>
-    </callback>
-    <callback name="ObjListFreeFunc" cname="PkObjListFreeFunc">
-      <return-type type="void" />
-      <parameters>
-        <parameter type="gpointer" name="data" />
-      </parameters>
-    </callback>
-    <callback name="ObjListFromStringFunc" cname="PkObjListFromStringFunc">
-      <return-type type="gpointer" />
-      <parameters>
-        <parameter type="const-gchar*" name="data" />
-      </parameters>
-    </callback>
-    <callback name="ObjListNewFunc" cname="PkObjListNewFunc">
-      <return-type type="gpointer" />
-    </callback>
-    <callback name="ObjListToStringFunc" cname="PkObjListToStringFunc">
-      <return-type type="gchar*" />
-      <parameters>
-        <parameter type="gconstpointer" name="data" />
-      </parameters>
-    </callback>
-    <object name="Catalog" cname="PkCatalog" parent="GObject">
-      <field name="Priv" cname="priv" type="PkCatalogPrivate*" />
-      <signal name="Progress" cname="progress" when="LAST">
-        <return-type type="void" />
-        <parameters>
-          <parameter name="inst" type="PkCatalog*" />
-          <parameter name="p0" type="guint32" />
-          <parameter name="p1" type="gchar*" />
-        </parameters>
-      </signal>
-      <method name="Cancel" cname="pk_catalog_cancel">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetType" cname="pk_catalog_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_catalog_new" />
-      <method name="ProcessFiles" cname="pk_catalog_process_files">
-        <return-type type="PkPackageList*" />
-        <parameters>
-          <parameter type="gchar**" name="filenames" />
-        </parameters>
-      </method>
-    </object>
-    <object name="Client" cname="PkClient" parent="GObject">
-      <field name="Priv" cname="priv" type="PkClientPrivate*" />
-      <signal name="StatusChanged" cname="status-changed" when="LAST" field_name="status_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkStatusEnum" name="status" />
-        </parameters>
-      </signal>
-      <signal name="ProgressChanged" cname="progress-changed" when="LAST" field_name="progress_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="guint" name="percentage" />
-          <parameter type="guint" name="subpercentage" />
-          <parameter type="guint" name="elapsed" />
-          <parameter type="guint" name="remaining" />
-        </parameters>
-      </signal>
-      <signal name="Package" cname="package" when="LAST" manual="true" field_name="package">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkPackageObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="Transaction" cname="transaction" when="LAST" manual="true" field_name="transaction">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkTransactionObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="DistroUpgrade" cname="distro-upgrade" when="LAST" manual="true" field_name="distro_upgrade">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkUpdateStateEnum" name="type" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </signal>
-      <signal name="UpdateDetail" cname="update-detail" when="LAST" manual="true" field_name="update_detail">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkUpdateDetailObj*" name="update_detail" />
-        </parameters>
-      </signal>
-      <signal name="Details" cname="details" when="LAST" manual="true" field_name="details">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkDetailsObj*" name="package_detail" />
-        </parameters>
-      </signal>
-      <signal name="Files" cname="files" when="LAST" field_name="files">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="const-gchar*" name="filelist" />
-        </parameters>
-      </signal>
-      <signal name="RepoSignatureRequired" cname="repo-signature-required" when="LAST" field_name="repo_signature_required">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="const-gchar*" name="repository_name" />
-          <parameter type="const-gchar*" name="key_url" />
-          <parameter type="const-gchar*" name="key_userid" />
-          <parameter type="const-gchar*" name="key_id" />
-          <parameter type="const-gchar*" name="key_fingerprint" />
-          <parameter type="const-gchar*" name="key_timestamp" />
-          <parameter type="PkSigTypeEnum" name="type" />
-        </parameters>
-      </signal>
-      <signal name="EulaRequired" cname="eula-required" when="LAST" field_name="eula_required">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="eula_id" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="const-gchar*" name="vendor_name" />
-          <parameter type="const-gchar*" name="license_agreement" />
-        </parameters>
-      </signal>
-      <signal name="RepoDetail" cname="repo-detail" when="LAST" field_name="repo_detail">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="repo_id" />
-          <parameter type="const-gchar*" name="description" />
-          <parameter type="gboolean" name="enabled" />
-        </parameters>
-      </signal>
-      <signal name="ErrorCode" cname="error-code" when="LAST" field_name="error_code">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkErrorCodeEnum" name="code" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <signal name="RequireRestart" cname="require-restart" when="LAST" manual="true" field_name="require_restart">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkRestartEnum" name="restart" />
-          <parameter type="PkPackageId*" name="id" />
-        </parameters>
-      </signal>
-      <signal name="Message" cname="message" when="LAST" field_name="message">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkMessageEnum" name="message" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <signal name="AllowCancel" cname="allow-cancel" when="LAST" field_name="allow_cancel">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="gboolean" name="allow_cancel" />
-        </parameters>
-      </signal>
-      <signal name="CallerActiveChanged" cname="caller-active-changed" when="LAST" field_name="caller_active_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="gboolean" name="is_active" />
-        </parameters>
-      </signal>
-      <signal name="Category" cname="category" when="LAST" manual="true" field_name="category">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkCategoryObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="Destroy" cname="destroy" when="LAST" field_name="finished">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkExitEnum" name="exit" />
-          <parameter type="guint" name="runtime" />
-        </parameters>
-      </signal>
-      <method name="AcceptEula" cname="pk_client_accept_eula">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="eula_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Cancel" cname="pk_client_cancel">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="DownloadPackages" cname="pk_client_download_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="const-gchar*" name="directory" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ErrorQuark" cname="pk_client_error_quark" shared="true">
-        <return-type type="GQuark" />
-      </method>
-      <method name="GetAllowCancel" cname="pk_client_get_allow_cancel">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean*" name="allow_cancel" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetCachedObjects" cname="pk_client_get_cached_objects">
-        <return-type type="PkObjList*" />
-      </method>
-      <method name="GetCategories" cname="pk_client_get_categories">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetDepends" cname="pk_client_get_depends">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="gboolean" name="recursive" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetDetails" cname="pk_client_get_details">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetDistroUpgrades" cname="pk_client_get_distro_upgrades">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetFiles" cname="pk_client_get_files">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetOldTransactions" cname="pk_client_get_old_transactions">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="guint" name="number" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetPackage" cname="pk_client_get_package">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetPackageList" cname="pk_client_get_package_list">
-        <return-type type="PkPackageList*" />
-      </method>
-      <method name="GetPackages" cname="pk_client_get_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetProgress" cname="pk_client_get_progress">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="guint*" name="percentage" />
-          <parameter type="guint*" name="subpercentage" />
-          <parameter type="guint*" name="elapsed" />
-          <parameter type="guint*" name="remaining" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetRepoList" cname="pk_client_get_repo_list">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetRequireRestart" cname="pk_client_get_require_restart">
-        <return-type type="PkRestartEnum" />
-      </method>
-      <method name="GetRequireRestartList" cname="pk_client_get_require_restart_list">
-        <return-type type="const-GPtrArray*" />
-      </method>
-      <method name="GetRequires" cname="pk_client_get_requires">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="gboolean" name="recursive" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetRole" cname="pk_client_get_role">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkRoleEnum*" name="role" />
-          <parameter type="gchar**" name="text" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetStatus" cname="pk_client_get_status">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkStatusEnum*" name="status" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetTid" cname="pk_client_get_tid">
-        <return-type type="gchar*" />
-      </method>
-      <method name="GetType" cname="pk_client_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="GetUpdateDetail" cname="pk_client_get_update_detail">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetUpdates" cname="pk_client_get_updates">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetUseBuffer" cname="pk_client_get_use_buffer">
-        <return-type type="gboolean" />
-      </method>
-      <method name="InstallFile" cname="pk_client_install_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="only_trusted" />
-          <parameter type="const-gchar*" name="file_rel" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="InstallFiles" cname="pk_client_install_files">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="only_trusted" />
-          <parameter type="gchar**" name="files_rel" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="InstallPackages" cname="pk_client_install_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="InstallSignature" cname="pk_client_install_signature">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkSigTypeEnum" name="type" />
-          <parameter type="const-gchar*" name="key_id" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="IsCallerActive" cname="pk_client_is_caller_active">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean*" name="is_active" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <constructor cname="pk_client_new" />
-      <method name="RefreshCache" cname="pk_client_refresh_cache">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="force" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="RemovePackages" cname="pk_client_remove_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="gboolean" name="allow_deps" />
-          <parameter type="gboolean" name="autoremove" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="RepoEnable" cname="pk_client_repo_enable">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="repo_id" />
-          <parameter type="gboolean" name="enabled" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="RepoSetData" cname="pk_client_repo_set_data">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="repo_id" />
-          <parameter type="const-gchar*" name="parameter" />
-          <parameter type="const-gchar*" name="value" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Requeue" cname="pk_client_requeue">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Reset" cname="pk_client_reset">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Resolve" cname="pk_client_resolve">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="gchar**" name="packages" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Rollback" cname="pk_client_rollback">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="transaction_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchDetails" cname="pk_client_search_details">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchFile" cname="pk_client_search_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchGroup" cname="pk_client_search_group">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchName" cname="pk_client_search_name">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetLocale" cname="pk_client_set_locale">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="code" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetSynchronous" cname="pk_client_set_synchronous">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="synchronous" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetTid" cname="pk_client_set_tid">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="tid" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetTimeout" cname="pk_client_set_timeout">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gint" name="timeout" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetUseBuffer" cname="pk_client_set_use_buffer">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="use_buffer" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="UpdatePackages" cname="pk_client_update_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="UpdateSystem" cname="pk_client_update_system">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="WhatProvides" cname="pk_client_what_provides">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="PkProvidesEnum" name="provides" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-    </object>
-    <object name="Connection" cname="PkConnection" parent="GObject">
-      <field name="Priv" cname="priv" type="PkConnectionPrivate*" />
-      <signal name="ConnectionChanged" cname="connection-changed" when="LAST" field_name="connection_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkConnection*" name="connection" />
-          <parameter type="gboolean" name="connected" />
-        </parameters>
-      </signal>
-      <method name="GetType" cname="pk_connection_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_connection_new" />
-      <method name="Valid" cname="pk_connection_valid">
-        <return-type type="gboolean" />
-      </method>
-    </object>
-    <object name="Control" cname="PkControl" parent="GObject">
-      <field name="Priv" cname="priv" type="PkControlPrivate*" />
-      <signal name="UpdatesChanged" cname="updates-changed" when="LAST" field_name="updates_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="RepoListChanged" cname="repo-list-changed" when="LAST" field_name="repo_list_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="NetworkStateChanged" cname="network-state-changed" when="LAST" field_name="network_state_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="RestartSchedule" cname="restart-schedule" when="LAST" field_name="restart_schedule">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="TransactionListChanged" cname="transaction-list-changed" when="LAST" field_name="transaction_list_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="Locked" cname="locked" when="LAST" field_name="locked">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-          <parameter type="gboolean" name="is_locked" />
-        </parameters>
-      </signal>
-      <method name="AllocateTransactionId" cname="pk_control_allocate_transaction_id">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="tid" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ErrorQuark" cname="pk_control_error_quark" shared="true">
-        <return-type type="GQuark" />
-      </method>
-      <method name="GetActions" cname="pk_control_get_actions">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetBackendDetail" cname="pk_control_get_backend_detail">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="name" />
-          <parameter type="gchar**" name="author" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetFilters" cname="pk_control_get_filters">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetGroups" cname="pk_control_get_groups">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetMimeTypes" cname="pk_control_get_mime_types">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetNetworkState" cname="pk_control_get_network_state">
-        <return-type type="PkNetworkEnum" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetTimeSinceAction" cname="pk_control_get_time_since_action">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkRoleEnum" name="role" />
-          <parameter type="guint*" name="seconds" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="pk_control_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_control_new" />
-      <method name="SetProxy" cname="pk_control_set_proxy">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="proxy_http" />
-          <parameter type="const-gchar*" name="proxy_ftp" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="TransactionListGet" cname="pk_control_transaction_list_get">
-        <return-type type="const-gchar**" />
-      </method>
-      <method name="TransactionListPrint" cname="pk_control_transaction_list_print">
-        <return-type type="gboolean" />
-      </method>
-    </object>
-    <object name="Desktop" cname="PkDesktop" parent="GObject">
-      <field name="Priv" cname="priv" type="PkDesktopPrivate*" />
-      <method name="GetFilesForPackage" cname="pk_desktop_get_files_for_package">
-        <return-type type="GPtrArray*" />
-        <parameters>
-          <parameter type="const-gchar*" name="package" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetPackageForFile" cname="pk_desktop_get_package_for_file">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetShownForPackage" cname="pk_desktop_get_shown_for_package">
-        <return-type type="GPtrArray*" />
-        <parameters>
-          <parameter type="const-gchar*" name="package" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="pk_desktop_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_desktop_new" />
-      <method name="OpenDatabase" cname="pk_desktop_open_database">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-    </object>
-    <object name="ObjList" cname="PkObjList" parent="GObject">
-      <field name="Priv" cname="priv" type="PkObjListPrivate*" />
-      <field name="Len" cname="len" type="guint" />
-      <method name="Add" cname="pk_obj_list_add">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gconstpointer" name="data" />
-        </parameters>
-      </method>
-      <method name="AddArray" cname="pk_obj_list_add_array">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-GPtrArray*" name="data" />
-        </parameters>
-      </method>
-      <method name="AddList" cname="pk_obj_list_add_list">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-PkObjList*" name="data" />
-        </parameters>
-      </method>
-      <method name="AddStrv" cname="pk_obj_list_add_strv">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gpointer**" name="data" />
-        </parameters>
-      </method>
-      <method name="Clear" cname="pk_obj_list_clear">
-        <return-type type="void" />
-      </method>
-      <method name="Exists" cname="pk_obj_list_exists">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gconstpointer" name="data" />
-        </parameters>
-      </method>
-      <method name="FromFile" cname="pk_obj_list_from_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="GetArray" cname="pk_obj_list_get_array">
-        <return-type type="const-GPtrArray*" />
-      </method>
-      <method name="GetType" cname="pk_obj_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="Index" cname="pk_obj_list_index">
-        <return-type type="gconst-pointer" />
-        <parameters>
-          <parameter type="guint" name="index" />
-        </parameters>
-      </method>
-      <constructor cname="pk_obj_list_new" />
-      <method name="Print" cname="pk_obj_list_print">
-        <return-type type="void" />
-      </method>
-      <method name="Remove" cname="pk_obj_list_remove">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gconstpointer" name="data" />
-        </parameters>
-      </method>
-      <method name="RemoveDuplicate" cname="pk_obj_list_remove_duplicate">
-        <return-type type="void" />
-      </method>
-      <method name="RemoveIndex" cname="pk_obj_list_remove_index">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="guint" name="index" />
-        </parameters>
-      </method>
-      <method name="RemoveList" cname="pk_obj_list_remove_list">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-PkObjList*" name="data" />
-        </parameters>
-      </method>
-      <method name="SetCompare" cname="pk_obj_list_set_compare">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListCompareFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetCopy" cname="pk_obj_list_set_copy">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListCopyFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetEqual" cname="pk_obj_list_set_equal">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListEqualFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetFree" cname="pk_obj_list_set_free">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListFreeFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetFromString" cname="pk_obj_list_set_from_string">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListFromStringFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetNew" cname="pk_obj_list_set_new">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListNewFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetToString" cname="pk_obj_list_set_to_string">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListToStringFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="Sort" cname="pk_obj_list_sort">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GCompareFunc" name="sort_func" />
-        </parameters>
-      </method>
-      <method name="ToFile" cname="pk_obj_list_to_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="ToString" cname="pk_obj_list_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </object>
-    <object name="PackageList" cname="PkPackageList" parent="PkObjList">
-      <field name="Priv" cname="priv" type="PkPackageListPrivate*" />
-      <method name="Add" cname="pk_package_list_add">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkInfoEnum" name="info" />
-          <parameter type="const-PkPackageId*" name="ident" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </method>
-      <method name="Contains" cname="pk_package_list_contains">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="GetObj" cname="pk_package_list_get_obj">
-        <return-type type="const-PkPackageObj*" />
-        <parameters>
-          <parameter type="guint" name="item" />
-        </parameters>
-      </method>
-      <method name="GetSize" cname="pk_package_list_get_size">
-        <return-type type="guint" />
-      </method>
-      <method name="GetType" cname="pk_package_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_package_list_new" />
-      <method name="Remove" cname="pk_package_list_remove">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="SetFuzzyArch" cname="pk_package_list_set_fuzzy_arch">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="fuzzy_arch" />
-        </parameters>
-      </method>
-      <method name="Sort" cname="pk_package_list_sort">
-        <return-type type="gboolean" />
-      </method>
-      <method name="SortInfo" cname="pk_package_list_sort_info">
-        <return-type type="gboolean" />
-      </method>
-      <method name="SortSummary" cname="pk_package_list_sort_summary">
-        <return-type type="gboolean" />
-      </method>
-      <method name="ToStrv" cname="pk_package_list_to_strv">
-        <return-type type="gchar**" />
-      </method>
-    </object>
-    <object name="ServicePack" cname="PkServicePack" parent="GObject">
-      <field name="Priv" cname="priv" type="PkServicePackPrivate*" />
-      <signal name="Package" cname="package" when="LAST" manual="true" field_name="package">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkServicePack*" name="pack" />
-          <parameter type="const-PkPackageObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="Percentage" cname="percentage" when="LAST" field_name="percentage">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkServicePack*" name="pack" />
-          <parameter type="guint" name="percentage" />
-        </parameters>
-      </signal>
-      <signal name="Status" cname="status" when="LAST" field_name="status">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkServicePack*" name="pack" />
-          <parameter type="PkServicePackStatus" name="status" />
-        </parameters>
-      </signal>
-      <method name="Cancel" cname="pk_service_pack_cancel">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CheckValid" cname="pk_service_pack_check_valid">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CreateForPackageId" cname="pk_service_pack_create_for_package_id">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CreateForPackageIds" cname="pk_service_pack_create_for_package_ids">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CreateForUpdates" cname="pk_service_pack_create_for_updates">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ErrorQuark" cname="pk_service_pack_error_quark" shared="true">
-        <return-type type="GQuark" />
-      </method>
-      <method name="GetType" cname="pk_service_pack_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_service_pack_new" />
-      <method name="SetExcludeList" cname="pk_service_pack_set_exclude_list">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkPackageList*" name="list" />
-        </parameters>
-      </method>
-      <method name="SetFilename" cname="pk_service_pack_set_filename">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="SetTempDirectory" cname="pk_service_pack_set_temp_directory">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="directory" />
-        </parameters>
-      </method>
-    </object>
-    <object name="TaskList" cname="PkTaskList" parent="GObject">
-      <field name="Priv" cname="priv" type="PkTaskListPrivate*" />
-      <signal name="Changed" cname="changed" when="LAST" field_name="changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-        </parameters>
-      </signal>
-      <signal name="StatusChanged" cname="status-changed" when="LAST" field_name="status_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-        </parameters>
-      </signal>
-      <signal name="Message" cname="message" when="LAST" manual="true" field_name="message">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkMessageEnum" name="message" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <signal name="Finished" cname="finished" when="LAST" manual="true" field_name="finished">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkExitEnum" name="exit" />
-          <parameter type="guint" name="runtime" />
-        </parameters>
-      </signal>
-      <signal name="ErrorCode" cname="error-code" when="LAST" manual="true" field_name="error_code">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkErrorCodeEnum" name="code" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <method name="ContainsRole" cname="pk_task_list_contains_role">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkRoleEnum" name="role" />
-        </parameters>
-      </method>
-      <method name="Free" cname="pk_task_list_free">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetItem" cname="pk_task_list_get_item">
-        <return-type type="PkTaskListItem*" />
-        <parameters>
-          <parameter type="guint" name="item" />
-        </parameters>
-      </method>
-      <method name="GetSize" cname="pk_task_list_get_size">
-        <return-type type="guint" />
-      </method>
-      <method name="GetType" cname="pk_task_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_task_list_new" />
-      <method name="Print" cname="pk_task_list_print">
-        <return-type type="gboolean" />
-      </method>
-      <method name="Refresh" cname="pk_task_list_refresh">
-        <return-type type="gboolean" />
-      </method>
-    </object>
-    <alias name="Bitfield" cname="PkBitfield" type="guint64" />
-    <struct name="CategoryObj" cname="PkCategoryObj" opaque="true">
-      <field name="ParentId" cname="parent_id" type="gchar*" access="public" writeable="true" />
-      <field name="CatId" cname="cat_id" type="gchar*" access="public" writeable="true" />
-      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
-      <field name="Summary" cname="summary" type="gchar*" access="public" writeable="true" />
-      <field name="Icon" cname="icon" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_category_obj_copy">
-        <return-type type="PkCategoryObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_category_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_category_obj_new" />
-      <constructor cname="pk_category_obj_new_from_data">
-        <parameters>
-          <parameter type="const-gchar*" name="parent_id" />
-          <parameter type="const-gchar*" name="cat_id" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="summary" />
-          <parameter type="const-gchar*" name="icon" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="DetailsObj" cname="PkDetailsObj" opaque="true">
-      <field name="Id" cname="id" type="PkPackageId*" access="public" writeable="true" />
-      <field name="License" cname="license" type="gchar*" access="public" writeable="true" />
-      <field name="Group" cname="group" type="PkGroupEnum" access="public" writeable="true" />
-      <field name="Description" cname="description" type="gchar*" access="public" writeable="true" />
-      <field name="Url" cname="url" type="gchar*" access="public" writeable="true" />
-      <field name="Size" cname="size" type="guint64" access="public" writeable="true" />
-      <method name="Copy" cname="pk_details_obj_copy">
-        <return-type type="PkDetailsObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_details_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_details_obj_new" />
-      <constructor cname="pk_details_obj_new_from_data">
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id" />
-          <parameter type="const-gchar*" name="license" />
-          <parameter type="PkGroupEnum" name="group" />
-          <parameter type="const-gchar*" name="description" />
-          <parameter type="const-gchar*" name="url" />
-          <parameter type="guint64" name="size" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="DistroUpgradeObj" cname="PkDistroUpgradeObj" opaque="true">
-      <field name="State" cname="state" type="PkUpdateStateEnum" access="public" writeable="true" />
-      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
-      <field name="Summary" cname="summary" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_distro_upgrade_obj_copy">
-        <return-type type="PkDistroUpgradeObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_distro_upgrade_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_distro_upgrade_obj_new" />
-      <constructor cname="pk_distro_upgrade_obj_new_from_data">
-        <parameters>
-          <parameter type="PkUpdateStateEnum" name="state" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="EnumMatch" cname="PkEnumMatch">
-      <field name="Value" cname="value" type="guint" />
-      <field name="String" cname="string" type="const-gchar*" />
-    </struct>
-    <struct name="PackageId" cname="PkPackageId" opaque="true">
-      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
-      <field name="Version" cname="version" type="gchar*" access="public" writeable="true" />
-      <field name="Arch" cname="arch" type="gchar*" access="public" writeable="true" />
-      <field name="Data" cname="data" type="gchar*" access="public" writeable="true" />
-      <method name="Build" cname="pk_package_id_build" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="version" />
-          <parameter type="const-gchar*" name="arch" />
-          <parameter type="const-gchar*" name="data" />
-        </parameters>
-      </method>
-      <method name="Check" cname="pk_package_id_check" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="Copy" cname="pk_package_id_copy">
-        <return-type type="PkPackageId*" owned="true" />
-      </method>
-      <method name="Equal" cname="pk_package_id_equal">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id2" />
-        </parameters>
-      </method>
-      <method name="EqualFuzzyArch" cname="pk_package_id_equal_fuzzy_arch">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id2" />
-        </parameters>
-      </method>
-      <method name="EqualStrings" cname="pk_package_id_equal_strings" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="pid1" />
-          <parameter type="const-gchar*" name="pid2" />
-        </parameters>
-      </method>
-      <method name="Free" cname="pk_package_id_free">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetArch" cname="pk_package_id_get_arch">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetData" cname="pk_package_id_get_data">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetName" cname="pk_package_id_get_name">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetVersion" cname="pk_package_id_get_version">
-        <return-type type="const-gchar*" />
-      </method>
-      <constructor cname="pk_package_id_new" />
-      <constructor cname="pk_package_id_new_from_list">
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="version" />
-          <parameter type="const-gchar*" name="arch" />
-          <parameter type="const-gchar*" name="data" />
-        </parameters>
-      </constructor>
-      <constructor cname="pk_package_id_new_from_string">
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </constructor>
-      <method name="ToString" cname="pk_package_id_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </struct>
-    <struct name="PackageObj" cname="PkPackageObj" opaque="true">
-      <field name="Info" cname="info" type="PkInfoEnum" access="public" writeable="true" />
-      <field name="Id" cname="id" type="PkPackageId*" access="public" writeable="true" />
-      <field name="Summary" cname="summary" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_package_obj_copy">
-        <return-type type="PkPackageObj*" owned="true" />
-      </method>
-      <method name="Equal" cname="pk_package_obj_equal">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageObj*" name="obj2" />
-        </parameters>
-      </method>
-      <method name="EqualFuzzyArch" cname="pk_package_obj_equal_fuzzy_arch">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageObj*" name="obj2" />
-        </parameters>
-      </method>
-      <method name="Free" cname="pk_package_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <method name="FromString" cname="pk_package_obj_from_string" shared="true">
-        <return-type type="PkPackageObj*" />
-        <parameters>
-          <parameter type="const-gchar*" name="text" />
-        </parameters>
-      </method>
-      <constructor cname="pk_package_obj_new">
-        <parameters>
-          <parameter type="PkInfoEnum" name="info" />
-          <parameter type="const-PkPackageId*" name="id" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </constructor>
-      <method name="ToString" cname="pk_package_obj_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </struct>
-    <struct name="TaskListItem" cname="PkTaskListItem">
-      <field name="Tid" cname="tid" type="gchar*" />
-      <field name="Status" cname="status" type="PkStatusEnum" />
-      <field name="Role" cname="role" type="PkRoleEnum" />
-      <field name="Text" cname="text" type="gchar*" />
-      <field name="Monitor" cname="monitor" type="PkClient*" />
-      <field name="Valid" cname="valid" type="gboolean" />
-    </struct>
-    <struct name="TransactionObj" cname="PkTransactionObj" opaque="true">
-      <field name="Tid" cname="tid" type="gchar*" access="public" writeable="true" />
-      <field name="Timespec" cname="timespec" type="gchar*" access="public" writeable="true" />
-      <field name="Succeeded" cname="succeeded" type="gboolean" access="public" writeable="true" />
-      <field name="Role" cname="role" type="PkRoleEnum" access="public" writeable="true" />
-      <field name="Duration" cname="duration" type="guint" access="public" writeable="true" />
-      <field name="Data" cname="data" type="gchar*" access="public" writeable="true" />
-      <field name="Uid" cname="uid" type="guint" access="public" writeable="true" />
-      <field name="Cmdline" cname="cmdline" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_transaction_obj_copy">
-        <return-type type="PkTransactionObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_transaction_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_transaction_obj_new" />
-      <constructor cname="pk_transaction_obj_new_from_data">
-        <parameters>
-          <parameter type="const-gchar*" name="tid" />
-          <parameter type="const-gchar*" name="timespec" />
-          <parameter type="gboolean" name="succeeded" />
-          <parameter type="PkRoleEnum" name="role" />
-          <parameter type="guint" name="duration" />
-          <parameter type="const-gchar*" name="data" />
-          <parameter type="guint" name="uid" />
-          <parameter type="const-gchar*" name="cmdline" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="UpdateDetailObj" cname="PkUpdateDetailObj" opaque="true">
-      <field name="Id" cname="id" type="PkPackageId*" access="public" writeable="true" />
-      <field name="Updates" cname="updates" type="gchar*" access="public" writeable="true" />
-      <field name="Obsoletes" cname="obsoletes" type="gchar*" access="public" writeable="true" />
-      <field name="VendorUrl" cname="vendor_url" type="gchar*" access="public" writeable="true" />
-      <field name="BugzillaUrl" cname="bugzilla_url" type="gchar*" access="public" writeable="true" />
-      <field name="CveUrl" cname="cve_url" type="gchar*" access="public" writeable="true" />
-      <field name="Restart" cname="restart" type="PkRestartEnum" access="public" writeable="true" />
-      <field name="UpdateText" cname="update_text" type="gchar*" access="public" writeable="true" />
-      <field name="Changelog" cname="changelog" type="gchar*" access="public" writeable="true" />
-      <field name="State" cname="state" type="PkUpdateStateEnum" access="public" writeable="true" />
-      <field name="Issued" cname="issued" type="GDate*" access="public" writeable="true" />
-      <field name="Updated" cname="updated" type="GDate*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_update_detail_obj_copy">
-        <return-type type="PkUpdateDetailObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_update_detail_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_update_detail_obj_new" />
-      <constructor cname="pk_update_detail_obj_new_from_data">
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id" />
-          <parameter type="const-gchar*" name="updates" />
-          <parameter type="const-gchar*" name="obsoletes" />
-          <parameter type="const-gchar*" name="vendor_url" />
-          <parameter type="const-gchar*" name="bugzilla_url" />
-          <parameter type="const-gchar*" name="cve_url" />
-          <parameter type="PkRestartEnum" name="restart" />
-          <parameter type="const-gchar*" name="update_text" />
-          <parameter type="const-gchar*" name="changelog" />
-          <parameter type="PkUpdateStateEnum" name="state" />
-          <parameter type="GDate*" name="issued" />
-          <parameter type="GDate*" name="updated" />
-        </parameters>
-      </constructor>
-    </struct>
-    <class name="Bitfield" cname="PkBitfield_">
-      <method name="ContainPriority" cname="pk_bitfield_contain_priority" shared="true">
-        <return-type type="gint" />
-        <parameters>
-          <parameter type="PkBitfield" name="values" />
-          <parameter type="gint" name="value" />
-          <parameter ellipsis="true" />
-        </parameters>
-      </method>
-      <method name="FromEnums" cname="pk_bitfield_from_enums" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="gint" name="value" />
-          <parameter ellipsis="true" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Distro" cname="PkDistro_">
-      <method name="UpgradeEnumFromText" cname="pk_distro_upgrade_enum_from_string" shared="true">
-        <return-type type="PkDistroUpgradeEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="upgrade" />
-        </parameters>
-      </method>
-      <method name="UpgradeEnumToText" cname="pk_distro_upgrade_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkDistroUpgradeEnum" name="upgrade" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Enum" cname="PkEnum_">
-      <method name="FindString" cname="pk_enum_find_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="const-PkEnumMatch*" name="table" />
-          <parameter type="guint" name="value" />
-        </parameters>
-      </method>
-      <method name="FindValue" cname="pk_enum_find_value" shared="true">
-        <return-type type="guint" />
-        <parameters>
-          <parameter type="const-PkEnumMatch*" name="table" />
-          <parameter type="const-gchar*" name="string" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Error" cname="PkError_">
-      <method name="EnumFromText" cname="pk_error_enum_from_string" shared="true">
-        <return-type type="PkErrorCodeEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="code" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_error_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkErrorCodeEnum" name="code" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Exit" cname="PkExit_">
-      <method name="EnumFromText" cname="pk_exit_enum_from_string" shared="true">
-        <return-type type="PkExitEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="exit" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_exit_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkExitEnum" name="exit" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Filter" cname="PkFilter_">
-      <method name="BitfieldFromText" cname="pk_filter_bitfield_from_string" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="const-gchar*" name="filters" />
-        </parameters>
-      </method>
-      <method name="BitfieldToText" cname="pk_filter_bitfield_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-        </parameters>
-      </method>
-      <method name="EnumFromText" cname="pk_filter_enum_from_string" shared="true">
-        <return-type type="PkFilterEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="filter" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_filter_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkFilterEnum" name="filter" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Global" cname="PkGlobal">
-      <method name="GetDistroId" cname="pk_get_distro_id" shared="true">
-        <return-type type="gchar*" />
-      </method>
-      <method name="PtrArrayToStrv" cname="pk_ptr_array_to_strv" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="GPtrArray*" name="array" />
-        </parameters>
-      </method>
-      <method name="StrvToPtrArray" cname="pk_strv_to_ptr_array" shared="true">
-        <return-type type="GPtrArray*" />
-        <parameters>
-          <parameter type="gchar**" name="array" />
-        </parameters>
-      </method>
-      <method name="VaListToArgv" cname="pk_va_list_to_argv" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="string_first" />
-          <parameter type="va_list*" name="args" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Group" cname="PkGroup_">
-      <method name="BitfieldFromText" cname="pk_group_bitfield_from_string" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="const-gchar*" name="groups" />
-        </parameters>
-      </method>
-      <method name="BitfieldToText" cname="pk_group_bitfield_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="PkBitfield" name="groups" />
-        </parameters>
-      </method>
-      <method name="EnumFromText" cname="pk_group_enum_from_string" shared="true">
-        <return-type type="PkGroupEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="group" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_group_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkGroupEnum" name="group" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Info" cname="PkInfo_">
-      <method name="EnumFromText" cname="pk_info_enum_from_string" shared="true">
-        <return-type type="PkInfoEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="info" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_info_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkInfoEnum" name="info" />
-        </parameters>
-      </method>
-    </class>
-    <class name="License" cname="PkLicense_">
-      <method name="EnumFromText" cname="pk_license_enum_from_string" shared="true">
-        <return-type type="PkLicenseEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="license" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_license_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkLicenseEnum" name="license" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Message" cname="PkMessage_">
-      <method name="EnumFromText" cname="pk_message_enum_from_string" shared="true">
-        <return-type type="PkMessageEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="message" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_message_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkMessageEnum" name="message" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Network" cname="PkNetwork_">
-      <method name="EnumFromText" cname="pk_network_enum_from_string" shared="true">
-        <return-type type="PkNetworkEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="network" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_network_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkNetworkEnum" name="network" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Package" cname="PkPackage_">
-      <method name="IdsCheck" cname="pk_package_ids_check" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-      <method name="IdsFromArray" cname="pk_package_ids_from_array" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="GPtrArray*" name="array" />
-        </parameters>
-      </method>
-      <method name="IdsFromId" cname="pk_package_ids_from_id" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="IdsFromText" cname="pk_package_ids_from_string" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="IdsFromVaList" cname="pk_package_ids_from_va_list" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id_first" />
-          <parameter type="va_list*" name="args" />
-        </parameters>
-      </method>
-      <method name="IdsPrint" cname="pk_package_ids_print" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-      <method name="IdsSize" cname="pk_package_ids_size" shared="true">
-        <return-type type="guint" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-      <method name="IdsToText" cname="pk_package_ids_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Provides" cname="PkProvides_">
-      <method name="EnumFromText" cname="pk_provides_enum_from_string" shared="true">
-        <return-type type="PkProvidesEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="provides" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_provides_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkProvidesEnum" name="provides" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Restart" cname="PkRestart_">
-      <method name="EnumFromText" cname="pk_restart_enum_from_string" shared="true">
-        <return-type type="PkRestartEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="restart" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_restart_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkRestartEnum" name="restart" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Role" cname="PkRole_">
-      <method name="BitfieldFromText" cname="pk_role_bitfield_from_string" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="const-gchar*" name="roles" />
-        </parameters>
-      </method>
-      <method name="BitfieldToText" cname="pk_role_bitfield_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="PkBitfield" name="roles" />
-        </parameters>
-      </method>
-      <method name="EnumFromText" cname="pk_role_enum_from_string" shared="true">
-        <return-type type="PkRoleEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="role" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_role_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkRoleEnum" name="role" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Sig" cname="PkSig_">
-      <method name="TypeEnumFromText" cname="pk_sig_type_enum_from_string" shared="true">
-        <return-type type="PkSigTypeEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="sig_type" />
-        </parameters>
-      </method>
-      <method name="TypeEnumToText" cname="pk_sig_type_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkSigTypeEnum" name="sig_type" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Status" cname="PkStatus_">
-      <method name="EnumFromText" cname="pk_status_enum_from_string" shared="true">
-        <return-type type="PkStatusEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="status" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_status_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkStatusEnum" name="status" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Update" cname="PkUpdate_">
-      <method name="StateEnumFromText" cname="pk_update_state_enum_from_string" shared="true">
-        <return-type type="PkUpdateStateEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="update_state" />
-        </parameters>
-      </method>
-      <method name="StateEnumToText" cname="pk_update_state_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkUpdateStateEnum" name="update_state" />
-        </parameters>
-      </method>
-    </class>
-  </namespace>
-</api>
\ No newline at end of file
diff --git a/lib/packagekit-sharp/packagekit-api.xml b/lib/packagekit-sharp/packagekit-api.xml
deleted file mode 100644
index 40131a8..0000000
--- a/lib/packagekit-sharp/packagekit-api.xml
+++ /dev/null
@@ -1,2132 +0,0 @@
-<?xml version="1.0"?>
-<api>
-  <!--
-
-        This file was automatically generated.
-        Please DO NOT MODIFY THIS FILE, modify .metadata files instead.
-
--->
-  <namespace library="libpackagekit-glib.dll" name="PackageKit">
-    <enum name="CatalogProgress" cname="PkCatalogProgress" type="enum">
-      <member cname="PK_CATALOG_PROGRESS_PACKAGES" name="Packages" />
-      <member cname="PK_CATALOG_PROGRESS_FILES" name="Files" />
-      <member cname="PK_CATALOG_PROGRESS_PROVIDES" name="Provides" />
-      <member cname="PK_CATALOG_PROGRESS_LAST" name="Last" />
-    </enum>
-    <enum name="ClientError" cname="PkClientError" gtype="pk_client_error_get_type" type="enum">
-      <member cname="PK_CLIENT_ERROR_FAILED" name="Failed" />
-      <member cname="PK_CLIENT_ERROR_FAILED_AUTH" name="FailedAuth" />
-      <member cname="PK_CLIENT_ERROR_NO_TID" name="NoTid" />
-      <member cname="PK_CLIENT_ERROR_ALREADY_TID" name="AlreadyTid" />
-      <member cname="PK_CLIENT_ERROR_ROLE_UNKNOWN" name="RoleUnknown" />
-      <member cname="PK_CLIENT_ERROR_CANNOT_START_DAEMON" name="CannotStartDaemon" />
-      <member cname="PK_CLIENT_ERROR_INVALID_INPUT" name="InvalidInput" />
-      <member cname="PK_CLIENT_ERROR_INVALID_FILE" name="InvalidFile" />
-      <member cname="PK_CLIENT_ERROR_NOT_SUPPORTED" name="NotSupported" />
-    </enum>
-    <enum name="ControlError" cname="PkControlError" type="enum">
-      <member cname="PK_CONTROL_ERROR_FAILED" name="Failed" />
-      <member cname="PK_CONTROL_ERROR_CANNOT_START_DAEMON" name="CannotStartDaemon" />
-    </enum>
-    <enum name="DistroUpgradeEnum" cname="PkDistroUpgradeEnum" type="enum">
-      <member cname="PK_DISTRO_UPGRADE_ENUM_STABLE" name="Stable" />
-      <member cname="PK_DISTRO_UPGRADE_ENUM_UNSTABLE" name="Unstable" />
-      <member cname="PK_DISTRO_UPGRADE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ErrorCodeEnum" cname="PkErrorCodeEnum" type="enum">
-      <member cname="PK_ERROR_ENUM_OOM" name="Oom" />
-      <member cname="PK_ERROR_ENUM_NO_NETWORK" name="NoNetwork" />
-      <member cname="PK_ERROR_ENUM_NOT_SUPPORTED" name="NotSupported" />
-      <member cname="PK_ERROR_ENUM_INTERNAL_ERROR" name="InternalError" />
-      <member cname="PK_ERROR_ENUM_GPG_FAILURE" name="GpgFailure" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_ID_INVALID" name="PackageIdInvalid" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED" name="PackageNotInstalled" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_NOT_FOUND" name="PackageNotFound" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_ALREADY_INSTALLED" name="PackageAlreadyInstalled" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED" name="PackageDownloadFailed" />
-      <member cname="PK_ERROR_ENUM_GROUP_NOT_FOUND" name="GroupNotFound" />
-      <member cname="PK_ERROR_ENUM_GROUP_LIST_INVALID" name="GroupListInvalid" />
-      <member cname="PK_ERROR_ENUM_DEP_RESOLUTION_FAILED" name="DepResolutionFailed" />
-      <member cname="PK_ERROR_ENUM_FILTER_INVALID" name="FilterInvalid" />
-      <member cname="PK_ERROR_ENUM_CREATE_THREAD_FAILED" name="CreateThreadFailed" />
-      <member cname="PK_ERROR_ENUM_TRANSACTION_ERROR" name="TransactionError" />
-      <member cname="PK_ERROR_ENUM_TRANSACTION_CANCELLED" name="TransactionCancelled" />
-      <member cname="PK_ERROR_ENUM_NO_CACHE" name="NoCache" />
-      <member cname="PK_ERROR_ENUM_REPO_NOT_FOUND" name="RepoNotFound" />
-      <member cname="PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE" name="CannotRemoveSystemPackage" />
-      <member cname="PK_ERROR_ENUM_PROCESS_KILL" name="ProcessKill" />
-      <member cname="PK_ERROR_ENUM_FAILED_INITIALIZATION" name="FailedInitialization" />
-      <member cname="PK_ERROR_ENUM_FAILED_FINALISE" name="FailedFinalise" />
-      <member cname="PK_ERROR_ENUM_FAILED_CONFIG_PARSING" name="FailedConfigParsing" />
-      <member cname="PK_ERROR_ENUM_CANNOT_CANCEL" name="CannotCancel" />
-      <member cname="PK_ERROR_ENUM_CANNOT_GET_LOCK" name="CannotGetLock" />
-      <member cname="PK_ERROR_ENUM_NO_PACKAGES_TO_UPDATE" name="NoPackagesToUpdate" />
-      <member cname="PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG" name="CannotWriteRepoConfig" />
-      <member cname="PK_ERROR_ENUM_LOCAL_INSTALL_FAILED" name="LocalInstallFailed" />
-      <member cname="PK_ERROR_ENUM_BAD_GPG_SIGNATURE" name="BadGpgSignature" />
-      <member cname="PK_ERROR_ENUM_MISSING_GPG_SIGNATURE" name="MissingGpgSignature" />
-      <member cname="PK_ERROR_ENUM_CANNOT_INSTALL_SOURCE_PACKAGE" name="CannotInstallSourcePackage" />
-      <member cname="PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR" name="RepoConfigurationError" />
-      <member cname="PK_ERROR_ENUM_NO_LICENSE_AGREEMENT" name="NoLicenseAgreement" />
-      <member cname="PK_ERROR_ENUM_FILE_CONFLICTS" name="FileConflicts" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_CONFLICTS" name="PackageConflicts" />
-      <member cname="PK_ERROR_ENUM_REPO_NOT_AVAILABLE" name="RepoNotAvailable" />
-      <member cname="PK_ERROR_ENUM_INVALID_PACKAGE_FILE" name="InvalidPackageFile" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED" name="PackageInstallBlocked" />
-      <member cname="PK_ERROR_ENUM_PACKAGE_CORRUPT" name="PackageCorrupt" />
-      <member cname="PK_ERROR_ENUM_ALL_PACKAGES_ALREADY_INSTALLED" name="AllPackagesAlreadyInstalled" />
-      <member cname="PK_ERROR_ENUM_FILE_NOT_FOUND" name="FileNotFound" />
-      <member cname="PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY" name="NoMoreMirrorsToTry" />
-      <member cname="PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA" name="NoDistroUpgradeData" />
-      <member cname="PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE" name="IncompatibleArchitecture" />
-      <member cname="PK_ERROR_ENUM_NO_SPACE_ON_DEVICE" name="NoSpaceOnDevice" />
-      <member cname="PK_ERROR_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ExitEnum" cname="PkExitEnum" type="enum">
-      <member cname="PK_EXIT_ENUM_SUCCESS" name="Success" />
-      <member cname="PK_EXIT_ENUM_FAILED" name="Failed" />
-      <member cname="PK_EXIT_ENUM_CANCELLED" name="Cancelled" />
-      <member cname="PK_EXIT_ENUM_KEY_REQUIRED" name="KeyRequired" />
-      <member cname="PK_EXIT_ENUM_EULA_REQUIRED" name="EulaRequired" />
-      <member cname="PK_EXIT_ENUM_KILLED" name="Killed" />
-      <member cname="PK_EXIT_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="FilterEnum" cname="PkFilterEnum" type="enum">
-      <member cname="PK_FILTER_ENUM_NONE" name="None" />
-      <member cname="PK_FILTER_ENUM_INSTALLED" name="Installed" />
-      <member cname="PK_FILTER_ENUM_NOT_INSTALLED" name="NotInstalled" />
-      <member cname="PK_FILTER_ENUM_DEVELOPMENT" name="Development" />
-      <member cname="PK_FILTER_ENUM_NOT_DEVELOPMENT" name="NotDevelopment" />
-      <member cname="PK_FILTER_ENUM_GUI" name="Gui" />
-      <member cname="PK_FILTER_ENUM_NOT_GUI" name="NotGui" />
-      <member cname="PK_FILTER_ENUM_FREE" name="Free" />
-      <member cname="PK_FILTER_ENUM_NOT_FREE" name="NotFree" />
-      <member cname="PK_FILTER_ENUM_VISIBLE" name="Visible" />
-      <member cname="PK_FILTER_ENUM_NOT_VISIBLE" name="NotVisible" />
-      <member cname="PK_FILTER_ENUM_SUPPORTED" name="Supported" />
-      <member cname="PK_FILTER_ENUM_NOT_SUPPORTED" name="NotSupported" />
-      <member cname="PK_FILTER_ENUM_BASENAME" name="Basename" />
-      <member cname="PK_FILTER_ENUM_NOT_BASENAME" name="NotBasename" />
-      <member cname="PK_FILTER_ENUM_NEWEST" name="Newest" />
-      <member cname="PK_FILTER_ENUM_NOT_NEWEST" name="NotNewest" />
-      <member cname="PK_FILTER_ENUM_ARCH" name="Arch" />
-      <member cname="PK_FILTER_ENUM_NOT_ARCH" name="NotArch" />
-      <member cname="PK_FILTER_ENUM_SOURCE" name="Source" />
-      <member cname="PK_FILTER_ENUM_NOT_SOURCE" name="NotSource" />
-      <member cname="PK_FILTER_ENUM_COLLECTIONS" name="Collections" />
-      <member cname="PK_FILTER_ENUM_NOT_COLLECTIONS" name="NotCollections" />
-      <member cname="PK_FILTER_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="GroupEnum" cname="PkGroupEnum" type="enum">
-      <member cname="PK_GROUP_ENUM_ACCESSIBILITY" name="Accessibility" />
-      <member cname="PK_GROUP_ENUM_ACCESSORIES" name="Accessories" />
-      <member cname="PK_GROUP_ENUM_ADMIN_TOOLS" name="AdminTools" />
-      <member cname="PK_GROUP_ENUM_COMMUNICATION" name="Communication" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_GNOME" name="DesktopGnome" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_KDE" name="DesktopKde" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_OTHER" name="DesktopOther" />
-      <member cname="PK_GROUP_ENUM_DESKTOP_XFCE" name="DesktopXfce" />
-      <member cname="PK_GROUP_ENUM_EDUCATION" name="Education" />
-      <member cname="PK_GROUP_ENUM_FONTS" name="Fonts" />
-      <member cname="PK_GROUP_ENUM_GAMES" name="Games" />
-      <member cname="PK_GROUP_ENUM_GRAPHICS" name="Graphics" />
-      <member cname="PK_GROUP_ENUM_INTERNET" name="Internet" />
-      <member cname="PK_GROUP_ENUM_LEGACY" name="Legacy" />
-      <member cname="PK_GROUP_ENUM_LOCALIZATION" name="Localization" />
-      <member cname="PK_GROUP_ENUM_MAPS" name="Maps" />
-      <member cname="PK_GROUP_ENUM_MULTIMEDIA" name="Multimedia" />
-      <member cname="PK_GROUP_ENUM_NETWORK" name="Network" />
-      <member cname="PK_GROUP_ENUM_OFFICE" name="Office" />
-      <member cname="PK_GROUP_ENUM_OTHER" name="Other" />
-      <member cname="PK_GROUP_ENUM_POWER_MANAGEMENT" name="PowerManagement" />
-      <member cname="PK_GROUP_ENUM_PROGRAMMING" name="Programming" />
-      <member cname="PK_GROUP_ENUM_PUBLISHING" name="Publishing" />
-      <member cname="PK_GROUP_ENUM_REPOS" name="Repos" />
-      <member cname="PK_GROUP_ENUM_SECURITY" name="Security" />
-      <member cname="PK_GROUP_ENUM_SERVERS" name="Servers" />
-      <member cname="PK_GROUP_ENUM_SYSTEM" name="System" />
-      <member cname="PK_GROUP_ENUM_VIRTUALIZATION" name="Virtualization" />
-      <member cname="PK_GROUP_ENUM_SCIENCE" name="Science" />
-      <member cname="PK_GROUP_ENUM_DOCUMENTATION" name="Documentation" />
-      <member cname="PK_GROUP_ENUM_ELECTRONICS" name="Electronics" />
-      <member cname="PK_GROUP_ENUM_COLLECTIONS" name="Collections" />
-      <member cname="PK_GROUP_ENUM_VENDOR" name="Vendor" />
-      <member cname="PK_GROUP_ENUM_NEWEST" name="Newest" />
-      <member cname="PK_GROUP_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="InfoEnum" cname="PkInfoEnum" type="enum">
-      <member cname="PK_INFO_ENUM_INSTALLED" name="Installed" />
-      <member cname="PK_INFO_ENUM_AVAILABLE" name="Available" />
-      <member cname="PK_INFO_ENUM_LOW" name="Low" />
-      <member cname="PK_INFO_ENUM_ENHANCEMENT" name="Enhancement" />
-      <member cname="PK_INFO_ENUM_NORMAL" name="Normal" />
-      <member cname="PK_INFO_ENUM_BUGFIX" name="Bugfix" />
-      <member cname="PK_INFO_ENUM_IMPORTANT" name="Important" />
-      <member cname="PK_INFO_ENUM_SECURITY" name="Security" />
-      <member cname="PK_INFO_ENUM_BLOCKED" name="Blocked" />
-      <member cname="PK_INFO_ENUM_DOWNLOADING" name="Downloading" />
-      <member cname="PK_INFO_ENUM_UPDATING" name="Updating" />
-      <member cname="PK_INFO_ENUM_INSTALLING" name="Installing" />
-      <member cname="PK_INFO_ENUM_REMOVING" name="Removing" />
-      <member cname="PK_INFO_ENUM_CLEANUP" name="Cleanup" />
-      <member cname="PK_INFO_ENUM_OBSOLETING" name="Obsoleting" />
-      <member cname="PK_INFO_ENUM_COLLECTION_INSTALLED" name="CollectionInstalled" />
-      <member cname="PK_INFO_ENUM_COLLECTION_AVAILABLE" name="CollectionAvailable" />
-      <member cname="PK_INFO_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="LicenseEnum" cname="PkLicenseEnum" type="enum">
-      <member cname="PK_LICENSE_ENUM_GLIDE" name="Glide" />
-      <member cname="PK_LICENSE_ENUM_AFL" name="Afl" />
-      <member cname="PK_LICENSE_ENUM_AMPAS_BSD" name="AmpasBsd" />
-      <member cname="PK_LICENSE_ENUM_AMAZON_DSL" name="AmazonDsl" />
-      <member cname="PK_LICENSE_ENUM_ADOBE" name="Adobe" />
-      <member cname="PK_LICENSE_ENUM_AGPLV1" name="Agplv1" />
-      <member cname="PK_LICENSE_ENUM_AGPLV3" name="Agplv3" />
-      <member cname="PK_LICENSE_ENUM_ASL_1_DOT_0" name="Asl1Dot0" />
-      <member cname="PK_LICENSE_ENUM_ASL_1_DOT_1" name="Asl1Dot1" />
-      <member cname="PK_LICENSE_ENUM_ASL_2_DOT_0" name="Asl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_APSL_2_DOT_0" name="Apsl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_ARTISTIC_CLARIFIED" name="ArtisticClarified" />
-      <member cname="PK_LICENSE_ENUM_ARTISTIC_2_DOT_0" name="Artistic2Dot0" />
-      <member cname="PK_LICENSE_ENUM_ARL" name="Arl" />
-      <member cname="PK_LICENSE_ENUM_BITTORRENT" name="Bittorrent" />
-      <member cname="PK_LICENSE_ENUM_BOOST" name="Boost" />
-      <member cname="PK_LICENSE_ENUM_BSD_WITH_ADVERTISING" name="BsdWithAdvertising" />
-      <member cname="PK_LICENSE_ENUM_BSD" name="Bsd" />
-      <member cname="PK_LICENSE_ENUM_CECILL" name="Cecill" />
-      <member cname="PK_LICENSE_ENUM_CDDL" name="Cddl" />
-      <member cname="PK_LICENSE_ENUM_CPL" name="Cpl" />
-      <member cname="PK_LICENSE_ENUM_CONDOR" name="Condor" />
-      <member cname="PK_LICENSE_ENUM_COPYRIGHT_ONLY" name="CopyrightOnly" />
-      <member cname="PK_LICENSE_ENUM_CRYPTIX" name="Cryptix" />
-      <member cname="PK_LICENSE_ENUM_CRYSTAL_STACKER" name="CrystalStacker" />
-      <member cname="PK_LICENSE_ENUM_DOC" name="Doc" />
-      <member cname="PK_LICENSE_ENUM_WTFPL" name="Wtfpl" />
-      <member cname="PK_LICENSE_ENUM_EPL" name="Epl" />
-      <member cname="PK_LICENSE_ENUM_ECOS" name="Ecos" />
-      <member cname="PK_LICENSE_ENUM_EFL_2_DOT_0" name="Efl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_EU_DATAGRID" name="EuDatagrid" />
-      <member cname="PK_LICENSE_ENUM_LGPLV2_WITH_EXCEPTIONS" name="Lgplv2WithExceptions" />
-      <member cname="PK_LICENSE_ENUM_FTL" name="Ftl" />
-      <member cname="PK_LICENSE_ENUM_GIFTWARE" name="Giftware" />
-      <member cname="PK_LICENSE_ENUM_GPLV2" name="Gplv2" />
-      <member cname="PK_LICENSE_ENUM_GPLV2_WITH_EXCEPTIONS" name="Gplv2WithExceptions" />
-      <member cname="PK_LICENSE_ENUM_GPLV2_PLUS_WITH_EXCEPTIONS" name="Gplv2PlusWithExceptions" />
-      <member cname="PK_LICENSE_ENUM_GPLV3" name="Gplv3" />
-      <member cname="PK_LICENSE_ENUM_GPLV3_WITH_EXCEPTIONS" name="Gplv3WithExceptions" />
-      <member cname="PK_LICENSE_ENUM_GPLV3_PLUS_WITH_EXCEPTIONS" name="Gplv3PlusWithExceptions" />
-      <member cname="PK_LICENSE_ENUM_LGPLV2" name="Lgplv2" />
-      <member cname="PK_LICENSE_ENUM_LGPLV3" name="Lgplv3" />
-      <member cname="PK_LICENSE_ENUM_GNUPLOT" name="Gnuplot" />
-      <member cname="PK_LICENSE_ENUM_IBM" name="Ibm" />
-      <member cname="PK_LICENSE_ENUM_IMATIX" name="Imatix" />
-      <member cname="PK_LICENSE_ENUM_IMAGEMAGICK" name="Imagemagick" />
-      <member cname="PK_LICENSE_ENUM_IMLIB2" name="Imlib2" />
-      <member cname="PK_LICENSE_ENUM_IJG" name="Ijg" />
-      <member cname="PK_LICENSE_ENUM_INTEL_ACPI" name="IntelAcpi" />
-      <member cname="PK_LICENSE_ENUM_INTERBASE" name="Interbase" />
-      <member cname="PK_LICENSE_ENUM_ISC" name="Isc" />
-      <member cname="PK_LICENSE_ENUM_JABBER" name="Jabber" />
-      <member cname="PK_LICENSE_ENUM_JASPER" name="Jasper" />
-      <member cname="PK_LICENSE_ENUM_LPPL" name="Lppl" />
-      <member cname="PK_LICENSE_ENUM_LIBTIFF" name="Libtiff" />
-      <member cname="PK_LICENSE_ENUM_LPL" name="Lpl" />
-      <member cname="PK_LICENSE_ENUM_MECAB_IPADIC" name="MecabIpadic" />
-      <member cname="PK_LICENSE_ENUM_MIT" name="Mit" />
-      <member cname="PK_LICENSE_ENUM_MIT_WITH_ADVERTISING" name="MitWithAdvertising" />
-      <member cname="PK_LICENSE_ENUM_MPLV1_DOT_0" name="Mplv1Dot0" />
-      <member cname="PK_LICENSE_ENUM_MPLV1_DOT_1" name="Mplv1Dot1" />
-      <member cname="PK_LICENSE_ENUM_NCSA" name="Ncsa" />
-      <member cname="PK_LICENSE_ENUM_NGPL" name="Ngpl" />
-      <member cname="PK_LICENSE_ENUM_NOSL" name="Nosl" />
-      <member cname="PK_LICENSE_ENUM_NETCDF" name="Netcdf" />
-      <member cname="PK_LICENSE_ENUM_NETSCAPE" name="Netscape" />
-      <member cname="PK_LICENSE_ENUM_NOKIA" name="Nokia" />
-      <member cname="PK_LICENSE_ENUM_OPENLDAP" name="Openldap" />
-      <member cname="PK_LICENSE_ENUM_OPENPBS" name="Openpbs" />
-      <member cname="PK_LICENSE_ENUM_OSL_1_DOT_0" name="Osl1Dot0" />
-      <member cname="PK_LICENSE_ENUM_OSL_1_DOT_1" name="Osl1Dot1" />
-      <member cname="PK_LICENSE_ENUM_OSL_2_DOT_0" name="Osl2Dot0" />
-      <member cname="PK_LICENSE_ENUM_OSL_3_DOT_0" name="Osl3Dot0" />
-      <member cname="PK_LICENSE_ENUM_OPENSSL" name="Openssl" />
-      <member cname="PK_LICENSE_ENUM_OREILLY" name="Oreilly" />
-      <member cname="PK_LICENSE_ENUM_PHORUM" name="Phorum" />
-      <member cname="PK_LICENSE_ENUM_PHP" name="Php" />
-      <member cname="PK_LICENSE_ENUM_PUBLIC_DOMAIN" name="PublicDomain" />
-      <member cname="PK_LICENSE_ENUM_PYTHON" name="Python" />
-      <member cname="PK_LICENSE_ENUM_QPL" name="Qpl" />
-      <member cname="PK_LICENSE_ENUM_RPSL" name="Rpsl" />
-      <member cname="PK_LICENSE_ENUM_RUBY" name="Ruby" />
-      <member cname="PK_LICENSE_ENUM_SENDMAIL" name="Sendmail" />
-      <member cname="PK_LICENSE_ENUM_SLEEPYCAT" name="Sleepycat" />
-      <member cname="PK_LICENSE_ENUM_SLIB" name="Slib" />
-      <member cname="PK_LICENSE_ENUM_SISSL" name="Sissl" />
-      <member cname="PK_LICENSE_ENUM_SPL" name="Spl" />
-      <member cname="PK_LICENSE_ENUM_TCL" name="Tcl" />
-      <member cname="PK_LICENSE_ENUM_UCD" name="Ucd" />
-      <member cname="PK_LICENSE_ENUM_VIM" name="Vim" />
-      <member cname="PK_LICENSE_ENUM_VNLSL" name="Vnlsl" />
-      <member cname="PK_LICENSE_ENUM_VSL" name="Vsl" />
-      <member cname="PK_LICENSE_ENUM_W3C" name="W3c" />
-      <member cname="PK_LICENSE_ENUM_WXWIDGETS" name="Wxwidgets" />
-      <member cname="PK_LICENSE_ENUM_XINETD" name="Xinetd" />
-      <member cname="PK_LICENSE_ENUM_ZEND" name="Zend" />
-      <member cname="PK_LICENSE_ENUM_ZPLV1_DOT_0" name="Zplv1Dot0" />
-      <member cname="PK_LICENSE_ENUM_ZPLV2_DOT_0" name="Zplv2Dot0" />
-      <member cname="PK_LICENSE_ENUM_ZPLV2_DOT_1" name="Zplv2Dot1" />
-      <member cname="PK_LICENSE_ENUM_ZLIB" name="Zlib" />
-      <member cname="PK_LICENSE_ENUM_ZLIB_WITH_ACK" name="ZlibWithAck" />
-      <member cname="PK_LICENSE_ENUM_CDL" name="Cdl" />
-      <member cname="PK_LICENSE_ENUM_FBSDDL" name="Fbsddl" />
-      <member cname="PK_LICENSE_ENUM_GFDL" name="Gfdl" />
-      <member cname="PK_LICENSE_ENUM_IEEE" name="Ieee" />
-      <member cname="PK_LICENSE_ENUM_OFSFDL" name="Ofsfdl" />
-      <member cname="PK_LICENSE_ENUM_OPEN_PUBLICATION" name="OpenPublication" />
-      <member cname="PK_LICENSE_ENUM_CC_BY" name="CcBy" />
-      <member cname="PK_LICENSE_ENUM_CC_BY_SA" name="CcBySa" />
-      <member cname="PK_LICENSE_ENUM_CC_BY_ND" name="CcByNd" />
-      <member cname="PK_LICENSE_ENUM_DSL" name="Dsl" />
-      <member cname="PK_LICENSE_ENUM_FREE_ART" name="FreeArt" />
-      <member cname="PK_LICENSE_ENUM_OFL" name="Ofl" />
-      <member cname="PK_LICENSE_ENUM_UTOPIA" name="Utopia" />
-      <member cname="PK_LICENSE_ENUM_ARPHIC" name="Arphic" />
-      <member cname="PK_LICENSE_ENUM_BAEKMUK" name="Baekmuk" />
-      <member cname="PK_LICENSE_ENUM_BITSTREAM_VERA" name="BitstreamVera" />
-      <member cname="PK_LICENSE_ENUM_LUCIDA" name="Lucida" />
-      <member cname="PK_LICENSE_ENUM_MPLUS" name="Mplus" />
-      <member cname="PK_LICENSE_ENUM_STIX" name="Stix" />
-      <member cname="PK_LICENSE_ENUM_XANO" name="Xano" />
-      <member cname="PK_LICENSE_ENUM_VOSTROM" name="Vostrom" />
-      <member cname="PK_LICENSE_ENUM_XEROX" name="Xerox" />
-      <member cname="PK_LICENSE_ENUM_RICEBSD" name="Ricebsd" />
-      <member cname="PK_LICENSE_ENUM_QHULL" name="Qhull" />
-      <member cname="PK_LICENSE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="MessageEnum" cname="PkMessageEnum" type="enum">
-      <member cname="PK_MESSAGE_ENUM_BROKEN_MIRROR" name="BrokenMirror" />
-      <member cname="PK_MESSAGE_ENUM_CONNECTION_REFUSED" name="ConnectionRefused" />
-      <member cname="PK_MESSAGE_ENUM_PARAMETER_INVALID" name="ParameterInvalid" />
-      <member cname="PK_MESSAGE_ENUM_PRIORITY_INVALID" name="PriorityInvalid" />
-      <member cname="PK_MESSAGE_ENUM_BACKEND_ERROR" name="BackendError" />
-      <member cname="PK_MESSAGE_ENUM_DAEMON_ERROR" name="DaemonError" />
-      <member cname="PK_MESSAGE_ENUM_CACHE_BEING_REBUILT" name="CacheBeingRebuilt" />
-      <member cname="PK_MESSAGE_ENUM_UNTRUSTED_PACKAGE" name="UntrustedPackage" />
-      <member cname="PK_MESSAGE_ENUM_NEWER_PACKAGE_EXISTS" name="NewerPackageExists" />
-      <member cname="PK_MESSAGE_ENUM_COULD_NOT_FIND_PACKAGE" name="CouldNotFindPackage" />
-      <member cname="PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED" name="ConfigFilesChanged" />
-      <member cname="PK_MESSAGE_ENUM_PACKAGE_ALREADY_INSTALLED" name="PackageAlreadyInstalled" />
-      <member cname="PK_MESSAGE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="NetworkEnum" cname="PkNetworkEnum" type="enum">
-      <member cname="PK_NETWORK_ENUM_OFFLINE" name="Offline" />
-      <member cname="PK_NETWORK_ENUM_ONLINE" name="Online" />
-      <member cname="PK_NETWORK_ENUM_WIRED" name="Wired" />
-      <member cname="PK_NETWORK_ENUM_WIFI" name="Wifi" />
-      <member cname="PK_NETWORK_ENUM_MOBILE" name="Mobile" />
-      <member cname="PK_NETWORK_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ProvidesEnum" cname="PkProvidesEnum" type="enum">
-      <member cname="PK_PROVIDES_ENUM_ANY" name="Any" />
-      <member cname="PK_PROVIDES_ENUM_MODALIAS" name="Modalias" />
-      <member cname="PK_PROVIDES_ENUM_CODEC" name="Codec" />
-      <member cname="PK_PROVIDES_ENUM_MIMETYPE" name="Mimetype" />
-      <member cname="PK_PROVIDES_ENUM_FONT" name="Font" />
-      <member cname="PK_PROVIDES_ENUM_HARDWARE_DRIVER" name="HardwareDriver" />
-      <member cname="PK_PROVIDES_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="RestartEnum" cname="PkRestartEnum" type="enum">
-      <member cname="PK_RESTART_ENUM_NONE" name="None" />
-      <member cname="PK_RESTART_ENUM_APPLICATION" name="Application" />
-      <member cname="PK_RESTART_ENUM_SESSION" name="Session" />
-      <member cname="PK_RESTART_ENUM_SYSTEM" name="System" />
-      <member cname="PK_RESTART_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="RoleEnum" cname="PkRoleEnum" type="enum">
-      <member cname="PK_ROLE_ENUM_CANCEL" name="Cancel" />
-      <member cname="PK_ROLE_ENUM_GET_DEPENDS" name="GetDepends" />
-      <member cname="PK_ROLE_ENUM_GET_DETAILS" name="GetDetails" />
-      <member cname="PK_ROLE_ENUM_GET_FILES" name="GetFiles" />
-      <member cname="PK_ROLE_ENUM_GET_PACKAGES" name="GetPackages" />
-      <member cname="PK_ROLE_ENUM_GET_REPO_LIST" name="GetRepoList" />
-      <member cname="PK_ROLE_ENUM_GET_REQUIRES" name="GetRequires" />
-      <member cname="PK_ROLE_ENUM_GET_UPDATE_DETAIL" name="GetUpdateDetail" />
-      <member cname="PK_ROLE_ENUM_GET_UPDATES" name="GetUpdates" />
-      <member cname="PK_ROLE_ENUM_INSTALL_FILES" name="InstallFiles" />
-      <member cname="PK_ROLE_ENUM_INSTALL_PACKAGES" name="InstallPackages" />
-      <member cname="PK_ROLE_ENUM_INSTALL_SIGNATURE" name="InstallSignature" />
-      <member cname="PK_ROLE_ENUM_REFRESH_CACHE" name="RefreshCache" />
-      <member cname="PK_ROLE_ENUM_REMOVE_PACKAGES" name="RemovePackages" />
-      <member cname="PK_ROLE_ENUM_REPO_ENABLE" name="RepoEnable" />
-      <member cname="PK_ROLE_ENUM_REPO_SET_DATA" name="RepoSetData" />
-      <member cname="PK_ROLE_ENUM_RESOLVE" name="Resolve" />
-      <member cname="PK_ROLE_ENUM_ROLLBACK" name="Rollback" />
-      <member cname="PK_ROLE_ENUM_SEARCH_DETAILS" name="SearchDetails" />
-      <member cname="PK_ROLE_ENUM_SEARCH_FILE" name="SearchFile" />
-      <member cname="PK_ROLE_ENUM_SEARCH_GROUP" name="SearchGroup" />
-      <member cname="PK_ROLE_ENUM_SEARCH_NAME" name="SearchName" />
-      <member cname="PK_ROLE_ENUM_UPDATE_PACKAGES" name="UpdatePackages" />
-      <member cname="PK_ROLE_ENUM_UPDATE_SYSTEM" name="UpdateSystem" />
-      <member cname="PK_ROLE_ENUM_WHAT_PROVIDES" name="WhatProvides" />
-      <member cname="PK_ROLE_ENUM_ACCEPT_EULA" name="AcceptEula" />
-      <member cname="PK_ROLE_ENUM_DOWNLOAD_PACKAGES" name="DownloadPackages" />
-      <member cname="PK_ROLE_ENUM_GET_DISTRO_UPGRADES" name="GetDistroUpgrades" />
-      <member cname="PK_ROLE_ENUM_GET_CATEGORIES" name="GetCategories" />
-      <member cname="PK_ROLE_ENUM_GET_OLD_TRANSACTIONS" name="GetOldTransactions" />
-      <member cname="PK_ROLE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="ServicePackError" cname="PkServicePackError" gtype="pk_service_pack_error_get_type" type="enum">
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_SETUP" name="FailedSetup" />
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_DOWNLOAD" name="FailedDownload" />
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION" name="FailedExtraction" />
-      <member cname="PK_SERVICE_PACK_ERROR_FAILED_CREATE" name="FailedCreate" />
-      <member cname="PK_SERVICE_PACK_ERROR_NOTHING_TO_DO" name="NothingToDo" />
-      <member cname="PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE" name="NotCompatible" />
-    </enum>
-    <enum name="ServicePackStatus" cname="PkServicePackStatus" type="enum">
-      <member cname="PK_SERVICE_PACK_STATUS_DOWNLOAD_PACKAGES" name="DownloadPackages" />
-      <member cname="PK_SERVICE_PACK_STATUS_DOWNLOAD_DEPENDENCIES" name="DownloadDependencies" />
-      <member cname="PK_SERVICE_PACK_STATUS_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="SigTypeEnum" cname="PkSigTypeEnum" type="enum">
-      <member cname="PK_SIGTYPE_ENUM_GPG" name="Gpg" />
-      <member cname="PK_SIGTYPE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="StatusEnum" cname="PkStatusEnum" type="enum">
-      <member cname="PK_STATUS_ENUM_WAIT" name="Wait" />
-      <member cname="PK_STATUS_ENUM_SETUP" name="Setup" />
-      <member cname="PK_STATUS_ENUM_RUNNING" name="Running" />
-      <member cname="PK_STATUS_ENUM_QUERY" name="Query" />
-      <member cname="PK_STATUS_ENUM_INFO" name="Info" />
-      <member cname="PK_STATUS_ENUM_REMOVE" name="Remove" />
-      <member cname="PK_STATUS_ENUM_REFRESH_CACHE" name="RefreshCache" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD" name="Download" />
-      <member cname="PK_STATUS_ENUM_INSTALL" name="Install" />
-      <member cname="PK_STATUS_ENUM_UPDATE" name="Update" />
-      <member cname="PK_STATUS_ENUM_CLEANUP" name="Cleanup" />
-      <member cname="PK_STATUS_ENUM_OBSOLETE" name="Obsolete" />
-      <member cname="PK_STATUS_ENUM_DEP_RESOLVE" name="DepResolve" />
-      <member cname="PK_STATUS_ENUM_SIG_CHECK" name="SigCheck" />
-      <member cname="PK_STATUS_ENUM_ROLLBACK" name="Rollback" />
-      <member cname="PK_STATUS_ENUM_TEST_COMMIT" name="TestCommit" />
-      <member cname="PK_STATUS_ENUM_COMMIT" name="Commit" />
-      <member cname="PK_STATUS_ENUM_REQUEST" name="Request" />
-      <member cname="PK_STATUS_ENUM_FINISHED" name="Finished" />
-      <member cname="PK_STATUS_ENUM_CANCEL" name="Cancel" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_REPOSITORY" name="DownloadRepository" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_PACKAGELIST" name="DownloadPackagelist" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_FILELIST" name="DownloadFilelist" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_CHANGELOG" name="DownloadChangelog" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_GROUP" name="DownloadGroup" />
-      <member cname="PK_STATUS_ENUM_DOWNLOAD_UPDATEINFO" name="DownloadUpdateinfo" />
-      <member cname="PK_STATUS_ENUM_REPACKAGING" name="Repackaging" />
-      <member cname="PK_STATUS_ENUM_LOADING_CACHE" name="LoadingCache" />
-      <member cname="PK_STATUS_ENUM_SCAN_APPLICATIONS" name="ScanApplications" />
-      <member cname="PK_STATUS_ENUM_GENERATE_PACKAGE_LIST" name="GeneratePackageList" />
-      <member cname="PK_STATUS_ENUM_WAITING_FOR_LOCK" name="WaitingForLock" />
-      <member cname="PK_STATUS_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <enum name="UpdateStateEnum" cname="PkUpdateStateEnum" type="enum">
-      <member cname="PK_UPDATE_STATE_ENUM_STABLE" name="Stable" />
-      <member cname="PK_UPDATE_STATE_ENUM_UNSTABLE" name="Unstable" />
-      <member cname="PK_UPDATE_STATE_ENUM_TESTING" name="Testing" />
-      <member cname="PK_UPDATE_STATE_ENUM_UNKNOWN" name="Unknown" />
-    </enum>
-    <callback name="ObjListCompareFunc" cname="PkObjListCompareFunc">
-      <return-type type="gint" />
-      <parameters>
-        <parameter type="gconstpointer" name="data1" />
-        <parameter type="gconstpointer" name="data2" />
-      </parameters>
-    </callback>
-    <callback name="ObjListCopyFunc" cname="PkObjListCopyFunc">
-      <return-type type="gpointer" />
-      <parameters>
-        <parameter type="gconstpointer" name="data" />
-      </parameters>
-    </callback>
-    <callback name="ObjListEqualFunc" cname="PkObjListEqualFunc">
-      <return-type type="gboolean" />
-      <parameters>
-        <parameter type="gconstpointer" name="data1" />
-        <parameter type="gconstpointer" name="data2" />
-      </parameters>
-    </callback>
-    <callback name="ObjListFreeFunc" cname="PkObjListFreeFunc">
-      <return-type type="void" />
-      <parameters>
-        <parameter type="gpointer" name="data" />
-      </parameters>
-    </callback>
-    <callback name="ObjListFromStringFunc" cname="PkObjListFromStringFunc">
-      <return-type type="gpointer" />
-      <parameters>
-        <parameter type="const-gchar*" name="data" />
-      </parameters>
-    </callback>
-    <callback name="ObjListNewFunc" cname="PkObjListNewFunc">
-      <return-type type="gpointer" />
-    </callback>
-    <callback name="ObjListToStringFunc" cname="PkObjListToStringFunc">
-      <return-type type="gchar*" />
-      <parameters>
-        <parameter type="gconstpointer" name="data" />
-      </parameters>
-    </callback>
-    <object name="Catalog" cname="PkCatalog" parent="GObject">
-      <field name="Priv" cname="priv" type="PkCatalogPrivate*" />
-      <signal name="Progress" cname="progress" when="LAST">
-        <return-type type="void" />
-        <parameters>
-          <parameter name="inst" type="PkCatalog*" />
-          <parameter name="p0" type="guint32" />
-          <parameter name="p1" type="gchar*" />
-        </parameters>
-      </signal>
-      <method name="Cancel" cname="pk_catalog_cancel">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetType" cname="pk_catalog_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_catalog_new" />
-      <method name="ProcessFiles" cname="pk_catalog_process_files">
-        <return-type type="PkPackageList*" />
-        <parameters>
-          <parameter type="gchar**" name="filenames" />
-        </parameters>
-      </method>
-    </object>
-    <object name="Client" cname="PkClient" parent="GObject">
-      <field name="Priv" cname="priv" type="PkClientPrivate*" />
-      <signal name="StatusChanged" cname="status-changed" when="LAST" field_name="status_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkStatusEnum" name="status" />
-        </parameters>
-      </signal>
-      <signal name="ProgressChanged" cname="progress-changed" when="LAST" field_name="progress_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="guint" name="percentage" />
-          <parameter type="guint" name="subpercentage" />
-          <parameter type="guint" name="elapsed" />
-          <parameter type="guint" name="remaining" />
-        </parameters>
-      </signal>
-      <signal name="Package" cname="package" when="LAST" manual="true" field_name="package">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkPackageObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="Transaction" cname="transaction" when="LAST" manual="true" field_name="transaction">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkTransactionObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="DistroUpgrade" cname="distro-upgrade" when="LAST" manual="true" field_name="distro_upgrade">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkUpdateStateEnum" name="type" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </signal>
-      <signal name="UpdateDetail" cname="update-detail" when="LAST" manual="true" field_name="update_detail">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkUpdateDetailObj*" name="update_detail" />
-        </parameters>
-      </signal>
-      <signal name="Details" cname="details" when="LAST" manual="true" field_name="details">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkDetailsObj*" name="package_detail" />
-        </parameters>
-      </signal>
-      <signal name="Files" cname="files" when="LAST" field_name="files">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="const-gchar*" name="filelist" />
-        </parameters>
-      </signal>
-      <signal name="RepoSignatureRequired" cname="repo-signature-required" when="LAST" field_name="repo_signature_required">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="const-gchar*" name="repository_name" />
-          <parameter type="const-gchar*" name="key_url" />
-          <parameter type="const-gchar*" name="key_userid" />
-          <parameter type="const-gchar*" name="key_id" />
-          <parameter type="const-gchar*" name="key_fingerprint" />
-          <parameter type="const-gchar*" name="key_timestamp" />
-          <parameter type="PkSigTypeEnum" name="type" />
-        </parameters>
-      </signal>
-      <signal name="EulaRequired" cname="eula-required" when="LAST" field_name="eula_required">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="eula_id" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="const-gchar*" name="vendor_name" />
-          <parameter type="const-gchar*" name="license_agreement" />
-        </parameters>
-      </signal>
-      <signal name="RepoDetail" cname="repo-detail" when="LAST" field_name="repo_detail">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="const-gchar*" name="repo_id" />
-          <parameter type="const-gchar*" name="description" />
-          <parameter type="gboolean" name="enabled" />
-        </parameters>
-      </signal>
-      <signal name="ErrorCode" cname="error-code" when="LAST" field_name="error_code">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkErrorCodeEnum" name="code" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <signal name="RequireRestart" cname="require-restart" when="LAST" manual="true" field_name="require_restart">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkRestartEnum" name="restart" />
-          <parameter type="PkPackageId*" name="id" />
-        </parameters>
-      </signal>
-      <signal name="Message" cname="message" when="LAST" field_name="message">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkMessageEnum" name="message" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <signal name="AllowCancel" cname="allow-cancel" when="LAST" field_name="allow_cancel">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="gboolean" name="allow_cancel" />
-        </parameters>
-      </signal>
-      <signal name="CallerActiveChanged" cname="caller-active-changed" when="LAST" field_name="caller_active_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="gboolean" name="is_active" />
-        </parameters>
-      </signal>
-      <signal name="Category" cname="category" when="LAST" manual="true" field_name="category">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkCategoryObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="Destroy" cname="destroy" when="LAST" field_name="finished">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkExitEnum" name="exit" />
-          <parameter type="guint" name="runtime" />
-        </parameters>
-      </signal>
-      <method name="AcceptEula" cname="pk_client_accept_eula">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="eula_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Cancel" cname="pk_client_cancel">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="DownloadPackages" cname="pk_client_download_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" null_term_array="1" />
-          <parameter type="const-gchar*" name="directory" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ErrorQuark" cname="pk_client_error_quark" shared="true">
-        <return-type type="GQuark" />
-      </method>
-      <method name="GetAllowCancel" cname="pk_client_get_allow_cancel">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean*" name="allow_cancel" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetCachedObjects" cname="pk_client_get_cached_objects">
-        <return-type type="PkObjList*" />
-      </method>
-      <method name="GetCategories" cname="pk_client_get_categories">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetDepends" cname="pk_client_get_depends">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="gboolean" name="recursive" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetDetails" cname="pk_client_get_details">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" null_term_array="1" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetDistroUpgrades" cname="pk_client_get_distro_upgrades">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetFiles" cname="pk_client_get_files">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetOldTransactions" cname="pk_client_get_old_transactions">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="guint" name="number" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetPackage" cname="pk_client_get_package">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetPackageList" cname="pk_client_get_package_list">
-        <return-type type="PkPackageList*" />
-      </method>
-      <method name="GetPackages" cname="pk_client_get_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetProgress" cname="pk_client_get_progress">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="guint*" name="percentage" />
-          <parameter type="guint*" name="subpercentage" />
-          <parameter type="guint*" name="elapsed" />
-          <parameter type="guint*" name="remaining" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetRepoList" cname="pk_client_get_repo_list">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method cname="pk_client_get_require_restart" name="GetRequireRestartStatus">
-        <return-type type="PkRestartEnum" />
-      </method>
-      <method name="GetRequireRestartList" cname="pk_client_get_require_restart_list">
-        <return-type type="const-GPtrArray*" />
-      </method>
-      <method name="GetRequires" cname="pk_client_get_requires">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="gchar**" name="package_ids" null_term_array="1" />
-          <parameter type="gboolean" name="recursive" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetRole" cname="pk_client_get_role">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkRoleEnum*" name="role" />
-          <parameter type="gchar**" name="text" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetStatus" cname="pk_client_get_status">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkStatusEnum*" name="status" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetTid" cname="pk_client_get_tid" hidden="true">
-        <return-type type="gchar*" />
-      </method>
-      <method name="GetType" cname="pk_client_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="GetUpdateDetail" cname="pk_client_get_update_detail">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" null_term_array="1" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetUpdates" cname="pk_client_get_updates">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetUseBuffer" cname="pk_client_get_use_buffer" hidden="true">
-        <return-type type="gboolean" />
-      </method>
-      <method name="InstallFile" cname="pk_client_install_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="only_trusted" />
-          <parameter type="const-gchar*" name="file_rel" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="InstallFiles" cname="pk_client_install_files">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="only_trusted" />
-          <parameter type="gchar**" name="files_rel" null_term_array="1" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="InstallPackages" cname="pk_client_install_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" null_term_array="1" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="InstallSignature" cname="pk_client_install_signature">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkSigTypeEnum" name="type" />
-          <parameter type="const-gchar*" name="key_id" />
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="IsCallerActive" cname="pk_client_is_caller_active">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean*" name="is_active" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <constructor cname="pk_client_new" />
-      <method name="RefreshCache" cname="pk_client_refresh_cache">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="force" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="RemovePackages" cname="pk_client_remove_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="gboolean" name="allow_deps" />
-          <parameter type="gboolean" name="autoremove" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="RepoEnable" cname="pk_client_repo_enable">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="repo_id" />
-          <parameter type="gboolean" name="enabled" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="RepoSetData" cname="pk_client_repo_set_data">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="repo_id" />
-          <parameter type="const-gchar*" name="parameter" />
-          <parameter type="const-gchar*" name="value" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Requeue" cname="pk_client_requeue">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Reset" cname="pk_client_reset">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Resolve" cname="pk_client_resolve">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="gchar**" name="packages" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="Rollback" cname="pk_client_rollback">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="transaction_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchDetails" cname="pk_client_search_details">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchFile" cname="pk_client_search_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchGroup" cname="pk_client_search_group">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SearchName" cname="pk_client_search_name">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetLocale" cname="pk_client_set_locale">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="code" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetSynchronous" cname="pk_client_set_synchronous">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="synchronous" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetTid" cname="pk_client_set_tid" hidden="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="tid" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetTimeout" cname="pk_client_set_timeout">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gint" name="timeout" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="SetUseBuffer" cname="pk_client_set_use_buffer" hidden="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="use_buffer" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="UpdatePackages" cname="pk_client_update_packages">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" null_term_array="1" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="UpdateSystem" cname="pk_client_update_system">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="WhatProvides" cname="pk_client_what_provides">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-          <parameter type="PkProvidesEnum" name="provides" />
-          <parameter type="const-gchar*" name="search" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <signal name="Finished" cname="finished" when="LAST" manual="true" field_name="finished">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkExitEnum" name="exit" />
-          <parameter type="guint" name="runtime" />
-        </parameters>
-      </signal>
-    </object>
-    <object name="Connection" cname="PkConnection" parent="GObject">
-      <field name="Priv" cname="priv" type="PkConnectionPrivate*" />
-      <signal name="ConnectionChanged" cname="connection-changed" when="LAST" field_name="connection_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkConnection*" name="connection" />
-          <parameter type="gboolean" name="connected" />
-        </parameters>
-      </signal>
-      <method name="GetType" cname="pk_connection_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_connection_new" />
-      <method name="Valid" cname="pk_connection_valid">
-        <return-type type="gboolean" />
-      </method>
-    </object>
-    <object name="Control" cname="PkControl" parent="GObject">
-      <field name="Priv" cname="priv" type="PkControlPrivate*" />
-      <signal name="UpdatesChanged" cname="updates-changed" when="LAST" field_name="updates_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="RepoListChanged" cname="repo-list-changed" when="LAST" field_name="repo_list_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="NetworkStateChanged" cname="network-state-changed" when="LAST" field_name="network_state_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="RestartSchedule" cname="restart-schedule" when="LAST" field_name="restart_schedule">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="TransactionListChanged" cname="transaction-list-changed" when="LAST" field_name="transaction_list_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-        </parameters>
-      </signal>
-      <signal name="Locked" cname="locked" when="LAST" field_name="locked">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkControl*" name="control" />
-          <parameter type="gboolean" name="is_locked" />
-        </parameters>
-      </signal>
-      <method name="AllocateTransactionId" cname="pk_control_allocate_transaction_id">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="tid" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ErrorQuark" cname="pk_control_error_quark" shared="true">
-        <return-type type="GQuark" />
-      </method>
-      <method name="GetActions" cname="pk_control_get_actions">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetBackendDetail" cname="pk_control_get_backend_detail">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="name" />
-          <parameter type="gchar**" name="author" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetFilters" cname="pk_control_get_filters">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetGroups" cname="pk_control_get_groups">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetMimeTypes" cname="pk_control_get_mime_types">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetNetworkState" cname="pk_control_get_network_state">
-        <return-type type="PkNetworkEnum" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetTimeSinceAction" cname="pk_control_get_time_since_action">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkRoleEnum" name="role" />
-          <parameter type="guint*" name="seconds" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="pk_control_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_control_new" />
-      <method name="SetProxy" cname="pk_control_set_proxy">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="proxy_http" />
-          <parameter type="const-gchar*" name="proxy_ftp" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="TransactionListGet" cname="pk_control_transaction_list_get">
-        <return-type type="const-gchar**" />
-      </method>
-      <method name="TransactionListPrint" cname="pk_control_transaction_list_print">
-        <return-type type="gboolean" />
-      </method>
-    </object>
-    <object name="Desktop" cname="PkDesktop" parent="GObject">
-      <field name="Priv" cname="priv" type="PkDesktopPrivate*" />
-      <method name="GetFilesForPackage" cname="pk_desktop_get_files_for_package">
-        <return-type type="GPtrArray*" />
-        <parameters>
-          <parameter type="const-gchar*" name="package" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetPackageForFile" cname="pk_desktop_get_package_for_file">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetShownForPackage" cname="pk_desktop_get_shown_for_package">
-        <return-type type="GPtrArray*" />
-        <parameters>
-          <parameter type="const-gchar*" name="package" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="GetType" cname="pk_desktop_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_desktop_new" />
-      <method name="OpenDatabase" cname="pk_desktop_open_database">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-    </object>
-    <object name="ObjList" cname="PkObjList" parent="GObject">
-      <field name="Priv" cname="priv" type="PkObjListPrivate*" />
-      <field name="Len" cname="len" type="guint" />
-      <method name="Add" cname="pk_obj_list_add">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gconstpointer" name="data" />
-        </parameters>
-      </method>
-      <method name="AddArray" cname="pk_obj_list_add_array">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-GPtrArray*" name="data" />
-        </parameters>
-      </method>
-      <method name="AddList" cname="pk_obj_list_add_list">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-PkObjList*" name="data" />
-        </parameters>
-      </method>
-      <method name="AddStrv" cname="pk_obj_list_add_strv">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="gpointer**" name="data" />
-        </parameters>
-      </method>
-      <method name="Clear" cname="pk_obj_list_clear">
-        <return-type type="void" />
-      </method>
-      <method name="Exists" cname="pk_obj_list_exists">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gconstpointer" name="data" />
-        </parameters>
-      </method>
-      <method name="FromFile" cname="pk_obj_list_from_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="GetArray" cname="pk_obj_list_get_array">
-        <return-type type="const-GPtrArray*" />
-      </method>
-      <method name="GetType" cname="pk_obj_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <method name="Index" cname="pk_obj_list_index">
-        <return-type type="gconst-pointer" />
-        <parameters>
-          <parameter type="guint" name="index" />
-        </parameters>
-      </method>
-      <constructor cname="pk_obj_list_new" />
-      <method name="Print" cname="pk_obj_list_print">
-        <return-type type="void" />
-      </method>
-      <method name="Remove" cname="pk_obj_list_remove">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gconstpointer" name="data" />
-        </parameters>
-      </method>
-      <method name="RemoveDuplicate" cname="pk_obj_list_remove_duplicate">
-        <return-type type="void" />
-      </method>
-      <method name="RemoveIndex" cname="pk_obj_list_remove_index">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="guint" name="index" />
-        </parameters>
-      </method>
-      <method name="RemoveList" cname="pk_obj_list_remove_list">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="const-PkObjList*" name="data" />
-        </parameters>
-      </method>
-      <method name="SetCompare" cname="pk_obj_list_set_compare">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListCompareFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetCopy" cname="pk_obj_list_set_copy">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListCopyFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetEqual" cname="pk_obj_list_set_equal">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListEqualFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetFree" cname="pk_obj_list_set_free">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListFreeFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetFromString" cname="pk_obj_list_set_from_string">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListFromStringFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="SetNew" cname="pk_obj_list_set_new">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListNewFunc" name="func" />
-        </parameters>
-      </method>
-      <method cname="pk_obj_list_set_to_string" name="SetToStringFunc">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkObjListToStringFunc" name="func" />
-        </parameters>
-      </method>
-      <method name="Sort" cname="pk_obj_list_sort">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="GCompareFunc" name="sort_func" />
-        </parameters>
-      </method>
-      <method name="ToFile" cname="pk_obj_list_to_file">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="ToString" cname="pk_obj_list_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </object>
-    <object name="PackageList" cname="PkPackageList" parent="PkObjList">
-      <field name="Priv" cname="priv" type="PkPackageListPrivate*" />
-      <method name="Add" cname="pk_package_list_add">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkInfoEnum" name="info" />
-          <parameter type="const-PkPackageId*" name="ident" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </method>
-      <method name="Contains" cname="pk_package_list_contains">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="GetObj" cname="pk_package_list_get_obj" hidden="1">
-        <return-type type="const-PkPackageObj*" />
-        <parameters>
-          <parameter type="guint" name="item" />
-        </parameters>
-      </method>
-      <method name="GetSize" cname="pk_package_list_get_size">
-        <return-type type="guint" />
-      </method>
-      <method name="GetType" cname="pk_package_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_package_list_new" />
-      <method name="Remove" cname="pk_package_list_remove">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="SetFuzzyArch" cname="pk_package_list_set_fuzzy_arch">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gboolean" name="fuzzy_arch" />
-        </parameters>
-      </method>
-      <method name="Sort" cname="pk_package_list_sort">
-        <return-type type="gboolean" />
-      </method>
-      <method name="SortInfo" cname="pk_package_list_sort_info">
-        <return-type type="gboolean" />
-      </method>
-      <method name="SortSummary" cname="pk_package_list_sort_summary">
-        <return-type type="gboolean" />
-      </method>
-      <method cname="pk_package_list_to_strv" name="ToStringArray">
-        <return-type type="gchar**" null_term_array="1" />
-      </method>
-    </object>
-    <object name="ServicePack" cname="PkServicePack" parent="GObject">
-      <field name="Priv" cname="priv" type="PkServicePackPrivate*" />
-      <signal name="Package" cname="package" when="LAST" manual="true" field_name="package">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkServicePack*" name="pack" />
-          <parameter type="const-PkPackageObj*" name="obj" />
-        </parameters>
-      </signal>
-      <signal name="Percentage" cname="percentage" when="LAST" field_name="percentage">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkServicePack*" name="pack" />
-          <parameter type="guint" name="percentage" />
-        </parameters>
-      </signal>
-      <signal name="Status" cname="status" when="LAST" field_name="status">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkServicePack*" name="pack" />
-          <parameter type="PkServicePackStatus" name="status" />
-        </parameters>
-      </signal>
-      <method name="Cancel" cname="pk_service_pack_cancel">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CheckValid" cname="pk_service_pack_check_valid">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CreateForPackageId" cname="pk_service_pack_create_for_package_id">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CreateForPackageIds" cname="pk_service_pack_create_for_package_ids">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="CreateForUpdates" cname="pk_service_pack_create_for_updates">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="GError**" name="error" />
-        </parameters>
-      </method>
-      <method name="ErrorQuark" cname="pk_service_pack_error_quark" shared="true">
-        <return-type type="GQuark" />
-      </method>
-      <method name="GetType" cname="pk_service_pack_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_service_pack_new" />
-      <method name="SetExcludeList" cname="pk_service_pack_set_exclude_list">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkPackageList*" name="list" />
-        </parameters>
-      </method>
-      <method name="SetFilename" cname="pk_service_pack_set_filename">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="filename" />
-        </parameters>
-      </method>
-      <method name="SetTempDirectory" cname="pk_service_pack_set_temp_directory">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="directory" />
-        </parameters>
-      </method>
-    </object>
-    <object name="TaskList" cname="PkTaskList" parent="GObject">
-      <field name="Priv" cname="priv" type="PkTaskListPrivate*" />
-      <signal name="Changed" cname="changed" when="LAST" field_name="changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-        </parameters>
-      </signal>
-      <signal name="StatusChanged" cname="status-changed" when="LAST" field_name="status_changed">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-        </parameters>
-      </signal>
-      <signal name="Message" cname="message" when="LAST" manual="true" field_name="message">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkMessageEnum" name="message" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <signal name="Finished" cname="finished" when="LAST" manual="true" field_name="finished">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkExitEnum" name="exit" />
-          <parameter type="guint" name="runtime" />
-        </parameters>
-      </signal>
-      <signal name="ErrorCode" cname="error-code" when="LAST" manual="true" field_name="error_code">
-        <return-type type="void" />
-        <parameters>
-          <parameter type="PkTaskList*" name="tlist" />
-          <parameter type="PkClient*" name="client" />
-          <parameter type="PkErrorCodeEnum" name="code" />
-          <parameter type="const-gchar*" name="details" />
-        </parameters>
-      </signal>
-      <method name="ContainsRole" cname="pk_task_list_contains_role">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="PkRoleEnum" name="role" />
-        </parameters>
-      </method>
-      <method name="Free" cname="pk_task_list_free">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetItem" cname="pk_task_list_get_item">
-        <return-type type="PkTaskListItem*" />
-        <parameters>
-          <parameter type="guint" name="item" />
-        </parameters>
-      </method>
-      <method name="GetSize" cname="pk_task_list_get_size">
-        <return-type type="guint" />
-      </method>
-      <method name="GetType" cname="pk_task_list_get_type" shared="true">
-        <return-type type="GType" />
-      </method>
-      <constructor cname="pk_task_list_new" />
-      <method name="Print" cname="pk_task_list_print">
-        <return-type type="gboolean" />
-      </method>
-      <method name="Refresh" cname="pk_task_list_refresh">
-        <return-type type="gboolean" />
-      </method>
-    </object>
-    <alias name="Bitfield" cname="PkBitfield" type="guint64" />
-    <struct name="CategoryObj" cname="PkCategoryObj" opaque="true">
-      <field name="ParentId" cname="parent_id" type="gchar*" access="public" writeable="true" />
-      <field name="CatId" cname="cat_id" type="gchar*" access="public" writeable="true" />
-      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
-      <field name="Summary" cname="summary" type="gchar*" access="public" writeable="true" />
-      <field name="Icon" cname="icon" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_category_obj_copy">
-        <return-type type="PkCategoryObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_category_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_category_obj_new" />
-      <constructor cname="pk_category_obj_new_from_data">
-        <parameters>
-          <parameter type="const-gchar*" name="parent_id" />
-          <parameter type="const-gchar*" name="cat_id" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="summary" />
-          <parameter type="const-gchar*" name="icon" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="DetailsObj" cname="PkDetailsObj" opaque="true">
-      <field name="Id" cname="id" type="PkPackageId*" access="public" writeable="true" />
-      <field name="License" cname="license" type="gchar*" access="public" writeable="true" />
-      <field name="Group" cname="group" type="PkGroupEnum" access="public" writeable="true" />
-      <field name="Description" cname="description" type="gchar*" access="public" writeable="true" />
-      <field name="Url" cname="url" type="gchar*" access="public" writeable="true" />
-      <field name="Size" cname="size" type="guint64" access="public" writeable="true" />
-      <method name="Copy" cname="pk_details_obj_copy">
-        <return-type type="PkDetailsObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_details_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_details_obj_new" />
-      <constructor cname="pk_details_obj_new_from_data">
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id" />
-          <parameter type="const-gchar*" name="license" />
-          <parameter type="PkGroupEnum" name="group" />
-          <parameter type="const-gchar*" name="description" />
-          <parameter type="const-gchar*" name="url" />
-          <parameter type="guint64" name="size" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="DistroUpgradeObj" cname="PkDistroUpgradeObj" opaque="true">
-      <field name="State" cname="state" type="PkUpdateStateEnum" access="public" writeable="true" />
-      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
-      <field name="Summary" cname="summary" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_distro_upgrade_obj_copy">
-        <return-type type="PkDistroUpgradeObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_distro_upgrade_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_distro_upgrade_obj_new" />
-      <constructor cname="pk_distro_upgrade_obj_new_from_data">
-        <parameters>
-          <parameter type="PkUpdateStateEnum" name="state" />
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="EnumMatch" cname="PkEnumMatch">
-      <field name="Value" cname="value" type="guint" />
-      <field name="String" cname="string" type="const-gchar*" />
-    </struct>
-    <struct name="PackageId" cname="PkPackageId" opaque="true">
-      <field name="Name" cname="name" type="gchar*" access="public" writeable="true" />
-      <field name="Version" cname="version" type="gchar*" access="public" writeable="true" />
-      <field name="Arch" cname="arch" type="gchar*" access="public" writeable="true" />
-      <field name="Data" cname="data" type="gchar*" access="public" writeable="true" />
-      <method name="Build" cname="pk_package_id_build" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="version" />
-          <parameter type="const-gchar*" name="arch" />
-          <parameter type="const-gchar*" name="data" />
-        </parameters>
-      </method>
-      <method name="Check" cname="pk_package_id_check" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="Copy" cname="pk_package_id_copy">
-        <return-type type="PkPackageId*" owned="true" />
-      </method>
-      <method name="Equal" cname="pk_package_id_equal">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id2" />
-        </parameters>
-      </method>
-      <method name="EqualFuzzyArch" cname="pk_package_id_equal_fuzzy_arch">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id2" />
-        </parameters>
-      </method>
-      <method name="EqualStrings" cname="pk_package_id_equal_strings" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-gchar*" name="pid1" />
-          <parameter type="const-gchar*" name="pid2" />
-        </parameters>
-      </method>
-      <method name="Free" cname="pk_package_id_free">
-        <return-type type="gboolean" />
-      </method>
-      <method name="GetArch" cname="pk_package_id_get_arch">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetData" cname="pk_package_id_get_data">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetName" cname="pk_package_id_get_name">
-        <return-type type="const-gchar*" />
-      </method>
-      <method name="GetVersion" cname="pk_package_id_get_version">
-        <return-type type="const-gchar*" />
-      </method>
-      <constructor cname="pk_package_id_new" />
-      <constructor cname="pk_package_id_new_from_list">
-        <parameters>
-          <parameter type="const-gchar*" name="name" />
-          <parameter type="const-gchar*" name="version" />
-          <parameter type="const-gchar*" name="arch" />
-          <parameter type="const-gchar*" name="data" />
-        </parameters>
-      </constructor>
-      <constructor cname="pk_package_id_new_from_string">
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </constructor>
-      <method name="ToString" cname="pk_package_id_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </struct>
-    <struct name="PackageObj" cname="PkPackageObj" opaque="true">
-      <field name="Info" cname="info" type="PkInfoEnum" access="public" writeable="true" />
-      <field name="Id" cname="id" type="PkPackageId*" access="public" writeable="true" />
-      <field name="Summary" cname="summary" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_package_obj_copy">
-        <return-type type="PkPackageObj*" owned="true" />
-      </method>
-      <method name="Equal" cname="pk_package_obj_equal">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageObj*" name="obj2" />
-        </parameters>
-      </method>
-      <method name="EqualFuzzyArch" cname="pk_package_obj_equal_fuzzy_arch">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="const-PkPackageObj*" name="obj2" />
-        </parameters>
-      </method>
-      <method name="Free" cname="pk_package_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <method name="FromString" cname="pk_package_obj_from_string" shared="true">
-        <return-type type="PkPackageObj*" />
-        <parameters>
-          <parameter type="const-gchar*" name="text" />
-        </parameters>
-      </method>
-      <constructor cname="pk_package_obj_new">
-        <parameters>
-          <parameter type="PkInfoEnum" name="info" />
-          <parameter type="const-PkPackageId*" name="id" />
-          <parameter type="const-gchar*" name="summary" />
-        </parameters>
-      </constructor>
-      <method name="ToString" cname="pk_package_obj_to_string">
-        <return-type type="gchar*" />
-      </method>
-    </struct>
-    <struct name="TaskListItem" cname="PkTaskListItem">
-      <field name="Tid" cname="tid" type="gchar*" />
-      <field name="Status" cname="status" type="PkStatusEnum" />
-      <field name="Role" cname="role" type="PkRoleEnum" />
-      <field name="Text" cname="text" type="gchar*" />
-      <field name="Monitor" cname="monitor" type="PkClient*" />
-      <field name="Valid" cname="valid" type="gboolean" />
-    </struct>
-    <struct name="TransactionObj" cname="PkTransactionObj" opaque="true">
-      <field name="Tid" cname="tid" type="gchar*" access="public" writeable="true" />
-      <field name="Timespec" cname="timespec" type="gchar*" access="public" writeable="true" />
-      <field name="Succeeded" cname="succeeded" type="gboolean" access="public" writeable="true" />
-      <field name="Role" cname="role" type="PkRoleEnum" access="public" writeable="true" />
-      <field name="Duration" cname="duration" type="guint" access="public" writeable="true" />
-      <field name="Data" cname="data" type="gchar*" access="public" writeable="true" />
-      <field name="Uid" cname="uid" type="guint" access="public" writeable="true" />
-      <field name="Cmdline" cname="cmdline" type="gchar*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_transaction_obj_copy">
-        <return-type type="PkTransactionObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_transaction_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_transaction_obj_new" />
-      <constructor cname="pk_transaction_obj_new_from_data">
-        <parameters>
-          <parameter type="const-gchar*" name="tid" />
-          <parameter type="const-gchar*" name="timespec" />
-          <parameter type="gboolean" name="succeeded" />
-          <parameter type="PkRoleEnum" name="role" />
-          <parameter type="guint" name="duration" />
-          <parameter type="const-gchar*" name="data" />
-          <parameter type="guint" name="uid" />
-          <parameter type="const-gchar*" name="cmdline" />
-        </parameters>
-      </constructor>
-    </struct>
-    <struct name="UpdateDetailObj" cname="PkUpdateDetailObj" opaque="true">
-      <field name="Id" cname="id" type="PkPackageId*" access="public" writeable="true" />
-      <field name="Updates" cname="updates" type="gchar*" access="public" writeable="true" />
-      <field name="Obsoletes" cname="obsoletes" type="gchar*" access="public" writeable="true" />
-      <field name="VendorUrl" cname="vendor_url" type="gchar*" access="public" writeable="true" />
-      <field name="BugzillaUrl" cname="bugzilla_url" type="gchar*" access="public" writeable="true" />
-      <field name="CveUrl" cname="cve_url" type="gchar*" access="public" writeable="true" />
-      <field name="Restart" cname="restart" type="PkRestartEnum" access="public" writeable="true" />
-      <field name="UpdateText" cname="update_text" type="gchar*" access="public" writeable="true" />
-      <field name="Changelog" cname="changelog" type="gchar*" access="public" writeable="true" />
-      <field name="State" cname="state" type="PkUpdateStateEnum" access="public" writeable="true" />
-      <field name="Issued" cname="issued" type="GDate*" access="public" writeable="true" />
-      <field name="Updated" cname="updated" type="GDate*" access="public" writeable="true" />
-      <method name="Copy" cname="pk_update_detail_obj_copy">
-        <return-type type="PkUpdateDetailObj*" owned="true" />
-      </method>
-      <method name="Free" cname="pk_update_detail_obj_free">
-        <return-type type="gboolean" />
-      </method>
-      <constructor cname="pk_update_detail_obj_new" />
-      <constructor cname="pk_update_detail_obj_new_from_data">
-        <parameters>
-          <parameter type="const-PkPackageId*" name="id" />
-          <parameter type="const-gchar*" name="updates" />
-          <parameter type="const-gchar*" name="obsoletes" />
-          <parameter type="const-gchar*" name="vendor_url" />
-          <parameter type="const-gchar*" name="bugzilla_url" />
-          <parameter type="const-gchar*" name="cve_url" />
-          <parameter type="PkRestartEnum" name="restart" />
-          <parameter type="const-gchar*" name="update_text" />
-          <parameter type="const-gchar*" name="changelog" />
-          <parameter type="PkUpdateStateEnum" name="state" />
-          <parameter type="GDate*" name="issued" />
-          <parameter type="GDate*" name="updated" />
-        </parameters>
-      </constructor>
-    </struct>
-    <class name="Bitfield" cname="PkBitfield_">
-      <method name="ContainPriority" cname="pk_bitfield_contain_priority" shared="true">
-        <return-type type="gint" />
-        <parameters>
-          <parameter type="PkBitfield" name="values" />
-          <parameter type="gint" name="value" />
-          <parameter ellipsis="true" />
-        </parameters>
-      </method>
-      <method name="FromEnums" cname="pk_bitfield_from_enums" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="gint" name="value" />
-          <parameter ellipsis="true" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Distro" cname="PkDistro_">
-      <method name="UpgradeEnumFromText" cname="pk_distro_upgrade_enum_from_string" shared="true">
-        <return-type type="PkDistroUpgradeEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="upgrade" />
-        </parameters>
-      </method>
-      <method name="UpgradeEnumToText" cname="pk_distro_upgrade_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkDistroUpgradeEnum" name="upgrade" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Enum" cname="PkEnum_">
-      <method name="FindString" cname="pk_enum_find_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="const-PkEnumMatch*" name="table" />
-          <parameter type="guint" name="value" />
-        </parameters>
-      </method>
-      <method name="FindValue" cname="pk_enum_find_value" shared="true">
-        <return-type type="guint" />
-        <parameters>
-          <parameter type="const-PkEnumMatch*" name="table" />
-          <parameter type="const-gchar*" name="string" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Error" cname="PkError_">
-      <method name="EnumFromText" cname="pk_error_enum_from_string" shared="true">
-        <return-type type="PkErrorCodeEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="code" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_error_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkErrorCodeEnum" name="code" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Exit" cname="PkExit_">
-      <method name="EnumFromText" cname="pk_exit_enum_from_string" shared="true">
-        <return-type type="PkExitEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="exit" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_exit_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkExitEnum" name="exit" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Filter" cname="PkFilter_">
-      <method name="BitfieldFromText" cname="pk_filter_bitfield_from_string" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="const-gchar*" name="filters" />
-        </parameters>
-      </method>
-      <method name="BitfieldToText" cname="pk_filter_bitfield_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="PkBitfield" name="filters" />
-        </parameters>
-      </method>
-      <method name="EnumFromText" cname="pk_filter_enum_from_string" shared="true">
-        <return-type type="PkFilterEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="filter" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_filter_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkFilterEnum" name="filter" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Global" cname="PkGlobal">
-      <method name="GetDistroId" cname="pk_get_distro_id" shared="true">
-        <return-type type="gchar*" />
-      </method>
-      <method name="PtrArrayToStrv" cname="pk_ptr_array_to_strv" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="GPtrArray*" name="array" />
-        </parameters>
-      </method>
-      <method name="StrvToPtrArray" cname="pk_strv_to_ptr_array" shared="true">
-        <return-type type="GPtrArray*" />
-        <parameters>
-          <parameter type="gchar**" name="array" />
-        </parameters>
-      </method>
-      <method name="VaListToArgv" cname="pk_va_list_to_argv" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="string_first" />
-          <parameter type="va_list*" name="args" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Group" cname="PkGroup_">
-      <method name="BitfieldFromText" cname="pk_group_bitfield_from_string" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="const-gchar*" name="groups" />
-        </parameters>
-      </method>
-      <method name="BitfieldToText" cname="pk_group_bitfield_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="PkBitfield" name="groups" />
-        </parameters>
-      </method>
-      <method name="EnumFromText" cname="pk_group_enum_from_string" shared="true">
-        <return-type type="PkGroupEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="group" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_group_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkGroupEnum" name="group" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Info" cname="PkInfo_">
-      <method name="EnumFromText" cname="pk_info_enum_from_string" shared="true">
-        <return-type type="PkInfoEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="info" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_info_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkInfoEnum" name="info" />
-        </parameters>
-      </method>
-    </class>
-    <class name="License" cname="PkLicense_">
-      <method name="EnumFromText" cname="pk_license_enum_from_string" shared="true">
-        <return-type type="PkLicenseEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="license" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_license_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkLicenseEnum" name="license" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Message" cname="PkMessage_">
-      <method name="EnumFromText" cname="pk_message_enum_from_string" shared="true">
-        <return-type type="PkMessageEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="message" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_message_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkMessageEnum" name="message" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Network" cname="PkNetwork_">
-      <method name="EnumFromText" cname="pk_network_enum_from_string" shared="true">
-        <return-type type="PkNetworkEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="network" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_network_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkNetworkEnum" name="network" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Package" cname="PkPackage_">
-      <method name="IdsCheck" cname="pk_package_ids_check" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-      <method name="IdsFromArray" cname="pk_package_ids_from_array" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="GPtrArray*" name="array" />
-        </parameters>
-      </method>
-      <method name="IdsFromId" cname="pk_package_ids_from_id" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="IdsFromText" cname="pk_package_ids_from_string" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id" />
-        </parameters>
-      </method>
-      <method name="IdsFromVaList" cname="pk_package_ids_from_va_list" shared="true">
-        <return-type type="gchar**" />
-        <parameters>
-          <parameter type="const-gchar*" name="package_id_first" />
-          <parameter type="va_list*" name="args" />
-        </parameters>
-      </method>
-      <method name="IdsPrint" cname="pk_package_ids_print" shared="true">
-        <return-type type="gboolean" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-      <method name="IdsSize" cname="pk_package_ids_size" shared="true">
-        <return-type type="guint" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-      <method name="IdsToText" cname="pk_package_ids_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="gchar**" name="package_ids" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Provides" cname="PkProvides_">
-      <method name="EnumFromText" cname="pk_provides_enum_from_string" shared="true">
-        <return-type type="PkProvidesEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="provides" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_provides_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkProvidesEnum" name="provides" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Restart" cname="PkRestart_">
-      <method name="EnumFromText" cname="pk_restart_enum_from_string" shared="true">
-        <return-type type="PkRestartEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="restart" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_restart_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkRestartEnum" name="restart" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Role" cname="PkRole_">
-      <method name="BitfieldFromText" cname="pk_role_bitfield_from_string" shared="true">
-        <return-type type="PkBitfield" />
-        <parameters>
-          <parameter type="const-gchar*" name="roles" />
-        </parameters>
-      </method>
-      <method name="BitfieldToText" cname="pk_role_bitfield_to_string" shared="true">
-        <return-type type="gchar*" />
-        <parameters>
-          <parameter type="PkBitfield" name="roles" />
-        </parameters>
-      </method>
-      <method name="EnumFromText" cname="pk_role_enum_from_string" shared="true">
-        <return-type type="PkRoleEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="role" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_role_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkRoleEnum" name="role" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Sig" cname="PkSig_">
-      <method name="TypeEnumFromText" cname="pk_sig_type_enum_from_string" shared="true">
-        <return-type type="PkSigTypeEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="sig_type" />
-        </parameters>
-      </method>
-      <method name="TypeEnumToText" cname="pk_sig_type_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkSigTypeEnum" name="sig_type" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Status" cname="PkStatus_">
-      <method name="EnumFromText" cname="pk_status_enum_from_string" shared="true">
-        <return-type type="PkStatusEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="status" />
-        </parameters>
-      </method>
-      <method name="EnumToText" cname="pk_status_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkStatusEnum" name="status" />
-        </parameters>
-      </method>
-    </class>
-    <class name="Update" cname="PkUpdate_">
-      <method name="StateEnumFromText" cname="pk_update_state_enum_from_string" shared="true">
-        <return-type type="PkUpdateStateEnum" />
-        <parameters>
-          <parameter type="const-gchar*" name="update_state" />
-        </parameters>
-      </method>
-      <method name="StateEnumToText" cname="pk_update_state_enum_to_string" shared="true">
-        <return-type type="const-gchar*" />
-        <parameters>
-          <parameter type="PkUpdateStateEnum" name="update_state" />
-        </parameters>
-      </method>
-    </class>
-  </namespace>
-</api>
\ No newline at end of file
diff --git a/lib/packagekit-sharp/packagekit-sharp-sources.xml b/lib/packagekit-sharp/packagekit-sharp-sources.xml
deleted file mode 100644
index d67bd43..0000000
--- a/lib/packagekit-sharp/packagekit-sharp-sources.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<gapi-parser-input>
-  <api filename="./packagekit-api.raw">
-    <library name="libpackagekit-glib.dll">
-      <namespace name="Pk">
-        <directory path="../packagekit-glib">
-	  <exclude>pk-client.c</exclude>
-	</directory>
-      </namespace>
-    </library>
-  </api>
-</gapi-parser-input>
diff --git a/lib/packagekit-sharp/samples/.gitignore b/lib/packagekit-sharp/samples/.gitignore
deleted file mode 100644
index 558826a..0000000
--- a/lib/packagekit-sharp/samples/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/*.exe
-/*.exe.mdb
-/*.sh
diff --git a/lib/packagekit-sharp/samples/ListUpdates.cs b/lib/packagekit-sharp/samples/ListUpdates.cs
deleted file mode 100644
index 8322b94..0000000
--- a/lib/packagekit-sharp/samples/ListUpdates.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * ListUpdate.cs
- *
- * Author(s):
- *	Stephane Delcroix  (stephane at delcroix.org)
- *
- * Copyright (c) 2009 Novell, Inc.
- *
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-using System;
-using PackageKit;
-using GLib;
-
-public class ListUpdates
-{
-	static MainLoop mainloop;
-	static void Main ()
-	{
-		GType.Init ();
-		mainloop = new MainLoop ();
-
-		Client client = new Client ();
-		client.Package += HandlePackage;
-		client.Finished += HandleFinished;
-		client.GetUpdates ((ulong)FilterEnum.None);
-		mainloop.Run ();
-	}
-
-	static void HandlePackage (object sender, PackageArgs args)
-	{
-		Console.WriteLine ("update found: {0}", args.Obj.ToString ());
-	}
-
-	static void HandleFinished (object sender, EventArgs args)
-	{
-		mainloop.Quit ();
-
-	}
-}
diff --git a/lib/packagekit-sharp/samples/Makefile.am b/lib/packagekit-sharp/samples/Makefile.am
deleted file mode 100644
index d103dce..0000000
--- a/lib/packagekit-sharp/samples/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-all:			\
-	ListUpdates.sh	\
-	ListUpdates.exe	\
-	UpdateSystem.sh	\
-	UpdateSystem.exe
-
-.cs.exe: ../packagekit-sharp.dll
-	$(MCS) -debug -out:$@ -r:$(srcdir)/../packagekit-sharp.dll $(GLIBSHARP_LIBS) $<
-
-.exe.sh: $(srcdir)/launcher.in
-	sed -e 's,[@]sample[@],$<,g' $(do_subst) < $(srcdir)/launcher.in > $@
-	chmod +x $@
-
-CLEANFILES =		\
-	*.exe		\
-	*.exe.mdb	\
-	*.sh
diff --git a/lib/packagekit-sharp/samples/UpdateSystem.cs b/lib/packagekit-sharp/samples/UpdateSystem.cs
deleted file mode 100644
index 738c4dc..0000000
--- a/lib/packagekit-sharp/samples/UpdateSystem.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * UpdateSystem.cs
- *
- * Author(s):
- *	Stephane Delcroix  (stephane at delcroix.org)
- *
- * Copyright (c) 2009 Novell, Inc.
- *
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- */
-using System;
-using PackageKit;
-using GLib;
-
-public class UpdateSystem
-{
-	static MainLoop mainloop;
-	static void Main ()
-	{
-		GType.Init ();
-		mainloop = new MainLoop ();
-
-		Client client = new Client ();
-		client.Finished += HandleFinished;
-		client.Message += HandleMessage;
-		client.UpdateSystem ();
-		mainloop.Run ();
-	}
-
-	static void HandleFinished (object sender, EventArgs args)
-	{
-		Console.WriteLine ("Done updating");
-		mainloop.Quit ();
-
-	}
-
-	static void HandleMessage (object sender, MessageArgs args)
-	{
-		Console.WriteLine ("Got a message:\t{0}", args.Details);
-	}
-}
diff --git a/lib/packagekit-sharp/samples/launcher.in b/lib/packagekit-sharp/samples/launcher.in
deleted file mode 100644
index a6ed1e2..0000000
--- a/lib/packagekit-sharp/samples/launcher.in
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-EXEC="exec "
-
-if test x$1 = x--debug; then
-   DEBUG=--debug
-   shift
-fi
-
-if test x$1 = x--gdb; then
-   shift
-   EXEC="gdb --eval-command=run --args "
-fi
-
-if test x$1 = x--valgrind; then
-  shift
-  EXEC="valgrind $VALGRIND_OPTIONS"
-fi
-
-
-LD_LIBRARY_PATH="../../packagekit-glib/.libs:$LD_LIBRARY_PATH" MONO_PATH="../:$MONO_PATH" $EXEC mono $DEBUG $MONO_OPTIONS @sample@ $@
diff --git a/lib/packagekit-sharp/test/Test.cs b/lib/packagekit-sharp/test/Test.cs
deleted file mode 100644
index ead9068..0000000
--- a/lib/packagekit-sharp/test/Test.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using PackageKit;
-
-public class TestPK
-{
-	static void Main ()
-	{
-		Gtk.Application.Init ();
-		Client client = new Client ();
-		try {
-			client.InstallPackages (new string[] {"sqlite2;0.0.1;i386;fedora"});
-			client.Finished += HandleFinished;
-
-		} catch (GLib.GException gex) {
-			Console.WriteLine (gex.Message);
-		}
-		Gtk.Window w = new Gtk.Window ("b");
-		w.ShowAll ();
-		Gtk.Application.Run ();
-	}
-	static void HandleFinished (object sender, EventArgs args)
-	{
-		Console.WriteLine ("Finished!");
-	}
-}
commit 3385d1c7cbf877cb38c42c0cea43311bc3ed5b63
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Oct 6 17:34:24 2010 +0100

    Only build with gobject-introspection when completely up to date

diff --git a/configure.ac b/configure.ac
index 33ee702..8822a8d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -13,7 +13,7 @@ AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
 
-GOBJECT_INTROSPECTION_CHECK([0.6.7])
+GOBJECT_INTROSPECTION_CHECK([0.9.8])
 
 # enable nice build output on automake1.11
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
commit 67c101b9ba24e1a476a180023a3575911ee0c977
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Oct 5 13:13:51 2010 +0100

    Require GTK >= 2.91.0 for the GTK3 version of the PackageKit font install module

diff --git a/configure.ac b/configure.ac
index 04bc175..33ee702 100644
--- a/configure.ac
+++ b/configure.ac
@@ -440,7 +440,7 @@ AC_ARG_ENABLE(gtk_module, AS_HELP_STRING([--enable-gtk-module],[Build GTK module
 if test x$enable_gtk_module = xyes; then
 	PKG_CHECK_MODULES(PK_GTK_MODULE_GTK2, gtk+-2.0 >= 2.14.0 pangoft2 fontconfig dbus-glib-1,
 	                  build_gtk_module_gtk2=yes, build_gtk_module_gtk2=no)
-	PKG_CHECK_MODULES(PK_GTK_MODULE_GTK3, gtk+-3.0 pangoft2 fontconfig dbus-glib-1,
+	PKG_CHECK_MODULES(PK_GTK_MODULE_GTK3, gtk+-3.0 >= 2.91.0 pangoft2 fontconfig dbus-glib-1,
 	                  build_gtk_module_gtk3=yes, build_gtk_module_gtk3=no)
 	# if either are true, visit the gtk-module directory
 	if test $build_gtk_module_gtk2 = "yes" -o $build_gtk_module_gtk3 = "yes"; then
commit ef6b4f104543ad1631f85e565d31b0db2d8d49ec
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Oct 5 11:55:42 2010 +0100

    glib: Fix up a lot of the gobject-introspection warnings

diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 25c67d7..98f4076 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -237,7 +237,7 @@ introspection_sources = $(libpackagekit_glib2_la_SOURCES)
 PackageKitGlib-1.0.gir: libpackagekit-glib2.la
 PackageKitGlib_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0
 PackageKitGlib_1_0_gir_CFLAGS = $(INCLUDES) -DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE
-PackageKitGlib_1_0_gir_SCANNERFLAGS = --identifier-prefix=Pk --warn-all --add-include-path=$(srcdir)
+PackageKitGlib_1_0_gir_SCANNERFLAGS = --identifier-prefix=Pk --symbol-prefix=pk_ --warn-all --add-include-path=$(srcdir)
 PackageKitGlib_1_0_gir_LIBS = libpackagekit-glib2.la
 PackageKitGlib_1_0_gir_FILES = $(introspection_sources)
 INTROSPECTION_GIRS += PackageKitGlib-1.0.gir
diff --git a/lib/packagekit-glib2/pk-catalog.c b/lib/packagekit-glib2/pk-catalog.c
index feaaf3c..e9c19d9 100644
--- a/lib/packagekit-glib2/pk-catalog.c
+++ b/lib/packagekit-glib2/pk-catalog.c
@@ -471,7 +471,7 @@ pk_catalog_do_resolve (PkCatalogState *state)
  * @filename: the filename of the catalog to install
  * @cancellable: a #GCancellable or %NULL
  * @callback: the function to run on completion
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @user_data: the data to pass to @callback
  *
@@ -555,7 +555,7 @@ out:
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the #GPtrArray of #PkPackage's, or %NULL. Free with g_ptr_array_unref()
+ * Return value: (transfer full): the #GPtrArray of #PkPackage's, or %NULL. Free with g_ptr_array_unref()
  *
  * Since: 0.5.3
  **/
diff --git a/lib/packagekit-glib2/pk-client-sync.c b/lib/packagekit-glib2/pk-client-sync.c
index 3947683..bdbe48e 100644
--- a/lib/packagekit-glib2/pk-client-sync.c
+++ b/lib/packagekit-glib2/pk-client-sync.c
@@ -60,7 +60,7 @@ pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelp
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @packages: an array of package names to resolve, e.g. "gnome-system-tools"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -71,7 +71,7 @@ pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelp
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -111,7 +111,7 @@ pk_client_resolve (PkClient *client, PkBitfield filters, gchar **packages, GCanc
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: free text to search for, for instance, "power"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -121,7 +121,7 @@ pk_client_resolve (PkClient *client, PkBitfield filters, gchar **packages, GCanc
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.5
  **/
@@ -161,7 +161,7 @@ pk_client_search_names (PkClient *client, PkBitfield filters, gchar **values, GC
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: free text to search for, for instance, "power"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -172,7 +172,7 @@ pk_client_search_names (PkClient *client, PkBitfield filters, gchar **values, GC
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.5
  **/
@@ -212,7 +212,7 @@ pk_client_search_details (PkClient *client, PkBitfield filters, gchar **values,
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: a group enum to search for, for instance, "system-tools"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -221,7 +221,7 @@ pk_client_search_details (PkClient *client, PkBitfield filters, gchar **values,
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.5
  **/
@@ -261,7 +261,7 @@ pk_client_search_groups (PkClient *client, PkBitfield filters, gchar **values, G
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: file to search for, for instance, "/sbin/service"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -270,7 +270,7 @@ pk_client_search_groups (PkClient *client, PkBitfield filters, gchar **values, G
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.5
  **/
@@ -309,7 +309,7 @@ pk_client_search_files (PkClient *client, PkBitfield filters, gchar **values, GC
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -319,7 +319,7 @@ pk_client_search_files (PkClient *client, PkBitfield filters, gchar **values, GC
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -358,7 +358,7 @@ pk_client_get_details (PkClient *client, gchar **package_ids, GCancellable *canc
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -368,7 +368,7 @@ pk_client_get_details (PkClient *client, gchar **package_ids, GCancellable *canc
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -408,7 +408,7 @@ pk_client_get_update_detail (PkClient *client, gchar **package_ids, GCancellable
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @directory: the location where packages are to be downloaded
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -417,7 +417,7 @@ pk_client_get_update_detail (PkClient *client, gchar **package_ids, GCancellable
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -456,7 +456,7 @@ pk_client_download_packages (PkClient *client, gchar **package_ids, const gchar
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -465,7 +465,7 @@ pk_client_download_packages (PkClient *client, gchar **package_ids, const gchar
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -504,7 +504,7 @@ pk_client_get_updates (PkClient *client, PkBitfield filters, GCancellable *cance
  * @client: a valid #PkClient instance
  * @number: the number of past transactions to return, or 0 for all
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -513,7 +513,7 @@ pk_client_get_updates (PkClient *client, PkBitfield filters, GCancellable *cance
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -552,7 +552,7 @@ pk_client_get_old_transactions (PkClient *client, guint number, GCancellable *ca
  * @client: a valid #PkClient instance
  * @only_trusted: only trusted packages should be installed
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -566,7 +566,7 @@ pk_client_get_old_transactions (PkClient *client, guint number, GCancellable *ca
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -607,7 +607,7 @@ pk_client_update_system (PkClient *client, gboolean only_trusted, GCancellable *
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @recursive: If we should search recursively for depends
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -616,7 +616,7 @@ pk_client_update_system (PkClient *client, gboolean only_trusted, GCancellable *
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -655,7 +655,7 @@ pk_client_get_depends (PkClient *client, PkBitfield filters, gchar **package_ids
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -664,7 +664,7 @@ pk_client_get_depends (PkClient *client, PkBitfield filters, gchar **package_ids
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -705,7 +705,7 @@ pk_client_get_packages (PkClient *client, PkBitfield filters, GCancellable *canc
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @recursive: If we should search recursively for requires
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -714,7 +714,7 @@ pk_client_get_packages (PkClient *client, PkBitfield filters, GCancellable *canc
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -755,7 +755,7 @@ pk_client_get_requires (PkClient *client, PkBitfield filters, gchar **package_id
  * @provides: a #PkProvidesEnum value such as PK_PROVIDES_ENUM_CODEC
  * @values: a search term such as "sound/mp3"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -766,7 +766,7 @@ pk_client_get_requires (PkClient *client, PkBitfield filters, gchar **package_id
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -804,7 +804,7 @@ pk_client_what_provides (PkClient *client, PkBitfield filters, PkProvidesEnum pr
  * pk_client_get_distro_upgrades:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -814,7 +814,7 @@ pk_client_what_provides (PkClient *client, PkBitfield filters, PkProvidesEnum pr
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -853,7 +853,7 @@ pk_client_get_distro_upgrades (PkClient *client, GCancellable *cancellable,
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -862,7 +862,7 @@ pk_client_get_distro_upgrades (PkClient *client, GCancellable *cancellable,
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -900,7 +900,7 @@ pk_client_get_files (PkClient *client, gchar **package_ids, GCancellable *cancel
  * pk_client_get_categories:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -909,7 +909,7 @@ pk_client_get_files (PkClient *client, gchar **package_ids, GCancellable *cancel
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -950,7 +950,7 @@ pk_client_get_categories (PkClient *client, GCancellable *cancellable,
  * @allow_deps: if other dependant packages are allowed to be removed from the computer
  * @autoremove: if other packages installed at the same time should be tried to remove
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -961,7 +961,7 @@ pk_client_get_categories (PkClient *client, GCancellable *cancellable,
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1000,7 +1000,7 @@ pk_client_remove_packages (PkClient *client, gchar **package_ids, gboolean allow
  * @client: a valid #PkClient instance
  * @force: if we should aggressively drop caches
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1012,7 +1012,7 @@ pk_client_remove_packages (PkClient *client, gchar **package_ids, gboolean allow
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1052,7 +1052,7 @@ pk_client_refresh_cache (PkClient *client, gboolean force, GCancellable *cancell
  * @only_trusted: only trusted packages should be installed
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1061,7 +1061,7 @@ pk_client_refresh_cache (PkClient *client, gboolean force, GCancellable *cancell
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1102,7 +1102,7 @@ pk_client_install_packages (PkClient *client, gboolean only_trusted, gchar **pac
  * @key_id: a key ID such as "0df23df"
  * @package_id: a signature_id structure such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1111,7 +1111,7 @@ pk_client_install_packages (PkClient *client, gboolean only_trusted, gchar **pac
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1151,7 +1151,7 @@ pk_client_install_signature (PkClient *client, PkSigTypeEnum type, const gchar *
  * @only_trusted: only trusted packages should be installed
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1160,7 +1160,7 @@ pk_client_install_signature (PkClient *client, PkSigTypeEnum type, const gchar *
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1200,7 +1200,7 @@ pk_client_update_packages (PkClient *client, gboolean only_trusted, gchar **pack
  * @only_trusted: only trusted packages should be installed
  * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1210,7 +1210,7 @@ pk_client_update_packages (PkClient *client, gboolean only_trusted, gchar **pack
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1249,7 +1249,7 @@ pk_client_install_files (PkClient *client, gboolean only_trusted, gchar **files,
  * @client: a valid #PkClient instance
  * @eula_id: the <literal>eula_id</literal> we are agreeing to
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1258,7 +1258,7 @@ pk_client_install_files (PkClient *client, gboolean only_trusted, gchar **files,
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1297,7 +1297,7 @@ pk_client_accept_eula (PkClient *client, const gchar *eula_id, GCancellable *can
  * @client: a valid #PkClient instance
  * @transaction_id: the <literal>transaction_id</literal> we want to return to
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1306,7 +1306,7 @@ pk_client_accept_eula (PkClient *client, const gchar *eula_id, GCancellable *can
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1345,7 +1345,7 @@ pk_client_rollback (PkClient *client, const gchar *transaction_id, GCancellable
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1354,7 +1354,7 @@ pk_client_rollback (PkClient *client, const gchar *transaction_id, GCancellable
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1394,7 +1394,7 @@ pk_client_get_repo_list (PkClient *client, PkBitfield filters, GCancellable *can
  * @repo_id: a repo_id structure such as "livna-devel"
  * @enabled: if we should enable the repository
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1403,7 +1403,7 @@ pk_client_get_repo_list (PkClient *client, PkBitfield filters, GCancellable *can
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1444,7 +1444,7 @@ pk_client_repo_enable (PkClient *client, const gchar *repo_id, gboolean enabled,
  * @parameter: the parameter to change
  * @value: what we should change it to
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1454,7 +1454,7 @@ pk_client_repo_enable (PkClient *client, const gchar *repo_id, gboolean enabled,
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1493,7 +1493,7 @@ pk_client_repo_set_data (PkClient *client, const gchar *repo_id, const gchar *pa
  * @client: a valid #PkClient instance
  * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1502,7 +1502,7 @@ pk_client_repo_set_data (PkClient *client, const gchar *repo_id, const gchar *pa
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1542,7 +1542,7 @@ pk_client_simulate_install_files (PkClient *client, gchar **files, GCancellable
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1551,7 +1551,7 @@ pk_client_simulate_install_files (PkClient *client, gchar **files, GCancellable
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1591,7 +1591,7 @@ pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GCan
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @autoremove: if other packages installed at the same time should be tried to remove
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1600,7 +1600,7 @@ pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GCan
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1639,7 +1639,7 @@ pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, gbool
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1648,7 +1648,7 @@ pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, gbool
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1687,7 +1687,7 @@ pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GCanc
  * @client: a valid #PkClient instance
  * @transaction_id: a transaction ID such as "/21_ebcbdaae_data"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @error: the #GError to store any failure, or %NULL
  *
@@ -1696,7 +1696,7 @@ pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GCanc
  * Warning: this function is synchronous, and will block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
@@ -1757,7 +1757,7 @@ pk_client_get_progress_finish_sync (PkClient *client, GAsyncResult *res, PkClien
  * Warning: this function is synchronous, and will block. Do not use it in GUI
  * applications.
  *
- * Return value: a %PkResults object, or NULL for error
+ * Return value: (transfer full): a %PkResults object, or NULL for error
  *
  * Since: 0.5.3
  **/
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index 93d13d7..5a60f75 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -1875,7 +1875,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, PkClientState *state)
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the #PkResults, or %NULL. Free with g_object_unref()
+ * Return value: (transfer full): the #PkResults, or %NULL. Free with g_object_unref()
  *
  * Since: 0.5.2
  **/
@@ -1901,7 +1901,7 @@ pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @packages: an array of package names to resolve, e.g. "gnome-system-tools"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -1964,7 +1964,7 @@ out:
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: free text to search for, for instance, "power"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2026,7 +2026,7 @@ out:
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: free text to search for, for instance, "power"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2089,7 +2089,7 @@ out:
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: a group enum to search for, for instance, "system-tools"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2150,7 +2150,7 @@ out:
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @values: file to search for, for instance, "/sbin/service"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2210,7 +2210,7 @@ out:
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2271,7 +2271,7 @@ out:
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2333,7 +2333,7 @@ out:
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @directory: the location where packages are to be downloaded
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2394,7 +2394,7 @@ out:
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2453,7 +2453,7 @@ out:
  * @client: a valid #PkClient instance
  * @number: the number of past transactions to return, or 0 for all
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2512,7 +2512,7 @@ out:
  * @client: a valid #PkClient instance
  * @only_trusted: only trusted packages should be installed
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2578,7 +2578,7 @@ out:
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @recursive: If we should search recursively for depends
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2640,7 +2640,7 @@ out:
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_GUI | %PK_FILTER_ENUM_FREE or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2701,7 +2701,7 @@ out:
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @recursive: If we should search recursively for requires
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2765,7 +2765,7 @@ out:
  * @provides: a #PkProvidesEnum value such as PK_PROVIDES_ENUM_CODEC
  * @values: a search term such as "sound/mp3"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2827,7 +2827,7 @@ out:
  * pk_client_get_distro_upgrades_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2886,7 +2886,7 @@ out:
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -2945,7 +2945,7 @@ out:
  * pk_client_get_categories_async:
  * @client: a valid #PkClient instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3005,7 +3005,7 @@ out:
  * @allow_deps: if other dependant packages are allowed to be removed from the computer
  * @autoremove: if other packages installed at the same time should be tried to remove
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3069,7 +3069,7 @@ out:
  * @client: a valid #PkClient instance
  * @force: if we should aggressively drop caches
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3132,7 +3132,7 @@ out:
  * @only_trusted: only trusted packages should be installed
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3195,7 +3195,7 @@ out:
  * @key_id: a key ID such as "0df23df"
  * @package_id: a signature_id structure such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3257,7 +3257,7 @@ out:
  * @only_trusted: only trusted packages should be installed
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3403,7 +3403,7 @@ pk_client_copy_non_native_then_get_tid (PkClientState *state)
  * @only_trusted: only trusted packages should be installed
  * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3489,7 +3489,7 @@ out:
  * @client: a valid #PkClient instance
  * @eula_id: the <literal>eula_id</literal> we are agreeing to
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3548,7 +3548,7 @@ out:
  * @client: a valid #PkClient instance
  * @transaction_id: the <literal>transaction_id</literal> we want to return to
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3607,7 +3607,7 @@ out:
  * @client: a valid #PkClient instance
  * @filters: a %PkBitfield such as %PK_FILTER_ENUM_DEVEL or %PK_FILTER_ENUM_NONE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3667,7 +3667,7 @@ out:
  * @repo_id: a repo_id structure such as "livna-devel"
  * @enabled: if we should enable the repository
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3729,7 +3729,7 @@ out:
  * @parameter: the parameter to change
  * @value: what we should change it to
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3791,7 +3791,7 @@ out:
  * @client: a valid #PkClient instance
  * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3876,7 +3876,7 @@ out:
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3937,7 +3937,7 @@ out:
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @autoremove: if other packages installed at the same time should be tried to remove
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -3998,7 +3998,7 @@ out:
  * @client: a valid #PkClient instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -4106,7 +4106,7 @@ pk_client_adopt_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCl
  * @client: a valid #PkClient instance
  * @transaction_id: a transaction ID such as "/21_ebcbdaae_data"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -4203,7 +4203,7 @@ out:
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: the #PkProgress, or %NULL. Free with g_object_unref()
+ * Return value: (transfer full): the #PkProgress, or %NULL. Free with g_object_unref()
  *
  * Since: 0.5.2
  **/
diff --git a/lib/packagekit-glib2/pk-common.c b/lib/packagekit-glib2/pk-common.c
index 71c3d60..f360aba 100644
--- a/lib/packagekit-glib2/pk-common.c
+++ b/lib/packagekit-glib2/pk-common.c
@@ -142,7 +142,7 @@ out:
  * Form a composite string array of strings.
  * The data in the GPtrArray is copied.
  *
- * Return value: the string array, or %NULL if invalid
+ * Return value: (transfer full): the string array, or %NULL if invalid
  *
  * Since: 0.5.2
  **/
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index 3950f28..7bea5d7 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -113,7 +113,7 @@ pk_control_get_transaction_list_cb (PkControl *control, GAsyncResult *res, PkCon
  * Warning: this function is synchronous, and may block. Do not use it in GUI
  * applications.
  *
- * Return value: The list of transaction id's, or %NULL, free with g_strfreev()
+ * Return value: (transfer full): The list of transaction id's, or %NULL, free with g_strfreev()
  *
  * Since: 0.5.3
  **/
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 11f648c..6e519c6 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -1106,7 +1106,7 @@ out:
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: A GStrv list of transaction ID's, free with g_strfreev()
+ * Return value: (transfer full): A GStrv list of transaction ID's, free with g_strfreev()
  *
  * Since: 0.5.2
  **/
@@ -2459,6 +2459,7 @@ pk_control_class_init (PkControlClass *klass)
 	/**
 	 * PkControl::transaction-list-changed:
 	 * @control: the #PkControl instance that emitted the signal
+	 * @transaction_ids: an #GStrv array of transaction ID's
 	 *
 	 * The ::transaction-list-changed signal is emitted when the list
 	 * of transactions handled by the daemon is changed.
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index ad61550..cd14c1c 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -102,7 +102,7 @@ pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_n
  * Return all desktop files owned by a package, regardless if they are shown
  * in the main menu or not.
  *
- * Return value: string array of results, free with g_ptr_array_unref()
+ * Return value: (transfer full): string array of results, free with g_ptr_array_unref()
  *
  * Since: 0.5.3
  **/
@@ -145,7 +145,7 @@ out:
  * Return all desktop files owned by a package that would be shown in a menu,
  * i.e are an application
  *
- * Return value: string array of results, free with g_ptr_array_unref()
+ * Return value: (transfer full): string array of results, free with g_ptr_array_unref()
  *
  * Since: 0.5.3
  **/
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index ac0fdcf..e6bb340 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -1147,7 +1147,7 @@ pk_media_type_enum_to_string (PkMediaTypeEnum media_type)
  *
  * Converts a text enumerated type to its unsigned integer representation
  *
- * Return value: the enumerated constant value, e.g. PK_AUTHORIZE_ENUM_YES
+ * Return value: the enumerated constant value, e.g. %PK_AUTHORIZE_ENUM_YES
  *
  * Since: 0.5.0
  **/
diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h
index 984d1fe..75de973 100644
--- a/lib/packagekit-glib2/pk-enum.h
+++ b/lib/packagekit-glib2/pk-enum.h
@@ -721,26 +721,26 @@ const gchar	*pk_enum_find_string			(const PkEnumMatch *table,
 PkSigTypeEnum	 pk_sig_type_enum_from_string		(const gchar	*sig_type);
 const gchar	*pk_sig_type_enum_to_string		(PkSigTypeEnum	 sig_type);
 
-PkInfoEnum	 pk_info_enum_from_string			(const gchar	*info);
+PkInfoEnum	 pk_info_enum_from_string		(const gchar	*info);
 const gchar	*pk_info_enum_to_string			(PkInfoEnum	 info);
 
 PkUpdateStateEnum  pk_update_state_enum_from_string	(const gchar	*update_state);
 const gchar	*pk_update_state_enum_to_string		(PkUpdateStateEnum update_state);
 
-PkExitEnum	 pk_exit_enum_from_string			(const gchar	*exit);
+PkExitEnum	 pk_exit_enum_from_string		(const gchar	*exit);
 const gchar	*pk_exit_enum_to_string			(PkExitEnum	 exit);
 
 PkNetworkEnum	 pk_network_enum_from_string		(const gchar	*network);
 const gchar	*pk_network_enum_to_string		(PkNetworkEnum	 network);
 
 PkStatusEnum	 pk_status_enum_from_string		(const gchar	*status);
-const gchar	*pk_status_enum_to_string			(PkStatusEnum	 status);
+const gchar	*pk_status_enum_to_string		(PkStatusEnum	 status);
 
-PkRoleEnum	 pk_role_enum_from_string			(const gchar	*role);
+PkRoleEnum	 pk_role_enum_from_string		(const gchar	*role);
 const gchar	*pk_role_enum_to_string			(PkRoleEnum	 role);
 
 PkErrorEnum	 pk_error_enum_from_string		(const gchar	*code);
-const gchar	*pk_error_enum_to_string			(PkErrorEnum code);
+const gchar	*pk_error_enum_to_string		(PkErrorEnum code);
 
 PkRestartEnum	 pk_restart_enum_from_string		(const gchar	*restart);
 const gchar	*pk_restart_enum_to_string		(PkRestartEnum	 restart);
@@ -749,10 +749,10 @@ PkMessageEnum	 pk_message_enum_from_string		(const gchar	*message);
 const gchar	*pk_message_enum_to_string		(PkMessageEnum	 message);
 
 PkGroupEnum	 pk_group_enum_from_string		(const gchar	*group);
-const gchar	*pk_group_enum_to_string			(PkGroupEnum	 group);
+const gchar	*pk_group_enum_to_string		(PkGroupEnum	 group);
 
 PkFilterEnum	 pk_filter_enum_from_string		(const gchar	*filter);
-const gchar	*pk_filter_enum_to_string			(PkFilterEnum	 filter);
+const gchar	*pk_filter_enum_to_string		(PkFilterEnum	 filter);
 
 PkProvidesEnum	 pk_provides_enum_from_string		(const gchar	*provides);
 const gchar	*pk_provides_enum_to_string		(PkProvidesEnum	 provides);
@@ -761,13 +761,13 @@ PkLicenseEnum	 pk_license_enum_from_string		(const gchar	*license);
 const gchar	*pk_license_enum_to_string		(PkLicenseEnum	 license);
 
 PkDistroUpgradeEnum pk_distro_upgrade_enum_from_string	(const gchar	*upgrade);
-const gchar	*pk_distro_upgrade_enum_to_string		(PkDistroUpgradeEnum upgrade);
+const gchar	*pk_distro_upgrade_enum_to_string	(PkDistroUpgradeEnum upgrade);
 
 PkMediaTypeEnum  pk_media_type_enum_from_string		(const gchar	*media_type);
 const gchar	*pk_media_type_enum_to_string		(PkMediaTypeEnum media_type);
 
-PkAuthorizeEnum  pk_authorize_type_enum_from_string	(const gchar	*auth_type);
-const gchar	*pk_authorize_type_enum_to_string		(PkAuthorizeEnum auth_type);
+PkAuthorizeEnum  pk_authorize_type_enum_from_string	(const gchar	*authorize_type);
+const gchar	*pk_authorize_type_enum_to_string	(PkAuthorizeEnum authorize_type);
 
 G_END_DECLS
 
diff --git a/lib/packagekit-glib2/pk-package-id.c b/lib/packagekit-glib2/pk-package-id.c
index fb2afc1..adebac5 100644
--- a/lib/packagekit-glib2/pk-package-id.c
+++ b/lib/packagekit-glib2/pk-package-id.c
@@ -39,7 +39,7 @@
  * Splits a PackageID into the correct number of parts, checking the correct
  * number of delimiters are present.
  *
- * Return value: a GStrv or %NULL if invalid, use g_strfreev() to free
+ * Return value: (transfer full): a GStrv or %NULL if invalid, use g_strfreev() to free
  *
  * Since: 0.5.3
  **/
diff --git a/lib/packagekit-glib2/pk-package-ids.c b/lib/packagekit-glib2/pk-package-ids.c
index d0c7b68..4ca3a7f 100644
--- a/lib/packagekit-glib2/pk-package-ids.c
+++ b/lib/packagekit-glib2/pk-package-ids.c
@@ -41,7 +41,7 @@
  * Form a composite string array of package_id's from
  * a single package_id
  *
- * Return value: the string array, or %NULL if invalid, free with g_strfreev()
+ * Return value: (transfer full): the string array, or %NULL if invalid, free with g_strfreev()
  *
  * Since: 0.5.2
  **/
@@ -59,7 +59,7 @@ pk_package_ids_from_id (const gchar *package_id)
  * Form a composite string array of package_id's from
  * a delimited string
  *
- * Return value: the string array, or %NULL if invalid, free with g_strfreev()
+ * Return value: (transfer full): the string array, or %NULL if invalid, free with g_strfreev()
  *
  * Since: 0.5.2
  **/
@@ -155,7 +155,7 @@ pk_package_ids_present_id (gchar **package_ids, const gchar *package_id)
  *
  * Adds a package_id to an existing list.
  *
- * Return value: the new list, free g_strfreev()
+ * Return value: (transfer full): the new list, free g_strfreev()
  *
  * Since: 0.5.2
  **/
@@ -186,7 +186,7 @@ pk_package_ids_add_id (gchar **package_ids, const gchar *package_id)
  *
  * Adds a package_id to an existing list.
  *
- * Return value: the new list, free g_strfreev()
+ * Return value: (transfer full): the new list, free g_strfreev()
  *
  * Since: 0.5.2
  **/
@@ -220,7 +220,7 @@ pk_package_ids_add_ids (gchar **package_ids, gchar **package_ids_new)
  *
  * Removes a package ID from the the list.
  *
- * Return value: the new list, free g_strfreev()
+ * Return value: (transfer full): the new list, free g_strfreev()
  *
  * Since: 0.5.2
  **/
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index a6dfaa8..9b9d837 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -103,7 +103,7 @@ pk_package_sack_get_size (PkPackageSack *sack)
  *
  * Returns all the Package IDs in the sack
  *
- * Return value: the number of packages in the sack, free with g_strfreev()
+ * Return value: (transfer full): the number of packages in the sack, free with g_strfreev()
  *
  * Since: 0.5.3
  **/
@@ -132,7 +132,7 @@ pk_package_sack_get_ids (PkPackageSack *sack)
  *
  * Gets the package array from the sack
  *
- * Return value: a #GPtrArray, free with g_ptr_array_unref()
+ * Return value: (transfer full): a #GPtrArray, free with g_ptr_array_unref()
  *
  * Since: 0.6.1
  **/
@@ -151,7 +151,7 @@ pk_package_sack_get_array (PkPackageSack *sack)
  * Returns a new package sack which only matches packages that match the
  * specified info enum value.
  *
- * Return value: a new #PkPackageSack, free with g_object_unref()
+ * Return value: (transfer full): a new #PkPackageSack, free with g_object_unref()
  *
  * Since: 0.6.2
  **/
@@ -183,13 +183,13 @@ pk_package_sack_filter_by_info (PkPackageSack *sack, PkInfoEnum info)
 /**
  * pk_package_sack_filter:
  * @sack: a valid #PkPackageSack instance
- * @filter_cb: a #PkPackageSackFilterFunc, which returns %TRUE for the #PkPackage's to add
+ * @filter_cb: (scope call): a #PkPackageSackFilterFunc, which returns %TRUE for the #PkPackage's to add
  * @user_data: user data to pass to @filter_cb
  *
  * Returns a new package sack which only matches packages that return %TRUE
  * from the filter function.
  *
- * Return value: a new #PkPackageSack, free with g_object_unref()
+ * Return value: (transfer full): a new #PkPackageSack, free with g_object_unref()
  *
  * Since: 0.6.3
  **/
@@ -340,7 +340,7 @@ pk_package_sack_remove_package_by_id (PkPackageSack *sack, const gchar *package_
 /**
  * pk_package_sack_remove_by_filter:
  * @sack: a valid #PkPackageSack instance
- * @filter_cb: a #PkPackageSackFilterFunc, which returns %TRUE for the #PkPackage's to retain
+ * @filter_cb: (scope call): a #PkPackageSackFilterFunc, which returns %TRUE for the #PkPackage's to retain
  * @user_data: user data to pass to @filter_cb
  *
  * Removes from the package sack any packages that return %FALSE from the filter
@@ -383,7 +383,7 @@ pk_package_sack_remove_by_filter (PkPackageSack *sack, PkPackageSackFilterFunc f
  * Finds a package in a sack from reference. As soon as one package is found
  * the search is stopped.
  *
- * Return value: the #PkPackage object, or %NULL if unfound. Free with g_object_unref()
+ * Return value: (transfer full): the #PkPackage object, or %NULL if unfound. Free with g_object_unref()
  *
  * Since: 0.5.2
  **/
@@ -669,7 +669,7 @@ out:
  * pk_package_sack_resolve_async:
  * @sack: a valid #PkPackageSack instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
@@ -831,7 +831,7 @@ out:
  * pk_package_sack_get_details_async:
  * @sack: a valid #PkPackageSack instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
@@ -986,7 +986,7 @@ out:
  * pk_package_sack_get_update_detail_async:
  * @sack: a valid #PkPackageSack instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback: the function to run on completion
  * @user_data: the data to pass to @callback
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index 294008b..d9c2549 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -514,7 +514,7 @@ pk_results_get_exit_code (PkResults *results)
  *
  * Gets the last error code from the transaction.
  *
- * Return value: A #PkError, or %NULL, free with g_object_unref()
+ * Return value: (transfer full): A #PkError, or %NULL, free with g_object_unref()
  *
  * Since: 0.5.2
  **/
@@ -538,7 +538,7 @@ pk_results_get_error_code (PkResults *results)
  *
  * Gets the packages from the transaction.
  *
- * Return value: A #GPtrArray array of #PkDetails's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkDetails's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -555,7 +555,7 @@ pk_results_get_package_array (PkResults *results)
  *
  * Gets a package sack from the transaction.
  *
- * Return value: A #PkPackageSack of data, g_object_unref() to free.
+ * Return value: (transfer full): A #PkPackageSack of data, g_object_unref() to free.
  *
  * Since: 0.5.2
  **/
@@ -572,7 +572,7 @@ pk_results_get_package_sack (PkResults *results)
  *
  * Gets the package details from the transaction.
  *
- * Return value: A #GPtrArray array of #PkPackage's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkPackage's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -589,7 +589,7 @@ pk_results_get_details_array (PkResults *results)
  *
  * Gets the update details from the transaction.
  *
- * Return value: A #GPtrArray array of #PkUpdateDetail's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkUpdateDetail's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -606,7 +606,7 @@ pk_results_get_update_detail_array (PkResults *results)
  *
  * Gets the categories from the transaction.
  *
- * Return value: A #GPtrArray array of #PkCategory's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkCategory's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -623,7 +623,7 @@ pk_results_get_category_array (PkResults *results)
  *
  * Gets the distribution upgrades from the transaction.
  *
- * Return value: A #GPtrArray array of #PkDistroUpgrade's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkDistroUpgrade's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -640,7 +640,7 @@ pk_results_get_distro_upgrade_array (PkResults *results)
  *
  * Gets the require restarts from the transaction.
  *
- * Return value: A #GPtrArray array of #PkRequireRestart's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkRequireRestart's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -697,7 +697,7 @@ pk_results_get_require_restart_worst (PkResults *results)
  *
  * Gets the transactions from the transaction.
  *
- * Return value: A #GPtrArray array of #PkTransactionPast's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkTransactionPast's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -714,7 +714,7 @@ pk_results_get_transaction_array (PkResults *results)
  *
  * Gets the files from the transaction.
  *
- * Return value: A #GPtrArray array of #PkFiles's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkFiles's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -731,7 +731,7 @@ pk_results_get_files_array (PkResults *results)
  *
  * Gets the repository signatures required from the transaction.
  *
- * Return value: A #GPtrArray array of #PkRepoSignatureRequired's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkRepoSignatureRequired's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -748,7 +748,7 @@ pk_results_get_repo_signature_required_array (PkResults *results)
  *
  * Gets the eulas required from the transaction.
  *
- * Return value: A #GPtrArray array of #PkEulaRequired's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkEulaRequired's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -765,7 +765,7 @@ pk_results_get_eula_required_array (PkResults *results)
  *
  * Gets the media changes required from the transaction.
  *
- * Return value: A #GPtrArray array of #PkMediaChangeRequired's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkMediaChangeRequired's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -782,7 +782,7 @@ pk_results_get_media_change_required_array (PkResults *results)
  *
  * Gets the repository details from the transaction.
  *
- * Return value: A #GPtrArray array of #PkRepoDetail's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkRepoDetail's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
@@ -799,7 +799,7 @@ pk_results_get_repo_detail_array (PkResults *results)
  *
  * Gets the messages from the transaction.
  *
- * Return value: A #GPtrArray array of #PkMessage's, free with g_ptr_array_unref().
+ * Return value: (transfer full): A #GPtrArray array of #PkMessage's, free with g_ptr_array_unref().
  *
  * Since: 0.5.2
  **/
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
index 72e27e6..e09c2fa 100644
--- a/lib/packagekit-glib2/pk-service-pack.c
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -838,7 +838,7 @@ out:
  * @package_ids_exclude: An array of packages to exclude, or %NULL
  * @cancellable: a #GCancellable or %NULL
  * @callback: the function to run on completion
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @user_data: the data to pass to @callback
  *
@@ -945,7 +945,7 @@ out:
  * @package_ids_exclude: An array of packages to exclude, or %NULL
  * @cancellable: a #GCancellable or %NULL
  * @callback: the function to run on completion
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @user_data: the data to pass to @callback
  *
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index dccaec8..099bef4 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -918,9 +918,9 @@ out:
  * @task: a valid #PkTask instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Merges in details about packages using resolve.
@@ -973,7 +973,7 @@ pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable
  * @task: a valid #PkTask instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -1029,7 +1029,7 @@ pk_task_update_packages_async (PkTask *task, gchar **package_ids, GCancellable *
  * @allow_deps: if other dependant packages are allowed to be removed from the computer
  * @autoremove: if other packages installed at the same time should be tried to remove
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -1086,7 +1086,7 @@ pk_task_remove_packages_async (PkTask *task, gchar **package_ids, gboolean allow
  * @task: a valid #PkTask instance
  * @files: a file such as "/home/hughsie/Desktop/hal-devel-0.10.0.rpm"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -1140,7 +1140,7 @@ pk_task_install_files_async (PkTask *task, gchar **files, GCancellable *cancella
  * pk_task_update_system_async:
  * @task: a valid #PkTask instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
  * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback_ready
@@ -1195,9 +1195,9 @@ pk_task_update_system_async (PkTask *task, GCancellable *cancellable,
  * @filters: a bitfield of filters that can be used to limit the results
  * @packages: package names to find
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Resolves a package name to a package-id.
@@ -1248,9 +1248,9 @@ pk_task_resolve_async (PkTask *task, PkBitfield filters, gchar **packages, GCanc
  * @filters: a bitfield of filters that can be used to limit the results
  * @values: search values
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Searches for a package name.
@@ -1301,9 +1301,9 @@ pk_task_search_names_async (PkTask *task, PkBitfield filters, gchar **values, GC
  * @filters: a bitfield of filters that can be used to limit the results
  * @values: search values
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Searches for some package details.
@@ -1354,9 +1354,9 @@ pk_task_search_details_async (PkTask *task, PkBitfield filters, gchar **values,
  * @filters: a bitfield of filters that can be used to limit the results
  * @values: search values
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Searches the group lists.
@@ -1407,9 +1407,9 @@ pk_task_search_groups_async (PkTask *task, PkBitfield filters, gchar **values, G
  * @filters: a bitfield of filters that can be used to limit the results
  * @values: search values
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Searches for specific files.
@@ -1459,9 +1459,9 @@ pk_task_search_files_async (PkTask *task, PkBitfield filters, gchar **values, GC
  * @task: a valid #PkTask instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Gets details about packages.
@@ -1510,9 +1510,9 @@ pk_task_get_details_async (PkTask *task, gchar **package_ids, GCancellable *canc
  * @task: a valid #PkTask instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Gets details about updates.
@@ -1562,9 +1562,9 @@ pk_task_get_update_detail_async (PkTask *task, gchar **package_ids, GCancellable
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @directory: the destination directory
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Downloads packages
@@ -1614,9 +1614,9 @@ pk_task_download_packages_async (PkTask *task, gchar **package_ids, const gchar
  * @task: a valid #PkTask instance
  * @filters: a bitfield of filters that can be used to limit the results
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Gets the update lists.
@@ -1667,9 +1667,9 @@ pk_task_get_updates_async (PkTask *task, PkBitfield filters, GCancellable *cance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @recursive: if we should recurse to packages that depend on other packages
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Get the list of dependant packages.
@@ -1720,9 +1720,9 @@ pk_task_get_depends_async (PkTask *task, PkBitfield filters, gchar **package_ids
  * @task: a valid #PkTask instance
  * @filters: a bitfield of filters that can be used to limit the results
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Gets the list of packages.
@@ -1773,9 +1773,9 @@ pk_task_get_packages_async (PkTask *task, PkBitfield filters, GCancellable *canc
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @recursive: if we should return packages that depend on the ones we do
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Get the packages this package requires.
@@ -1828,9 +1828,9 @@ pk_task_get_requires_async (PkTask *task, PkBitfield filters, gchar **package_id
  * @provides: a #PkProvidesEnum type
  * @values: values to search for
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Find the package that provides some resource.
@@ -1881,9 +1881,9 @@ pk_task_what_provides_async (PkTask *task, PkBitfield filters, PkProvidesEnum pr
  * @task: a valid #PkTask instance
  * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Get the files in a package.
@@ -1931,9 +1931,9 @@ pk_task_get_files_async (PkTask *task, gchar **package_ids, GCancellable *cancel
  * pk_task_get_categories_async:
  * @task: a valid #PkTask instance
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Get the categories available.
@@ -1981,9 +1981,9 @@ pk_task_get_categories_async (PkTask *task, GCancellable *cancellable,
  * @task: a valid #PkTask instance
  * @force: if the metadata should be deleted and re-downloaded even if it is correct
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Refresh the package cache.
@@ -2032,9 +2032,9 @@ pk_task_refresh_cache_async (PkTask *task, gboolean force, GCancellable *cancell
  * @task: a valid #PkTask instance
  * @transaction_id: The transaction ID of the old transaction
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Rollback to a previous package state.
@@ -2083,9 +2083,9 @@ pk_task_rollback_async (PkTask *task, const gchar *transaction_id, GCancellable
  * @task: a valid #PkTask instance
  * @filters: a bitfield of filters that can be used to limit the results
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Get the list of available repositories.
@@ -2135,9 +2135,9 @@ pk_task_get_repo_list_async (PkTask *task, PkBitfield filters, GCancellable *can
  * @repo_id: The software source ID
  * @enabled: %TRUE or %FALSE
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: the function to run when the progress changes
+ * @progress_callback: (scope call): the function to run when the progress changes
  * @progress_user_data: data to pass to @progress_callback
- * @callback: the function to run on completion
+ * @callback_ready: the function to run on completion
  * @user_data: the data to pass to @callback
  *
  * Enable or disable a specific repo.
@@ -2190,7 +2190,7 @@ pk_task_repo_enable_async (PkTask *task, const gchar *repo_id, gboolean enabled,
  *
  * Gets the result from the asynchronous function.
  *
- * Return value: %TRUE for success
+ * Return value: (transfer full): The #PkResults of the transaction.
  *
  * Since: 0.5.2
  **/
diff --git a/lib/packagekit-glib2/pk-task.h b/lib/packagekit-glib2/pk-task.h
index 14371e3..83a976e 100644
--- a/lib/packagekit-glib2/pk-task.h
+++ b/lib/packagekit-glib2/pk-task.h
@@ -92,7 +92,7 @@ void		 pk_task_install_packages_async		(PkTask			*task,
 							 GCancellable		*cancellable,
 							 PkProgressCallback	 progress_callback,
 							 gpointer		 progress_user_data,
-							 GAsyncReadyCallback	 callback,
+							 GAsyncReadyCallback	 callback_ready,
 							 gpointer		 user_data);
 void		 pk_task_update_packages_async		(PkTask			*task,
 							 gchar			**package_ids,
diff --git a/lib/packagekit-glib2/pk-transaction-list.c b/lib/packagekit-glib2/pk-transaction-list.c
index 0f8eec7..bb5ee3d 100644
--- a/lib/packagekit-glib2/pk-transaction-list.c
+++ b/lib/packagekit-glib2/pk-transaction-list.c
@@ -189,7 +189,7 @@ pk_transaction_list_notify_connected_cb (PkControl *control, GParamSpec *pspec,
  *
  * Gets the string lists of transaction IDs recognised as pending, running or finished by the daemon.
  *
- * Return value: the array of strings, free with g_strfreev()
+ * Return value: (transfer full): the array of strings, free with g_strfreev()
  *
  * Since: 0.5.3
  **/
commit 4c449baa8e890093362f3e0a7249392da3ace0b3
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Oct 5 04:15:03 2010 -0300

    aptcc: Add a nicer string pointing to launchpad when the changelog is not available

diff --git a/backends/aptcc/apt-utils.cpp b/backends/aptcc/apt-utils.cpp
index 52142a2..9065bc8 100644
--- a/backends/aptcc/apt-utils.cpp
+++ b/backends/aptcc/apt-utils.cpp
@@ -244,7 +244,12 @@ get_enum_group (string group)
 	}
 }
 
-string getChangelogFile(const string &name, const string &uri, pkgAcquire *fetcher)
+string getChangelogFile(const string &name,
+                        const string &origin,
+                        const string &verstr,
+                        const string &srcPkg,
+                        const string &uri,
+                        pkgAcquire *fetcher)
 {
    string descr("Changelog for ");
    descr += name;
@@ -253,9 +258,6 @@ string getChangelogFile(const string &name, const string &uri, pkgAcquire *fetch
    string filename = "/tmp/aptcc_changelog";
 
    new pkgAcqFileSane(fetcher, uri, descr, name, filename);
-   //cerr << "**DEBUG** origin: " << origin() << endl;
-   //cerr << "**DEBUG** uri: " << uri << endl;
-   //cerr << "**DEBUG** filename: " << filename << endl;
 
    ofstream out(filename.c_str());
    if(fetcher->Run() == pkgAcquire::Failed) {
@@ -263,14 +265,23 @@ string getChangelogFile(const string &name, const string &uri, pkgAcquire *fetch
       out << "Please check your Internet connection." << endl;
       // FIXME: Need to dequeue the item
    } else {
-      struct stat filestatus;
-      stat(filename.c_str(), &filestatus );
-      if (filestatus.st_size == 0) {
-         out << "This change is not coming from a source that supports changelogs.\n" << endl;
-         out << "Failed to fetch the changelog for " << name << endl;
-         out << "URI was: " << uri << endl;
-      }
-   };
+        struct stat filestatus;
+        stat(filename.c_str(), &filestatus );
+
+        if (filestatus.st_size == 0) {
+            // FIXME: Use supportedOrigins
+            if (origin.compare("Ubuntu") == 0) {
+                out << "The list of changes is not available yet.\n" << endl;
+                out << "Please use http://launchpad.net/ubuntu/+source/"<< srcPkg <<
+                        "/" << verstr << "/+changelog" << endl;
+                out << "until the changes become available or try again later." << endl;
+            } else {
+                out << "This change is not coming from a source that supports changelogs.\n" << endl;
+                out << "Failed to fetch the changelog for " << name << endl;
+                out << "URI was: " << uri << endl;
+            }
+        }
+   }
    out.close();
 
    return filename;
diff --git a/backends/aptcc/apt-utils.h b/backends/aptcc/apt-utils.h
index 461e7ca..a38dcc9 100644
--- a/backends/aptcc/apt-utils.h
+++ b/backends/aptcc/apt-utils.h
@@ -106,7 +106,12 @@ PkGroupEnum get_enum_group(string group);
 /**
   * Return the changelog filename fetched
   */
-string getChangelogFile(const string &name, const string &uri, pkgAcquire *fetcher);
+string getChangelogFile(const string &name,
+                        const string &origin,
+                        const string &verstr,
+                        const string &srcPkg,
+                        const string &uri,
+                        pkgAcquire *fetcher);
 
 /**
   * Returns a list of links pairs url;description for CVEs
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index c0c58e2..e674be8 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -607,6 +607,7 @@ void aptcc::emit_update_detail(const pkgCache::PkgIterator &pkg)
     // Build the changelogURI
     char uri[512];
     string srcpkg;
+    string verstr;
 
     if (rec.SourcePkg().empty()) {
         srcpkg = pkg.Name();
@@ -623,18 +624,17 @@ void aptcc::emit_update_detail(const pkgCache::PkgIterator &pkg)
             src_section = "main";
         }
 
-        prefix+=srcpkg[0];
+        prefix += srcpkg[0];
         if(srcpkg.size() > 3 && srcpkg[0] == 'l' && srcpkg[1] == 'i' && srcpkg[2] == 'b') {
             prefix = string("lib") + srcpkg[3];
         }
 
-        string verstr;
         if(candver.VerStr() != NULL) {
             verstr = candver.VerStr();
         }
 
         if(verstr.find(':') != verstr.npos) {
-            verstr=string(verstr, verstr.find(':') + 1);
+            verstr = string(verstr, verstr.find(':') + 1);
         }
 
         if (origin.compare("Debian") == 0) {
@@ -685,7 +685,8 @@ void aptcc::emit_update_detail(const pkgCache::PkgIterator &pkg)
     fetcher.Setup(&Stat);
 
     // fetch the changelog
-    string filename = getChangelogFile(pkg.Name(), uri, &fetcher);
+    pk_backend_set_status(m_backend, PK_STATUS_ENUM_DOWNLOAD_CHANGELOG);
+    string filename = getChangelogFile(pkg.Name(), origin, verstr, srcpkg, uri, &fetcher);
 
     string changelog;
     string update_text;
commit 7a73a6fa2dace57450e30a996a2dc15d98d35b58
Merge: 2d03c1e... dd9a708...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Oct 5 03:13:08 2010 -0300

    Merge branch 'master' of gitorious.org:packagekit/packagekit

commit 2d03c1ed2f710955de4814ddaf8b133da06f026b
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Tue Oct 5 03:11:39 2010 -0300

    aptcc: Feature: added a fetcher/parser for updates changelogs

diff --git a/backends/aptcc/Makefile.am b/backends/aptcc/Makefile.am
index 235b430..4e1e22d 100644
--- a/backends/aptcc/Makefile.am
+++ b/backends/aptcc/Makefile.am
@@ -1,14 +1,14 @@
 plugindir = $(PK_PLUGIN_DIR)
 plugin_LTLIBRARIES = libpk_backend_aptcc.la
-libpk_backend_aptcc_la_SOURCES = pk-backend-aptcc.cpp \
-                                 apt.cpp \
-                                 apt-utils.cpp \
-                                 matcher.cpp \
+libpk_backend_aptcc_la_SOURCES = pkg_acqfile.cpp \
 				 aptcc_show_broken.cpp \
-				 acqprogress.cpp \
 				 aptcc_show_error.cpp \
-				 pkg_acqfile.cpp \
-				 rsources.cpp
+				 apt-utils.cpp \
+				 acqprogress.cpp \
+				 matcher.cpp \
+				 rsources.cpp \
+				 apt.cpp \
+				 pk-backend-aptcc.cpp
 libpk_backend_aptcc_la_LIBADD = -lcrypt $(PK_PLUGIN_LIBS)
 libpk_backend_aptcc_la_LDFLAGS = -module -avoid-version $(APTCC_LIBS) $(GST_LIBS)
 libpk_backend_aptcc_la_CFLAGS = $(PK_PLUGIN_CFLAGS)
diff --git a/backends/aptcc/apt-utils.cpp b/backends/aptcc/apt-utils.cpp
index f2ed478..52142a2 100644
--- a/backends/aptcc/apt-utils.cpp
+++ b/backends/aptcc/apt-utils.cpp
@@ -20,7 +20,11 @@
  */
 
 #include "apt-utils.h"
+
+#include "pkg_acqfile.h"
 #include <iostream>
+#include <fstream>
+#include <sys/stat.h>
 
 static int descrBufferSize = 4096;
 static char *descrBuffer = new char[descrBufferSize];
@@ -240,6 +244,132 @@ get_enum_group (string group)
 	}
 }
 
+string getChangelogFile(const string &name, const string &uri, pkgAcquire *fetcher)
+{
+   string descr("Changelog for ");
+   descr += name;
+
+   // no need to translate this, the changelog is in english anyway
+   string filename = "/tmp/aptcc_changelog";
+
+   new pkgAcqFileSane(fetcher, uri, descr, name, filename);
+   //cerr << "**DEBUG** origin: " << origin() << endl;
+   //cerr << "**DEBUG** uri: " << uri << endl;
+   //cerr << "**DEBUG** filename: " << filename << endl;
+
+   ofstream out(filename.c_str());
+   if(fetcher->Run() == pkgAcquire::Failed) {
+      out << "Failed to download the list of changes. " << endl;
+      out << "Please check your Internet connection." << endl;
+      // FIXME: Need to dequeue the item
+   } else {
+      struct stat filestatus;
+      stat(filename.c_str(), &filestatus );
+      if (filestatus.st_size == 0) {
+         out << "This change is not coming from a source that supports changelogs.\n" << endl;
+         out << "Failed to fetch the changelog for " << name << endl;
+         out << "URI was: " << uri << endl;
+      }
+   };
+   out.close();
+
+   return filename;
+}
+
+string getCVEUrls(const string &changelog)
+{
+    string ret;
+    // Regular expression to find cve references
+    GRegex *regex;
+    GMatchInfo *match_info;
+    regex = g_regex_new("CVE-\\d{4}-\\d{4}",
+                        G_REGEX_CASELESS,
+                        G_REGEX_MATCH_NEWLINE_ANY,
+                        0);
+    g_regex_match (regex, changelog.c_str(), G_REGEX_MATCH_NEWLINE_ANY, &match_info);
+    while (g_match_info_matches(match_info)) {
+        gchar *cve = g_match_info_fetch (match_info, 0);
+        gchar *cveLink;
+        if (!ret.empty()) {
+            ret.append(";");
+        }
+        cveLink = g_strdup_printf("http://web.nvd.nist.gov/view/vuln/detail?vulnId=%s;%s", cve, cve);
+        ret.append(cveLink);
+        g_free(cveLink);
+        g_free(cve);
+        g_match_info_next(match_info, NULL);
+    }
+    g_match_info_free(match_info);
+    g_regex_unref(regex);
+
+    return ret;
+}
+
+string getBugzillaUrls(const string &changelog)
+{
+    string ret;
+    // Matches Ubuntu bugs
+    GRegex *regex;
+    GMatchInfo *match_info;
+    regex = g_regex_new("LP:\\s+(?:[,\\s*]?#(?'bug'\\d+))*",
+                        G_REGEX_CASELESS,
+                        G_REGEX_MATCH_NEWLINE_ANY,
+                        0);
+    g_regex_match (regex, changelog.c_str(), G_REGEX_MATCH_NEWLINE_ANY, &match_info);
+    while (g_match_info_matches(match_info)) {
+        gchar *bug = g_match_info_fetch_named(match_info, "bug");
+        gchar *bugLink;
+        if (!ret.empty()) {
+            ret.append(";");
+        }
+        bugLink = g_strdup_printf("https://bugs.launchpad.net/bugs/%s;Launchpad bug #%s", bug, bug);
+        ret.append(bugLink);
+        g_free(bugLink);
+        g_free(bug);
+        g_match_info_next(match_info, NULL);
+    }
+    g_match_info_free(match_info);
+    g_regex_unref(regex);
+
+    // Debian bugs
+    // Regular expressions to detect bug numbers in changelogs according to the
+    // Debian Policy Chapter 4.4. For details see the footnote 15:
+    // http://www.debian.org/doc/debian-policy/footnotes.html#f15
+    // /closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i
+    regex = g_regex_new("closes:\\s*(?:bug)?\\#?\\s?(?'bug1'\\d+)(?:,\\s*(?:bug)?\\#?\\s?(?'bug2'\\d+))*",
+                        G_REGEX_CASELESS,
+                        G_REGEX_MATCH_NEWLINE_ANY,
+                        0);
+    g_regex_match (regex, changelog.c_str(), G_REGEX_MATCH_NEWLINE_ANY, &match_info);
+    while (g_match_info_matches(match_info)) {
+        gchar *bug1 = g_match_info_fetch_named(match_info, "bug1");
+        gchar *bugLink1;
+        if (!ret.empty()) {
+            ret.append(";");
+        }
+        bugLink1 = g_strdup_printf("http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s;Debian bug #%s", bug1, bug1);
+        ret.append(bugLink1);
+
+        gchar *bug2 = g_match_info_fetch_named(match_info, "bug2");
+        if (!ret.empty() && bug2 != NULL) {
+            gchar *bugLink2;
+            ret.append(";");
+            bugLink2 = g_strdup_printf("http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s;Debian bug #%s", bug1, bug1);
+            ret.append(bugLink2);
+            g_free(bugLink2);
+            g_free(bug2);
+        }
+
+        g_free(bugLink1);
+        g_free(bug1);
+        g_match_info_next(match_info, NULL);
+    }
+    g_match_info_free(match_info);
+    g_regex_unref(regex);
+
+    return ret;
+}
+
 bool contains(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > packages,
 	    const pkgCache::PkgIterator pkg)
 {
@@ -265,3 +395,61 @@ bool starts_with (const string &str, const char *start)
 	return str.size() >= startSize && (strncmp(str.data(), start, startSize) == 0);
 }
 
+GDateTime* dateFromString(const gchar *tz,
+                          const gchar *year,
+                          const gchar *month,
+                          const gchar *day,
+                          const gchar *hour,
+                          const gchar *minute,
+                          const gchar *seconds)
+{
+    GDateTime *ret;
+    int monthI;
+    if (strcmp(month, "Jan") == 0) {
+        monthI = 1;
+    } else if (strcmp(month, "Feb") == 0) {
+        monthI = 2;
+    } else if (strcmp(month, "Mar") == 0) {
+        monthI = 3;
+    } else if (strcmp(month, "Apr") == 0) {
+        monthI = 4;
+    } else if (strcmp(month, "May") == 0) {
+        monthI = 5;
+    } else if (strcmp(month, "Jun") == 0) {
+        monthI = 6;
+    } else if (strcmp(month, "Jul") == 0) {
+        monthI = 7;
+    } else if (strcmp(month, "Aug") == 0) {
+        monthI = 8;
+    } else if (strcmp(month, "Sep") == 0) {
+        monthI = 9;
+    } else if (strcmp(month, "Oct") == 0) {
+        monthI = 10;
+    } else if (strcmp(month, "Nov") == 0) {
+        monthI = 11;
+    } else if (strcmp(month, "Dez") == 0) {
+        monthI = 12;
+    }
+
+    ret = g_date_time_new(g_time_zone_new(tz),
+                          atoi(year),
+                          monthI,
+                          atoi(day),
+                          atoi(hour),
+                          atoi(minute),
+                          atoi(seconds));
+    return ret;
+}
+
+const char *utf8(const char *str)
+{
+   static char *_str = NULL;
+   if (str == NULL)
+      return NULL;
+   if (g_utf8_validate(str, -1, NULL) == true)
+      return str;
+   g_free(_str);
+   _str = NULL;
+   _str = g_locale_to_utf8(str, -1, NULL, NULL, NULL);
+   return _str;
+}
diff --git a/backends/aptcc/apt-utils.h b/backends/aptcc/apt-utils.h
index 92f6e1a..461e7ca 100644
--- a/backends/aptcc/apt-utils.h
+++ b/backends/aptcc/apt-utils.h
@@ -104,6 +104,21 @@ string get_long_description_parsed(const pkgCache::VerIterator &ver,
 PkGroupEnum get_enum_group(string group);
 
 /**
+  * Return the changelog filename fetched
+  */
+string getChangelogFile(const string &name, const string &uri, pkgAcquire *fetcher);
+
+/**
+  * Returns a list of links pairs url;description for CVEs
+  */
+string getCVEUrls(const string &changelog);
+
+/**
+  * Returns a list of links pairs url;description for Debian and Ubuntu bugs
+  */
+string getBugzillaUrls(const string &changelog);
+
+/**
   * Return if the given vector contain a package
   */
 bool contains(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > packages,
@@ -119,4 +134,16 @@ bool ends_with(const string &str, const char *end);
   */
 bool starts_with(const string &str, const char *end);
 
+GDateTime* dateFromString(const gchar *tz,
+                          const gchar *year,
+                          const gchar *month,
+                          const gchar *day,
+                          const gchar *hour,
+                          const gchar *minute,
+                          const gchar *seconds);
+/**
+  * Return an utf8 string
+  */
+const char *utf8(const char *str);
+
 #endif
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index c4089de..c0c58e2 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -31,8 +31,10 @@
 #include <apt-pkg/tagfile.h>
 #include <apt-pkg/algorithms.h>
 #include <apt-pkg/init.h>
-
 #include <apt-pkg/sptr.h>
+#include <apt-pkg/pkgsystem.h>
+#include <apt-pkg/version.h>
+
 #include <sys/statvfs.h>
 #include <sys/statfs.h>
 #include <sys/wait.h>
@@ -584,49 +586,260 @@ void aptcc::emit_details(const pkgCache::PkgIterator &pkg)
 // used to emit packages it collects all the needed info
 void aptcc::emit_update_detail(const pkgCache::PkgIterator &pkg)
 {
-	pkgCache::VerIterator candver = find_candidate_ver(pkg);
-
-	pkgCache::VerFileIterator vf = candver.FileList();
-	pkgRecords::Parser &rec = packageRecords->Lookup(vf);
-	string archive(vf.File().Archive());
-	gchar *package_id;
-	package_id = pk_package_id_build(pkg.Name(),
-					candver.VerStr(),
-					candver.Arch(),
-					archive.c_str());
-
-	pkgCache::VerIterator currver = find_ver(pkg);
-	pkgCache::VerFileIterator currvf = currver.FileList();
-	gchar *current_package_id;
-	current_package_id = pk_package_id_build(pkg.Name(),
-						currver.VerStr(),
-						currver.Arch(),
-						currvf.File().Archive());
-
-	PkUpdateStateEnum updateState = PK_UPDATE_STATE_ENUM_UNKNOWN;
-	if (archive.compare("stable") == 0) {
-		updateState = PK_UPDATE_STATE_ENUM_STABLE;
-	} else if (archive.compare("testing") == 0) {
-		updateState = PK_UPDATE_STATE_ENUM_TESTING;
-	} else if (archive.compare("unstable")  == 0 ||
-		archive.compare("experimental") == 0)
-	{
-		updateState = PK_UPDATE_STATE_ENUM_UNSTABLE;
-	}
-	pk_backend_update_detail(m_backend,
-				 package_id,
-				 current_package_id,//const gchar *updates
-				 "",//const gchar *obsoletes
-				 "",//const gchar *vendor_url
-				 "",//const gchar *bugzilla_url
-				 "",//const gchar *cve_url
-				 PK_RESTART_ENUM_NONE,//PkRestartEnum restart
-				 "",//const gchar *update_text
-				 "",//const gchar *changelog
-				 updateState,//PkUpdateStateEnum state
-				 "",//const gchar *issued_text
-				 ""//const gchar *updated_text
-				 );
+    // Get the version of the current package
+    pkgCache::VerIterator     currver = find_ver(pkg);
+    pkgCache::VerFileIterator currvf  = currver.FileList();
+    // Build a package_id from the current version
+    gchar *current_package_id;
+    current_package_id = pk_package_id_build(pkg.Name(),
+                                             currver.VerStr(),
+                                             currver.Arch(),
+                                             currvf.File().Archive());
+
+    // Get the update version
+    pkgCache::VerIterator candver = find_candidate_ver(pkg);
+
+    pkgCache::VerFileIterator vf = candver.FileList();
+    pkgCache::PkgFileIterator pkgFile = vf.File();
+    string origin = pkgFile.Origin();
+    pkgRecords::Parser &rec = packageRecords->Lookup(candver.FileList());
+
+    // Build the changelogURI
+    char uri[512];
+    string srcpkg;
+
+    if (rec.SourcePkg().empty()) {
+        srcpkg = pkg.Name();
+    } else {
+        srcpkg = rec.SourcePkg();
+    }
+    if (origin.compare("Debian") == 0 || origin.compare("Ubuntu") == 0) {
+        string prefix;
+
+        string src_section = candver.Section();
+        if(src_section.find('/') != src_section.npos) {
+            src_section = string(src_section, 0, src_section.find('/'));
+        } else {
+            src_section = "main";
+        }
+
+        prefix+=srcpkg[0];
+        if(srcpkg.size() > 3 && srcpkg[0] == 'l' && srcpkg[1] == 'i' && srcpkg[2] == 'b') {
+            prefix = string("lib") + srcpkg[3];
+        }
+
+        string verstr;
+        if(candver.VerStr() != NULL) {
+            verstr = candver.VerStr();
+        }
+
+        if(verstr.find(':') != verstr.npos) {
+            verstr=string(verstr, verstr.find(':') + 1);
+        }
+
+        if (origin.compare("Debian") == 0) {
+            snprintf(uri,
+                        512,
+                        "http://packages.debian.org/changelogs/pool/%s/%s/%s/%s_%s/changelog",                                    src_section.c_str(),
+                        prefix.c_str(),
+                        srcpkg.c_str(),
+                        srcpkg.c_str(),
+                        verstr.c_str());
+        } else {
+            snprintf(uri,
+                        512,
+                        "http://changelogs.ubuntu.com/changelogs/pool/%s/%s/%s/%s_%s/changelog",                                    src_section.c_str(),
+                        prefix.c_str(),
+                        srcpkg.c_str(),
+                        srcpkg.c_str(),
+                        verstr.c_str());
+        }
+    } else {
+        string pkgfilename;
+        const char *start, *stop;
+        pkgTagSection sec;
+        unsigned long len;
+
+        rec.GetRec(start, stop);
+        len = stop - start;
+        // add +1 to ensure we have the double lineline in the buffer
+        if (start && sec.Scan(start, len + 1)) {
+            pkgfilename = sec.FindS("Filename");
+        }
+
+        string cadidateOriginSiteUrl;
+        if(!vf.end() && vf.File() && vf.File().Site()) {
+            cadidateOriginSiteUrl = vf.File().Site();
+        }
+
+        pkgfilename = pkgfilename.substr(0, pkgfilename.find_last_of('.')) + ".changelog";
+        snprintf(uri,512,"http://%s/%s",
+                cadidateOriginSiteUrl.c_str(),
+                pkgfilename.c_str());
+    }
+    // Create the download object
+    AcqPackageKitStatus Stat(this, m_backend, _cancel);
+
+    // get a fetcher
+    pkgAcquire fetcher;
+    fetcher.Setup(&Stat);
+
+    // fetch the changelog
+    string filename = getChangelogFile(pkg.Name(), uri, &fetcher);
+
+    string changelog;
+    string update_text;
+    ifstream in(filename.c_str());
+    string line;
+    GRegex *regexVer;
+    regexVer = g_regex_new("(?'source'.+) \\((?'version'.*)\\) "
+                           "(?'dist'.+); urgency=(?'urgency'.+)",
+                           G_REGEX_CASELESS,
+                           G_REGEX_MATCH_ANCHORED,
+                           0);
+    GRegex *regexDate;
+    regexDate = g_regex_new("^ -- (?'maintainer'.+) (?'mail'<.+>)  (?'dayname'\\w+,) "
+"(?'d'\\d+) (?'m'\\w+) (?'y'\\d+) (?'H'\\d+):(?'M'\\d+):(?'s'\\d+) (?'offset'[-\\+]\\d+)$",
+                            G_REGEX_CASELESS,
+                            G_REGEX_MATCH_ANCHORED,
+                            0);
+    string updated;
+    string issued;
+    while (getline(in, line)) {
+        // no need to free str later, it is allocated in a static buffer
+        const char *str = utf8(line.c_str());
+        if (strcmp(str, "") == 0) {
+            changelog.append("\n");
+            continue;
+        } else {
+            changelog.append(str);
+            changelog.append("\n");
+        }
+
+        if (starts_with(str, srcpkg.c_str())) {
+            // Check to see if the the text isn't about the current package,
+            // otherwise add a == version ==
+            GMatchInfo *match_info;
+            if (g_regex_match(regexVer, str, G_REGEX_MATCH_ANCHORED, &match_info)) {
+                gchar *version;
+                version = g_match_info_fetch_named(match_info, "version");
+
+                // Compare if the current version is shown in the changelog, to not
+                // display old changelog information
+                if (_system != 0  &&
+                    _system->VS->DoCmpVersion(version, version + strlen(version),
+                                              currver.VerStr(), currver.VerStr() + strlen(currver.VerStr())) <= 0) {
+                    g_free (version);
+                    break;
+                } else {
+                    if (!update_text.empty()) {
+                        update_text.append("\n\n");
+                    }
+                    update_text.append(" == ");
+                    update_text.append(version);
+                    update_text.append(" ==");
+                    g_free (version);
+                }
+            }
+            g_match_info_free (match_info);
+        } else if (starts_with(str, "  ")) {
+            // update descritption
+            update_text.append("\n");
+            update_text.append(str);
+        } else if (starts_with(str, " --")) {
+            // Parse the text to know when the update was issued,
+            // and when it got updated
+            GMatchInfo *match_info;
+            if (g_regex_match(regexDate, str, G_REGEX_MATCH_ANCHORED, &match_info)) {
+                gchar *tz;
+                gchar *year;
+                gchar *month;
+                gchar *day;
+                gchar *hour;
+                gchar *minute;
+                gchar *seconds;
+                tz = g_match_info_fetch_named(match_info, "offset");
+                year = g_match_info_fetch_named(match_info, "y");
+                month = g_match_info_fetch_named(match_info, "m");
+                day = g_match_info_fetch_named(match_info, "d");
+                hour = g_match_info_fetch_named(match_info, "H");
+                minute = g_match_info_fetch_named(match_info, "M");
+                seconds = g_match_info_fetch_named(match_info, "s");
+                GDateTime *dateTime;
+                dateTime = dateFromString(tz,
+                                          year,
+                                          month,
+                                          day,
+                                          hour,
+                                          minute,
+                                          seconds);
+                g_free(tz);
+                g_free(year);
+                g_free(month);
+                g_free(day);
+                g_free(hour);
+                g_free(minute);
+                g_free(seconds);
+
+                issued = g_date_time_format(dateTime, "%FT%R:%S");
+                if (updated.empty()) {
+                    updated = g_date_time_format(dateTime, "%FT%R:%S");
+                }
+            }
+            g_match_info_free(match_info);
+        }
+    }
+    // Clean structures
+    g_regex_unref(regexVer);
+    g_regex_unref(regexDate);
+    unlink(filename.c_str());
+
+    // Check if the update was updates since it was issued
+    if (issued.compare(updated) == 0) {
+        updated = "";
+    }
+
+    // Build a package_id from the update version
+    string archive(vf.File().Archive());
+    gchar *package_id;
+    package_id = pk_package_id_build(pkg.Name(),
+                    candver.VerStr(),
+                    candver.Arch(),
+                    archive.c_str());
+
+    PkUpdateStateEnum updateState = PK_UPDATE_STATE_ENUM_UNKNOWN;
+    if (archive.compare("stable") == 0) {
+        updateState = PK_UPDATE_STATE_ENUM_STABLE;
+    } else if (archive.compare("testing") == 0) {
+        updateState = PK_UPDATE_STATE_ENUM_TESTING;
+    } else if (archive.compare("unstable")  == 0 ||
+        archive.compare("experimental") == 0)
+    {
+        updateState = PK_UPDATE_STATE_ENUM_UNSTABLE;
+    }
+
+    PkRestartEnum restart = PK_RESTART_ENUM_NONE;
+    if (starts_with(pkg.Name(), "linux-image-") ||
+        starts_with(pkg.Name(), "nvidia-") ||
+        strcmp(pkg.Name(), "libc6") == 0 ||
+        strcmp(pkg.Name(), "dbus") == 0) {
+        restart = PK_RESTART_ENUM_SYSTEM;
+    }
+
+    pk_backend_update_detail(m_backend,
+                             package_id,
+                             current_package_id,//const gchar *updates
+                             "",//const gchar *obsoletes
+                             "",//const gchar *vendor_url
+                             getBugzillaUrls(changelog).c_str(),//const gchar *bugzilla_url
+                             getCVEUrls(changelog).c_str(),//const gchar *cve_url
+                             restart,//PkRestartEnum restart
+                             update_text.c_str(),//const gchar *update_text
+                             changelog.c_str(),//const gchar *changelog
+                             updateState,//PkUpdateStateEnum state
+                             issued.c_str(), //const gchar *issued_text
+                             updated.c_str() //const gchar *updated_text
+                             );
 }
 
 void aptcc::get_depends(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
@@ -1286,34 +1499,34 @@ void aptcc::updateInterface(int fd, int writeFd)
 				// Let's start parsing the status:
 				if (starts_with(str, "Preparing to configure")) {
 					// Preparing to Install/configure
-					cout << "Found Preparing to configure! " << line << endl;
+// 					cout << "Found Preparing to configure! " << line << endl;
 					// The next item might be Configuring so better it be 100
 					m_lastSubProgress = 100;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_PREPARING);
 					pk_backend_set_sub_percentage(m_backend, 75);
 				} else if (starts_with(str, "Preparing for removal")) {
 					// Preparing to Install/configure
-					cout << "Found Preparing for removal! " << line << endl;
+// 					cout << "Found Preparing for removal! " << line << endl;
 					m_lastSubProgress = 50;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_REMOVING);
 					pk_backend_set_sub_percentage(m_backend, m_lastSubProgress);
 				} else if (starts_with(str, "Preparing")) {
 					// Preparing to Install/configure
-					cout << "Found Preparing! " << line << endl;
+// 					cout << "Found Preparing! " << line << endl;
 					// if last package is different then finish it
 					if (!m_lastPackage.empty() && m_lastPackage.compare(pkg) != 0) {
-						cout << "FINISH the last package: " << m_lastPackage << endl;
+// 						cout << "FINISH the last package: " << m_lastPackage << endl;
 						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
 					}
 					emitTransactionPackage(pkg, PK_INFO_ENUM_PREPARING);
 					pk_backend_set_sub_percentage(m_backend, 25);
 				} else if (starts_with(str, "Unpacking")) {
-					cout << "Found Unpacking! " << line << endl;
+// 					cout << "Found Unpacking! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_DECOMPRESSING);
 					pk_backend_set_sub_percentage(m_backend, 50);
 				} else if (starts_with(str, "Configuring")) {
 					// Installing Package
-					cout << "Found Configuring! " << line << endl;
+// 					cout << "Found Configuring! " << line << endl;
 					if (m_lastSubProgress >= 100 && !m_lastPackage.empty()) {
 						cout << "FINISH the last package: " << m_lastPackage << endl;
 						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
@@ -1323,24 +1536,24 @@ void aptcc::updateInterface(int fd, int writeFd)
 					pk_backend_set_sub_percentage(m_backend, m_lastSubProgress);
 					m_lastSubProgress += 25;
 				} else if (starts_with(str, "Running dpkg")) {
-					cout << "Found Running dpkg! " << line << endl;
+// 					cout << "Found Running dpkg! " << line << endl;
 				} else if (starts_with(str, "Running")) {
-					cout << "Found Running! " << line << endl;
+// 					cout << "Found Running! " << line << endl;
 					pk_backend_set_status (m_backend, PK_STATUS_ENUM_COMMIT);
 				} else if (starts_with(str, "Installing")) {
-					cout << "Found Installing! " << line << endl;
+// 					cout << "Found Installing! " << line << endl;
 					// FINISH the last package
 					if (!m_lastPackage.empty()) {
-						cout << "FINISH the last package: " << m_lastPackage << endl;
+// 						cout << "FINISH the last package: " << m_lastPackage << endl;
 						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
 					}
 					m_lastSubProgress = 0;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_INSTALLING);
 					pk_backend_set_sub_percentage(m_backend, 0);
 				} else if (starts_with(str, "Removing")) {
-					cout << "Found Removing! " << line << endl;
+// 					cout << "Found Removing! " << line << endl;
 					if (m_lastSubProgress >= 100 && !m_lastPackage.empty()) {
-						cout << "FINISH the last package: " << m_lastPackage << endl;
+// 						cout << "FINISH the last package: " << m_lastPackage << endl;
 						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
 					}
 					m_lastSubProgress += 25;
@@ -1348,7 +1561,7 @@ void aptcc::updateInterface(int fd, int writeFd)
 					pk_backend_set_sub_percentage(m_backend, m_lastSubProgress);
 				} else if (starts_with(str, "Installed") ||
 					       starts_with(str, "Removed")) {
-					cout << "Found FINISHED! " << line << endl;
+// 					cout << "Found FINISHED! " << line << endl;
 					m_lastSubProgress = 100;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_FINISHED);
 				} else {
diff --git a/backends/aptcc/pk-backend-aptcc.cpp b/backends/aptcc/pk-backend-aptcc.cpp
index f4f80d5..246a4c0 100644
--- a/backends/aptcc/pk-backend-aptcc.cpp
+++ b/backends/aptcc/pk-backend-aptcc.cpp
@@ -321,6 +321,12 @@ backend_get_details_thread (PkBackend *backend)
 		return false;
 	}
 
+    if (updateDetail) {
+        // this is needed to compare the changelog verstion to
+        // current package using DoCmpVersion()
+        pkgInitSystem(*_config, _system);
+    }
+
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 	for (uint i = 0; i < g_strv_length(package_ids); i++) {
 		pi = package_ids[i];
diff --git a/backends/aptcc/pkg_acqfile.cpp b/backends/aptcc/pkg_acqfile.cpp
index 2f64d16..872816b 100644
--- a/backends/aptcc/pkg_acqfile.cpp
+++ b/backends/aptcc/pkg_acqfile.cpp
@@ -33,10 +33,48 @@
 #include <sys/stat.h>
 
 #include <apt-pkg/error.h>
+#include <apt-pkg/configuration.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/sourcelist.h>
 #include <apt-pkg/strutl.h>
 
+// Let's all sing a song about apt-pkg's brokenness..
+
+pkgAcqFileSane::pkgAcqFileSane(pkgAcquire *Owner, string URI,
+                   string Description, string ShortDesc,
+                   string filename):
+  Item(Owner)
+{
+  Retries=_config->FindI("Acquire::Retries",0);
+  DestFile=filename;
+
+  Desc.URI=URI;
+  Desc.Description=Description;
+  Desc.Owner=this;
+  Desc.ShortDesc=ShortDesc;
+
+  QueueURI(Desc);
+}
+
+// Straight from acquire-item.cc
+/* Here we try other sources */
+void pkgAcqFileSane::Failed(string Message,pkgAcquire::MethodConfig *Cnf)
+{
+  ErrorText = LookupTag(Message,"Message");
+
+  // This is the retry counter
+  if (Retries != 0 &&
+      Cnf->LocalOnly == false &&
+      StringToBool(LookupTag(Message,"Transient-Failure"),false) == true)
+    {
+      Retries--;
+      QueueURI(Desc);
+      return;
+    }
+
+  Item::Failed(Message,Cnf);
+}
+
 // Mostly copied from pkgAcqArchive.
 bool get_archive(pkgAcquire *Owner, pkgSourceList *Sources,
 		pkgRecords *Recs, pkgCache::VerIterator const &Version,
diff --git a/backends/aptcc/pkg_acqfile.h b/backends/aptcc/pkg_acqfile.h
index 08fe02f..a6638b7 100644
--- a/backends/aptcc/pkg_acqfile.h
+++ b/backends/aptcc/pkg_acqfile.h
@@ -22,6 +22,26 @@
 /** \file pkg_acqfile.h
  */
 
+class pkgAcqFileSane:public pkgAcquire::Item
+// This is frustrating: pkgAcqFile is **almost** good enough, but has some
+// hardcoded stuff that makes it not quite work.
+//
+//  Based heavily on that class, though.
+{
+  pkgAcquire::ItemDesc Desc;
+  string Md5Hash;
+  unsigned int Retries;
+
+public:
+  pkgAcqFileSane(pkgAcquire *Owner, string URI,
+         string Description, string ShortDesc, string filename);
+
+  void Failed(string Message, pkgAcquire::MethodConfig *Cnf);
+  string MD5Sum() {return Md5Hash;}
+  string DescURI() {return Desc.URI;}
+  virtual ~pkgAcqFileSane() {}
+};
+
 /** Like pkgAcqArchive, but uses generic File objects to download to
  *  the cwd (and copies from file:/ URLs).
  */
commit dd9a708a54eb01f77307a7293b046ac2c95e84a4
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Oct 4 18:30:48 2010 +0100

    trivial: post release version bump

diff --git a/RELEASE b/RELEASE
index f34d672..cea3120 100644
--- a/RELEASE
+++ b/RELEASE
@@ -2,11 +2,11 @@ PackageKit Release Notes
 
 1. Write NEWS entries for PackageKit in the same format as usual.
 
-git shortlog PACKAGEKIT_0_6_8.. | grep -i -v trivial | grep -v Merge > NEWS.new
+git shortlog PACKAGEKIT_0_6_9.. | grep -i -v trivial | grep -v Merge > NEWS.new
 
 --------------------------------------------------------------------------------
-Version 0.6.9
-~~~~~~~~~~~~~
+Version 0.6.10
+~~~~~~~~~~~~~~
 Released: 2010-xx-xx
 
 Notes:
@@ -28,8 +28,8 @@ Bugfixes:
 
 4. Commit changes in PackageKit git:
 
-git commit -a -m "Release version 0.6.9"
-git tag -s -f -m "Release 0.6.9" PACKAGEKIT_0_6_9
+git commit -a -m "Release version 0.6.10"
+git tag -s -f -m "Release 0.6.10" PACKAGEKIT_0_6_10
 <gpg password>
 git push --tags
 git push
@@ -54,11 +54,7 @@ git push
 10. Send an email to packagekit at lists.freedesktop.org
 
 =================================================
-Subject: PackageKit 0.6.9 released!
-
-Today I released PackageKit 0.6.9.
-
-PackageKit release notes: http://cgit.freedesktop.org/packagekit/tree/NEWS
+Subject: PackageKit 0.6.10 released!
 
 Tarballs available here: http://www.packagekit.org/releases/
 
diff --git a/configure.ac b/configure.ac
index ecd585a..04bc175 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ(2.63)
 
 m4_define([pk_major_version], [0])
 m4_define([pk_minor_version], [6])
-m4_define([pk_micro_version], [9])
+m4_define([pk_micro_version], [10])
 m4_define([pk_version],
           [pk_major_version.pk_minor_version.pk_micro_version])
 


More information about the PackageKit-commit mailing list