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

Richard Hughes hughsient at kemper.freedesktop.org
Mon Jan 25 01:45:54 PST 2010


 Makefile.am                                       |    5 
 backends/yum/yumBackend.py                        |   17 +
 backends/zypp/pk-backend-zypp.cpp                 |  125 ++++--------
 backends/zypp/zypp-utils.cpp                      |   38 +--
 configure.ac                                      |    4 
 contrib/PackageKit.spec.in                        |    5 
 docs/html/img/users-brasero.png                   |binary
 docs/html/pk-users.html                           |   15 +
 lib/packagekit-glib2/Makefile.am                  |   24 ++
 lib/packagekit-glib2/pk-bitfield.c                |   16 +
 lib/packagekit-glib2/pk-catalog.c                 |    8 
 lib/packagekit-glib2/pk-category.c                |   12 +
 lib/packagekit-glib2/pk-client-sync.c             |   76 +++++++
 lib/packagekit-glib2/pk-client.c                  |   86 ++++++++
 lib/packagekit-glib2/pk-common.c                  |    8 
 lib/packagekit-glib2/pk-console-shared.c          |    4 
 lib/packagekit-glib2/pk-control-sync.c            |    4 
 lib/packagekit-glib2/pk-control.c                 |   60 ++++++
 lib/packagekit-glib2/pk-desktop.c                 |   28 +-
 lib/packagekit-glib2/pk-details.c                 |   14 +
 lib/packagekit-glib2/pk-distro-upgrade.c          |   10 -
 lib/packagekit-glib2/pk-enum.c                    |   84 +++++++-
 lib/packagekit-glib2/pk-error.c                   |   12 +
 lib/packagekit-glib2/pk-eula-required.c           |   12 +
 lib/packagekit-glib2/pk-files.c                   |    6 
 lib/packagekit-glib2/pk-media-change-required.c   |   10 -
 lib/packagekit-glib2/pk-message.c                 |    6 
 lib/packagekit-glib2/pk-package-id.c              |   10 +
 lib/packagekit-glib2/pk-package-ids.c             |   16 +
 lib/packagekit-glib2/pk-package-sack-sync.c       |    6 
 lib/packagekit-glib2/pk-package-sack.c            |   34 +++
 lib/packagekit-glib2/pk-package.c                 |   63 +++++-
 lib/packagekit-glib2/pk-progress.c                |   54 +++++
 lib/packagekit-glib2/pk-repo-detail.c             |   10 -
 lib/packagekit-glib2/pk-repo-signature-required.c |   20 +-
 lib/packagekit-glib2/pk-require-restart.c         |    6 
 lib/packagekit-glib2/pk-results.c                 |   72 +++++++
 lib/packagekit-glib2/pk-service-pack.c            |   52 +++--
 lib/packagekit-glib2/pk-source.c                  |    6 
 lib/packagekit-glib2/pk-task-sync.c               |   10 +
 lib/packagekit-glib2/pk-task.c                    |   20 ++
 lib/packagekit-glib2/pk-transaction-list.c        |    6 
 lib/packagekit-glib2/pk-transaction-past.c        |   20 +-
 lib/packagekit-glib2/pk-update-detail.c           |   28 ++
 po/es.po                                          |  219 +++++++++++-----------
 po/nl.po                                          |  186 +++++++++---------
 po/pl.po                                          |  214 ++++++++++-----------
 src/pk-transaction-extra.c                        |    2 
 src/pk-transaction-list.c                         |   12 -
 src/pk-transaction.c                              |   42 ++--
 50 files changed, 1295 insertions(+), 502 deletions(-)

New commits:
commit fbef1027178ee1f1e66b1e68a4309cbbb7f77bc4
Author: Scott Reeves <sreeves at novell.com>
Date:   Sat Jan 23 23:55:00 2010 -0700

    zypp: work with packagekit-glib2

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 7332732..e7edeb6 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -126,11 +126,10 @@ backend_destroy (PkBackend *backend)
 static gboolean
 backend_get_requires_thread (PkBackend *backend)
 {
-	PkPackageId *pi = NULL;
 	gchar **package_ids;
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
-	if (package_ids == NULL) {
+	if (!pk_package_ids_check (package_ids)) {
 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
 		pk_backend_finished (backend);
 		return FALSE;
@@ -142,9 +141,6 @@ backend_get_requires_thread (PkBackend *backend)
 	//pk_backend_set_percentage (backend, 0);
 
 	for (uint i = 0; i < g_strv_length(package_ids); i++) {
-
-		pi = pk_package_id_new_from_string (package_ids[i]);
-
 		zypp::sat::Solvable solvable = zypp_get_package_by_id (package_ids[i]);
 		zypp::PoolItem package;
 
@@ -152,18 +148,19 @@ backend_get_requires_thread (PkBackend *backend)
 			zypp::ResPool pool = zypp_build_pool (true);
 
 			gboolean found = FALSE;
+			gchar **id_parts = pk_package_id_split (package_ids[i]);
 
-			for (zypp::ResPool::byIdent_iterator it = pool.byIdentBegin (zypp::ResKind::package, pi->name);
-					it != pool.byIdentEnd (zypp::ResKind::package, pi->name); it++) {
+			for (zypp::ResPool::byIdent_iterator it = pool.byIdentBegin (zypp::ResKind::package, id_parts[PK_PACKAGE_ID_NAME]);
+					it != pool.byIdentEnd (zypp::ResKind::package, id_parts[PK_PACKAGE_ID_NAME]); it++) {
 				if (it->status ().isInstalled ()) {
 					package = (*it);
 					found = TRUE;
 				}
 			}
+			g_strfreev (id_parts);
 
 			if (found == FALSE) {
 				pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, "Package is not installed");
-				pk_package_id_free (pi);
 				pk_backend_finished (backend);
 				return FALSE;
 			}
@@ -173,7 +170,6 @@ backend_get_requires_thread (PkBackend *backend)
 		} else {
 			if (solvable == zypp::sat::Solvable::noSolvable) {
 				pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "Package couldn't be found");
-				pk_package_id_free (pi);
 				pk_backend_finished (backend);
 				return FALSE;
 			}
@@ -196,7 +192,6 @@ backend_get_requires_thread (PkBackend *backend)
 				egg_warning("Solver problem (This should never happen): '%s'", (*it)->description ().c_str ());
 			}
 			pk_backend_error_code (backend, PK_ERROR_ENUM_DEP_RESOLUTION_FAILED, "Resolution failed");
-			pk_package_id_free (pi);
 			pk_backend_finished (backend);
 			return FALSE;
 		}
@@ -241,8 +236,6 @@ backend_get_requires_thread (PkBackend *backend)
 		solver.setForceResolve (false);
 	}
 
-	pk_package_id_free (pi);
-
 	pk_backend_finished (backend);
 	return TRUE;
 }
@@ -308,8 +301,7 @@ backend_get_depends_thread (PkBackend *backend)
 	pk_backend_set_percentage (backend, 0);
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
-	PkPackageId *pi = pk_package_id_new_from_string (package_ids[0]);
-	if (pi == NULL) {
+	if (!pk_package_ids_check (package_ids)) {
 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
 		pk_backend_finished (backend);
 		return FALSE;
@@ -320,6 +312,7 @@ backend_get_depends_thread (PkBackend *backend)
 
 	try
 	{
+		gchar **id_parts = pk_package_id_split (package_ids[0]);
 		pk_backend_set_percentage (backend, 20);
 		// Load resolvables from all the enabled repositories
 		zypp::ResPool pool = zypp_build_pool(true);
@@ -327,14 +320,14 @@ backend_get_depends_thread (PkBackend *backend)
 		zypp::PoolItem pool_item;
 		gboolean pool_item_found = FALSE;
 		// Iterate over the resolvables and mark the one we want to check its dependencies
-		for (zypp::ResPool::byIdent_iterator it = pool.byIdentBegin (zypp::ResKind::package, pi->name);
-				it != pool.byIdentEnd (zypp::ResKind::package, pi->name); it++) {
+		for (zypp::ResPool::byIdent_iterator it = pool.byIdentBegin (zypp::ResKind::package, id_parts[PK_PACKAGE_ID_NAME]);
+				it != pool.byIdentEnd (zypp::ResKind::package, id_parts[PK_PACKAGE_ID_NAME]); it++) {
 			zypp::PoolItem selectable = *it;
-			if (strcmp (selectable->name().c_str(), pi->name) == 0) {
+			if (strcmp (selectable->name().c_str(), id_parts[PK_PACKAGE_ID_NAME]) == 0) {
 				// This package matches the name we're looking
 				char *edition_str = g_strdup (selectable->edition ().asString ().c_str());
 
-				if (strcmp (edition_str, pi->version) == 0) {
+				if (strcmp (edition_str, id_parts[PK_PACKAGE_ID_VERSION]) == 0) {
 					g_free (edition_str);
 					// this is the one, mark it to be installed
 					pool_item = selectable;
@@ -345,6 +338,7 @@ backend_get_depends_thread (PkBackend *backend)
 				g_free (edition_str);
 			}
 		}
+		g_strfreev (id_parts);
 
 		pk_backend_set_percentage (backend, 40);
 
@@ -434,15 +428,11 @@ backend_get_depends_thread (PkBackend *backend)
 	} catch (const zypp::repo::RepoNotFoundException &ex) {
 		// TODO: make sure this dumps out the right sring.
 		pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, ex.asUserString().c_str() );
-
-		pk_package_id_free (pi);
 		pk_backend_finished (backend);
 		return FALSE;
 	} catch (const zypp::Exception &ex) {
 		//pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, "Error enumerating repositories");
 		pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, ex.asUserString().c_str() );
-
-		pk_package_id_free (pi);
 		pk_backend_finished (backend);
 		return FALSE;
 	}
@@ -465,10 +455,9 @@ static gboolean
 backend_get_details_thread (PkBackend *backend)
 {
 	gchar **package_ids;
-	PkPackageId *pi;
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
-	if (package_ids == NULL) {
+	if (!pk_package_ids_check (package_ids)) {
 		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
 		pk_backend_finished (backend);
 		return FALSE;
@@ -476,20 +465,14 @@ backend_get_details_thread (PkBackend *backend)
 	pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 	for (uint i = 0; i < g_strv_length(package_ids); i++) {
-
-		pi = pk_package_id_new_from_string (package_ids[i]);
-		if (pi == NULL) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
-			pk_backend_finished (backend);
-			return FALSE;
-		}
+		gchar **id_parts = pk_package_id_split (package_ids[i]);
 
 		std::vector<zypp::sat::Solvable> *v;
 		std::vector<zypp::sat::Solvable> *v2;
 		std::vector<zypp::sat::Solvable> *v3;
-		v = zypp_get_packages_by_name ((const gchar *)pi->name, zypp::ResKind::package, TRUE);
-		v2 = zypp_get_packages_by_name ((const gchar *)pi->name, zypp::ResKind::patch, TRUE);
-		v3 = zypp_get_packages_by_name ((const gchar *)pi->name, zypp::ResKind::srcpackage, TRUE);
+		v = zypp_get_packages_by_name ((const gchar *)id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::package, TRUE);
+		v2 = zypp_get_packages_by_name ((const gchar *)id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::patch, TRUE);
+		v3 = zypp_get_packages_by_name ((const gchar *)id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::srcpackage, TRUE);
 
 		v->insert (v->end (), v2->begin (), v2->end ());
 		v->insert (v->end (), v3->begin (), v3->end ());
@@ -500,7 +483,7 @@ backend_get_details_thread (PkBackend *backend)
 			gchar *version = g_strdup (it->edition ().asString ().c_str ());
 			gchar *arch = g_strdup (it->arch ().c_str ());
 
-			if (strcmp (pi->version, version) == 0 && strcmp (pi->arch, arch) == 0) {
+			if (strcmp (id_parts[PK_PACKAGE_ID_VERSION], version) == 0 && strcmp (id_parts[PK_PACKAGE_ID_ARCH], arch) == 0) {
 				package = *it;
 				break;
 			}
@@ -510,10 +493,10 @@ backend_get_details_thread (PkBackend *backend)
 		delete (v);
 		delete (v2);
 		delete (v3);
+		g_strfreev (id_parts);
 
 		if (package == NULL) {
 			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "couldn't find package");
-			pk_package_id_free (pi);
 			pk_backend_finished (backend);
 			return FALSE;
 		}
@@ -553,8 +536,6 @@ backend_get_details_thread (PkBackend *backend)
 
 			return FALSE;
 		}
-
-		pk_package_id_free (pi);
 	}
 
 	pk_backend_finished (backend);
@@ -1035,6 +1016,11 @@ backend_install_packages_thread (PkBackend *backend)
 	zypp = get_zypp ();
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
+	if (!pk_package_ids_check (package_ids)) {
+		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
+		pk_backend_finished (backend);
+		return FALSE;
+	}
 	/* FIXME: support only_trusted */
 
 	try
@@ -1044,21 +1030,15 @@ backend_install_packages_thread (PkBackend *backend)
 		gboolean hit = false;
 		std::vector<zypp::PoolItem> *items = new std::vector<zypp::PoolItem> ();
 
-
 		for (guint i = 0; i < g_strv_length (package_ids); i++) {
 
-			PkPackageId *pi = pk_package_id_new_from_string (package_ids[i]);
-			if (pi == NULL) {
-				pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
-				pk_backend_finished (backend);
-				return FALSE;
-			}
-
+			gchar **id_parts = pk_package_id_split (package_ids[i]);
+			
 			// Iterate over the selectables and mark the one with the right name
 			zypp::ui::Selectable::Ptr selectable;
 			for (zypp::ResPoolProxy::const_iterator it = zypp->poolProxy().byKindBegin <zypp::Package>();
 					it != zypp->poolProxy().byKindEnd <zypp::Package>(); it++) {
-				if (strcmp ((*it)->name ().c_str (), pi->name) == 0) {
+				if (strcmp ((*it)->name ().c_str (), id_parts[PK_PACKAGE_ID_NAME]) == 0) {
 					selectable = *it;
 					break;
 				}
@@ -1067,8 +1047,8 @@ backend_install_packages_thread (PkBackend *backend)
 			// Choose the PoolItem with the right architecture and version
 			for (zypp::ui::Selectable::available_iterator it = selectable->availableBegin ();
 					it != selectable->availableEnd (); it++) {
-				if (strcmp ((*it)->edition ().asString ().c_str (), pi->version) == 0
-						&& strcmp ((*it)->arch ().c_str (), pi->arch) == 0 ) {
+				if (strcmp ((*it)->edition ().asString ().c_str (), id_parts[PK_PACKAGE_ID_VERSION]) == 0
+						&& strcmp ((*it)->arch ().c_str (), id_parts[PK_PACKAGE_ID_ARCH]) == 0 ) {
 					hit = true;
 					// set status to ToBeInstalled
 					it->status ().setToBeInstalled (zypp::ResStatus::USER);
@@ -1076,16 +1056,15 @@ backend_install_packages_thread (PkBackend *backend)
 					break;
 				}
 			}
+			g_strfreev (id_parts);
 
 			if (!hit) {
 				pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "Couldn't find the package.");
-				pk_package_id_free (pi);
 				pk_backend_finished (backend);
 				return FALSE;
 			}
 
 			pk_backend_set_percentage (backend, 40);
-			pk_package_id_free (pi);
 		}
 
 		if (!zypp_perform_execution (backend, INSTALL, FALSE)) {
@@ -1146,7 +1125,6 @@ static gboolean
 backend_remove_packages_thread (PkBackend *backend)
 {
 	gchar **package_ids;
-	PkPackageId *pi;
 	std::vector<zypp::PoolItem> *items = new std::vector<zypp::PoolItem> ();
 
 	pk_backend_set_status (backend, PK_STATUS_ENUM_REMOVE);
@@ -1163,25 +1141,25 @@ backend_remove_packages_thread (PkBackend *backend)
 	pk_backend_set_percentage (backend, 10);
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
+	if (!pk_package_ids_check (package_ids)) {
+		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
+		pk_backend_finished (backend);
+		return FALSE;
+	}
 	for (guint i = 0; i < g_strv_length (package_ids); i++) {
-		pi = pk_package_id_new_from_string (package_ids[i]);
-		if (pi == NULL) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
-			pk_backend_finished (backend);
-			return FALSE;
-		}
+		gchar **id_parts = pk_package_id_split (package_ids[i]);
 
 		// Iterate over the resolvables and mark the ones we want to remove
 		zypp::ResPool pool = zypp::ResPool::instance ();
-		for (zypp::ResPool::byIdent_iterator it = pool.byIdentBegin (zypp::ResKind::package, pi->name);
-				it != pool.byIdentEnd (zypp::ResKind::package, pi->name); it++) {
+		for (zypp::ResPool::byIdent_iterator it = pool.byIdentBegin (zypp::ResKind::package, id_parts[PK_PACKAGE_ID_NAME]);
+				it != pool.byIdentEnd (zypp::ResKind::package, id_parts[PK_PACKAGE_ID_NAME]); it++) {
 			if ((*it)->isSystem ()) {
 				it->status ().setToBeUninstalled (zypp::ResStatus::USER);
 				items->push_back (*it);
 				break;
 			}
 		}
-		pk_package_id_free (pi);
+		g_strfreev (id_parts);
 	}
 
 	pk_backend_set_percentage (backend, 40);
@@ -1491,26 +1469,23 @@ backend_repo_enable (PkBackend *backend, const gchar *rid, gboolean enabled)
 static gboolean
 backend_get_files_thread (PkBackend *backend)
 {
-	PkPackageId *pi;
 	gchar **package_ids;
 
 	package_ids = pk_backend_get_strv (backend, "package_ids");
+	if (!pk_package_ids_check (package_ids)) {
+		pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
+		pk_backend_finished (backend);
+		return FALSE;
+	}
 
 	for(uint i = 0; i < g_strv_length(package_ids); i++) {
-		pi = pk_package_id_new_from_string (package_ids[i]);
-		if (pi == NULL) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
-			pk_package_id_free (pi);
-
-			pk_backend_finished (backend);
-			return FALSE;
-		}
+		gchar **id_parts = pk_package_id_split (package_ids[i]);
 		pk_backend_set_status (backend, PK_STATUS_ENUM_QUERY);
 
 		std::vector<zypp::sat::Solvable> *v;
 		std::vector<zypp::sat::Solvable> *v2;
-		v = zypp_get_packages_by_name ((const gchar *)pi->name, zypp::ResKind::package, TRUE);
-		v2 = zypp_get_packages_by_name ((const gchar *)pi->name, zypp::ResKind::srcpackage, TRUE);
+		v = zypp_get_packages_by_name ((const gchar *)id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::package, TRUE);
+		v2 = zypp_get_packages_by_name ((const gchar *)id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::srcpackage, TRUE);
 
 		v->insert (v->end (), v2->begin (), v2->end ());
 
@@ -1518,7 +1493,7 @@ backend_get_files_thread (PkBackend *backend)
 		for (std::vector<zypp::sat::Solvable>::iterator it = v->begin ();
 				it != v->end (); it++) {
 			char *version = g_strdup (it->edition ().asString ().c_str ());
-			if (strcmp (pi->version, version) == 0) {
+			if (strcmp (id_parts[PK_PACKAGE_ID_VERSION], version) == 0) {
 				g_free (version);
 				package = *it;
 				break;
@@ -1528,11 +1503,10 @@ backend_get_files_thread (PkBackend *backend)
 
 		delete (v);
 		delete (v2);
+		g_strfreev (id_parts);
 
 		if (package == NULL) {
 			pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, "couldn't find package");
-			pk_package_id_free (pi);
-
 			pk_backend_finished (backend);
 			return FALSE;
 		}
@@ -1558,7 +1532,6 @@ backend_get_files_thread (PkBackend *backend)
 		}
 
 		pk_backend_files (backend, package_ids[i], temp.c_str ());	// file_list
-		pk_package_id_free (pi);
 	}
 
 	pk_backend_finished (backend);
diff --git a/backends/zypp/zypp-utils.cpp b/backends/zypp/zypp-utils.cpp
index ffadfd6..85a362d 100644
--- a/backends/zypp/zypp-utils.cpp
+++ b/backends/zypp/zypp-utils.cpp
@@ -53,7 +53,8 @@
 #include <zypp/base/Logger.h>
 
 #include <pk-backend.h>
-#include <packagekit-glib/packagekit.h>
+#define I_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE
+#include <packagekit-glib2/packagekit.h>
 
 #include "zypp-utils.h"
 
@@ -393,15 +394,14 @@ zypp_get_packages_by_file (const gchar *search_file)
 zypp::sat::Solvable
 zypp_get_package_by_id (const gchar *package_id)
 {
-	PkPackageId *pi;
-	pi = pk_package_id_new_from_string (package_id);
-	if (pi == NULL) {
+	if (!pk_package_id_check(package_id)) {
 		// TODO: Do we need to do something more for this error?
 		return zypp::sat::Solvable::noSolvable;
 	}
 
-	std::vector<zypp::sat::Solvable> *v = zypp_get_packages_by_name (pi->name, zypp::ResKind::package, TRUE);
-	std::vector<zypp::sat::Solvable> *v2 = zypp_get_packages_by_name (pi->name, zypp::ResKind::patch, TRUE);
+	gchar **id_parts = pk_package_id_split(package_id);
+	std::vector<zypp::sat::Solvable> *v = zypp_get_packages_by_name (id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::package, TRUE);
+	std::vector<zypp::sat::Solvable> *v2 = zypp_get_packages_by_name (id_parts[PK_PACKAGE_ID_NAME], zypp::ResKind::patch, TRUE);
 
 	v->insert (v->end (), v2->begin (), v2->end ());
 	
@@ -414,7 +414,7 @@ zypp_get_package_by_id (const gchar *package_id)
 			it != v->end (); it++) {
 		gchar *version = g_strdup (it->edition ().c_str ());
 		gchar *arch = g_strdup (it->arch ().c_str ());
-		if (strcmp (pi->version, version) == 0 && strcmp (pi->arch, arch) == 0) {
+		if (strcmp (id_parts[PK_PACKAGE_ID_VERSION], version) == 0 && strcmp (id_parts[PK_PACKAGE_ID_ARCH], arch) == 0) {
 			package = *it;
 			break;
 		}
@@ -424,6 +424,7 @@ zypp_get_package_by_id (const gchar *package_id)
 
 	delete (v);
 	delete (v2);
+	g_strfreev (id_parts);
 	return package;
 }
 
@@ -948,36 +949,19 @@ zypp_refresh_cache (PkBackend *backend, gboolean force)
 			manager.refreshMetadata (repo, force == TRUE ?
 				zypp::RepoManager::RefreshForced :
 				zypp::RepoManager::RefreshIfNeeded);
-		} catch (const zypp::Exception &ex) {
-			if (repo_messages == NULL) {
-				repo_messages = g_strdup_printf ("%s: %s%s", repo.alias ().c_str (), ex.asUserString ().c_str (), "\n");	
-			}else{
-				repo_messages = g_strdup_printf ("%s%s: %s%s", repo_messages, repo.alias ().c_str (), ex.asUserString ().c_str (), "\n");	
-			}
-			repo_messages = pk_strsafe (repo_messages);
-			if (repo_messages == NULL)
-				repo_messages = g_strdup ("A repository could not be refreshed");
-			continue;
-		}
-
-		try {
-			// Building cache
 			manager.buildCache (repo, force == TRUE ?
 				zypp::RepoManager::BuildForced :
 				zypp::RepoManager::BuildIfNeeded);
-		//} catch (const zypp::repo::RepoNoUrlException &ex) {
-		//} catch (const zypp::repo::RepoNoAliasException &ex) {
-		//} catch (const zypp::repo::RepoUnknownTypeException &ex) {
-		//} catch (const zypp::repo::RepoException &ex) {
 		} catch (const zypp::Exception &ex) {
 			if (repo_messages == NULL) {
 				repo_messages = g_strdup_printf ("%s: %s%s", repo.alias ().c_str (), ex.asUserString ().c_str (), "\n");	
 			}else{
 				repo_messages = g_strdup_printf ("%s%s: %s%s", repo_messages, repo.alias ().c_str (), ex.asUserString ().c_str (), "\n");	
 			}
-			repo_messages = pk_strsafe (repo_messages);
-			if (repo_messages == NULL)
+			if (repo_messages == NULL || !g_utf8_validate (repo_messages, -1, NULL))
 				repo_messages = g_strdup ("A repository could not be refreshed");
+			g_strdelimit (repo_messages, "\\\f\r\t", ' ');
+			continue;
 		}
 
 		// Update the percentage completed
commit 05da249853df8afdf46c637bd367c0692380260c
Author: warrink <warrink at fedoraproject.org>
Date:   Thu Jan 21 14:51:53 2010 +0000

    Sending translation for Dutch

diff --git a/po/nl.po b/po/nl.po
index 22ae789..b8679f5 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,13 +1,13 @@
 # translation of packagekit.master.po to Dutch
 # R.E. van der Luit <nippur at fedoraproject.org>, 2009.
 # Geert Warrink <geert.warrink at onsnet.nu>, 2009.
-# Richard van der Luit <nippur at fedoraproject.org>, 2009.
+# Richard van der Luit <nippur at fedoraproject.org>, 2009, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-07 14:32+0000\n"
-"PO-Revision-Date: 2009-12-07 18:30+0100\n"
+"POT-Creation-Date: 2010-01-21 09:59+0000\n"
+"PO-Revision-Date: 2010-01-21 15:50+0100\n"
 "Last-Translator: Richard van der Luit <nippur at fedoraproject.org>\n"
 "Language-Team: Dutch <nl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -315,20 +315,30 @@ msgid ""
 "have been installed."
 msgstr "Log a.u.b. uit en weer in om de verniewing af te maken."
 
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
+#: ../client/pk-console.c:843
+#, c-format
+msgid ""
+"Extected package name, actually got file. Try using 'pkcon install-local %s' "
+"instead."
+msgstr ""
+"Verwachtte pakketnaam, maar kreeg een bestand. Probeer in plaats daarvan "
+"'pkcon install-local %s' te gebruiken."
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:840
+#: ../client/pk-console.c:851
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Dit programma kon geen enkel beschikbaar pakket %s vinden."
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:879
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Dit programma kon het geïinstallerde pakket %s niet vinden."
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:896 ../client/pk-console.c:924
+#: ../client/pk-console.c:907 ../client/pk-console.c:935
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Dit programma kon het pakket %s niet vinden."
@@ -337,64 +347,64 @@ msgstr "Dit programma kon het pakket %s niet vinden."
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:952 ../client/pk-console.c:980
-#: ../client/pk-console.c:1008 ../client/pk-console.c:1036
-#: ../client/pk-console.c:1064
+#: ../client/pk-console.c:963 ../client/pk-console.c:991
+#: ../client/pk-console.c:1019 ../client/pk-console.c:1047
+#: ../client/pk-console.c:1075
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Dit programma kon niet alle pakketten vinden: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1104
 msgid "The daemon crashed mid-transaction!"
 msgstr "De service is midden in de transactie gecrashed!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1127
+#: ../client/pk-console.c:1138
 msgid "PackageKit Console Interface"
 msgstr "PackageKit console-interface"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1129
+#: ../client/pk-console.c:1140
 msgid "Subcommands:"
 msgstr "Subopdrachten:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:1208
+#: ../client/pk-console.c:1219
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Verkrijgen van de tijd tussen laatste actie en deze actie is niet gelukt"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1244 ../client/pk-monitor.c:280
+#: ../client/pk-console.c:1255 ../client/pk-monitor.c:280
 msgid "Show the program version and exit"
 msgstr "Programmaversie tonen en sluiten"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1247
+#: ../client/pk-console.c:1258
 msgid "Set the filter, e.g. installed"
 msgstr "Filter instellen, bijvoorbeeld geïnstalleerd"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:1261
 msgid "Exit without waiting for actions to complete"
 msgstr "Afsluiten zonder te wachten tot de transacties zijn afgerond"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1253
+#: ../client/pk-console.c:1264
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
 msgid "Install the packages without asking for confirmation"
 msgstr "Installeer het pakket zonder goedkeuring te vragen"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1256
+#: ../client/pk-console.c:1267
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Voer het commando uit met gebruik van onbenutte netwerk bandbreedte en ook "
 "om minder vermogen te gebruiken"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1259
+#: ../client/pk-console.c:1270
 msgid ""
 "Print to screen a machine readable output, rather than using animated widgets"
 msgstr ""
@@ -402,128 +412,128 @@ msgstr ""
 "widgets te gebruiken"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1292
 msgid "Failed to contact PackageKit"
 msgstr "Contact met PackageKit krijgen mislukte."
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1339
+#: ../client/pk-console.c:1350
 msgid "The filter specified was invalid"
 msgstr "De opgegeven filter was ongeldig"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1358
+#: ../client/pk-console.c:1369
 msgid "A search type is required, e.g. name"
 msgstr "Een zoektype is verplicht, b.v. naam"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1365 ../client/pk-console.c:1377
-#: ../client/pk-console.c:1389 ../client/pk-console.c:1401
+#: ../client/pk-console.c:1376 ../client/pk-console.c:1388
+#: ../client/pk-console.c:1400 ../client/pk-console.c:1412
 msgid "A search term is required"
 msgstr "Een zoekterm is vereist"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1411
+#: ../client/pk-console.c:1422
 msgid "Invalid search type"
 msgstr "Ongeldig zoektype"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1428
 msgid "A package name to install is required"
 msgstr "Een pakketnaam om te installeren is vereist"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1437
 msgid "A filename to install is required"
 msgstr "Een bestandsnaam om te installeren is vereist"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1438
+#: ../client/pk-console.c:1449
 msgid "A type, key_id and package_id are required"
 msgstr "Er moet een type worden opgegeven, key_id of package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1449
+#: ../client/pk-console.c:1460
 msgid "A package name to remove is required"
 msgstr "Een te verwijderen pakketnaam is vereist"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1469
 msgid "A destination directory and the package names to download are required"
 msgstr "Een doelmap en dan de namen van te downloaden pakketten zijn vereist"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1465
+#: ../client/pk-console.c:1476
 msgid "Directory not found"
 msgstr "Map niet gevonden"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1485
 msgid "A licence identifier (eula-id) is required"
 msgstr "Een licentie indentificatie (eula-id) is vereis"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1496
 msgid "A transaction identifier (tid) is required"
 msgstr "Een transactie indentificatie (tid) is vereist"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1506
+#: ../client/pk-console.c:1517
 msgid "A package name to resolve is required"
 msgstr "Een pakketnaam om te gebruiken is vereist"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1517 ../client/pk-console.c:1528
+#: ../client/pk-console.c:1528 ../client/pk-console.c:1539
 msgid "A repository name is required"
 msgstr "Een naam van een repository is vereist"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1550
 msgid "A repo name, parameter and value are required"
 msgstr "Een repo naam, parameter en waarde zijn vereist"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1556
+#: ../client/pk-console.c:1567
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Een actie, b.v. 'update-system' is vereist"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1574
 msgid "A correct role is required"
 msgstr "Een correcte rol is vereist"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:1573 ../client/pk-console.c:1588
-#: ../client/pk-console.c:1597 ../client/pk-console.c:1617
-#: ../client/pk-console.c:1626 ../client/pk-generate-pack.c:298
+#: ../client/pk-console.c:1584 ../client/pk-console.c:1599
+#: ../client/pk-console.c:1608 ../client/pk-console.c:1628
+#: ../client/pk-console.c:1637 ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "Een pakketnaam is vereist"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1617
 msgid "A package provide string is required"
 msgstr "Een pakket geleverde string is vereist"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1697
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Optie '%s' wordt niet ondersteund"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1696
+#: ../client/pk-console.c:1707
 msgid "Command failed"
 msgstr "Opdracht mislukt"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:237
+#: ../client/pk-generate-pack.c:255
 msgid "Set the file name of dependencies to be excluded"
 msgstr ""
 "Zet de bestandsnamen van afhankelijkheden die moeten worden uitgesloten"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:240
+#: ../client/pk-generate-pack.c:258
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr ""
@@ -531,43 +541,43 @@ msgstr ""
 "opgegeven)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-generate-pack.c:261
 msgid "The package to be put into the service pack"
 msgstr "Het pakket dat in het servicepack zal worden opgenomen"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:246
+#: ../client/pk-generate-pack.c:264
 msgid "Put all updates available in the service pack"
 msgstr "Doe alle beschikbare updates in het servicepack"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:282
+#: ../client/pk-generate-pack.c:300
 msgid "Neither --package or --updates option selected."
 msgstr "Noch --package noch --updates als optie geselecteerd."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:290
+#: ../client/pk-generate-pack.c:308
 msgid "Both options selected."
 msgstr "Beide opties geselecteerd."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:306
+#: ../client/pk-generate-pack.c:324
 msgid "A output directory or file name is required"
 msgstr "Een doelmap of bestandsnaam is vereist"
 
 #. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
-#: ../client/pk-generate-pack.c:324
+#: ../client/pk-generate-pack.c:342
 msgid "The dameon failed to startup"
 msgstr "De daemon faalde op te starten"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:335 ../client/pk-generate-pack.c:341
+#: ../client/pk-generate-pack.c:353 ../client/pk-generate-pack.c:359
 msgid "The package manager cannot perform this type of operation."
 msgstr "De package manager kan dit type operatie niet uitvoeren."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:366
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -576,55 +586,55 @@ msgstr ""
 "ondersteuning is gebouwd."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:377
 msgid "If specifying a file, the service pack name must end with"
 msgstr ""
 "Bij het specificeren van een bestand moet de servicepacknaam eindigen met"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:375
+#: ../client/pk-generate-pack.c:393
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Een pack met dezelfde naam bestaat reeds, wilt u deze overschrijven?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:378
+#: ../client/pk-generate-pack.c:396
 msgid "The pack was not overwritten."
 msgstr "Het pack werd niet overschreven."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:391
+#: ../client/pk-generate-pack.c:409
 msgid "Failed to create directory:"
 msgstr "Aanmaken map mislukt:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:403
+#: ../client/pk-generate-pack.c:421
 msgid "Failed to open package list."
 msgstr "Pakketlijst openen is niet gelukt."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:412
+#: ../client/pk-generate-pack.c:430
 msgid "Finding package name."
 msgstr "Pakketnaam wordt opgezocht."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:416
+#: ../client/pk-generate-pack.c:434
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Pakket '%s' niet gevonden: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:424
+#: ../client/pk-generate-pack.c:442
 msgid "Creating service pack..."
 msgstr "Servicepack wordt aangemaakt...."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:439
+#: ../client/pk-generate-pack.c:457
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Servicepack aangemaakt '%s'"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:444
+#: ../client/pk-generate-pack.c:462
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "'%s' aanmaken niet gelukt: %s"
@@ -760,29 +770,29 @@ msgid "Please choose a command to run"
 msgstr "Kies alstublieft een commando om te starten"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:766
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "The package providing this file is:"
 msgstr "Het pakket dat dit bestand levert is:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:771
+#: ../contrib/command-not-found/pk-command-not-found.c:769
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Pakket '%s' installeren om commando '%s' te verkrijgen?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:795
+#: ../contrib/command-not-found/pk-command-not-found.c:793
 msgid "Packages providing this file are:"
 msgstr "Pakketten die dit bestand leveren zijn:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:805
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "Suitable packages are:"
 msgstr "Geschikte pakketten zijn:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:814
+#: ../contrib/command-not-found/pk-command-not-found.c:812
 msgid "Please choose a package to install"
 msgstr "Kies alstublieft een pakket om te installeren"
 
@@ -983,92 +993,92 @@ msgid "Disabled %i debugging sources."
 msgstr "%i debug bronnen uitgezet."
 
 #. TRANSLATORS: couldn't open device to write
-#: ../contrib/device-rebind/pk-device-rebind.c:61
+#: ../contrib/device-rebind/pk-device-rebind.c:62
 msgid "Failed to open file"
 msgstr "Bestand openen niet gelukt"
 
 #. TRANSLATORS: could not write to the device
-#: ../contrib/device-rebind/pk-device-rebind.c:70
+#: ../contrib/device-rebind/pk-device-rebind.c:71
 msgid "Failed to write to the file"
 msgstr "Naar bestand schrijven niet gelukt"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:110
-#: ../contrib/device-rebind/pk-device-rebind.c:147
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
 msgid "Failed to write to device"
 msgstr "Naar schijf schrijven niet gelukt"
 
 #. TRANSLATORS: the device could not be found in sysfs
-#: ../contrib/device-rebind/pk-device-rebind.c:175
+#: ../contrib/device-rebind/pk-device-rebind.c:176
 msgid "Device could not be found"
 msgstr "Schijf kon niet gevonden worden"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:202
+#: ../contrib/device-rebind/pk-device-rebind.c:203
 msgid "Failed to unregister driver"
 msgstr "Driver uitschrijven mislukte"
 
 #. TRANSLATORS: we failed to bind the old driver
-#: ../contrib/device-rebind/pk-device-rebind.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:212
 msgid "Failed to register driver"
 msgstr "Driver inschrijven mislukte"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:260
+#: ../contrib/device-rebind/pk-device-rebind.c:261
 msgid "Device path not found"
 msgstr "Device pad niet gevonden"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:268
+#: ../contrib/device-rebind/pk-device-rebind.c:269
 msgid "Incorrect device path specified"
 msgstr "Onjuist device pad opgegeven"
 
-#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../contrib/device-rebind/pk-device-rebind.c:294
 msgid "Show extra debugging information"
 msgstr "Extra debuginformatie tonen"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/device-rebind/pk-device-rebind.c:296
+#: ../contrib/device-rebind/pk-device-rebind.c:297
 msgid "Don't actually touch the hardware, only simulate what would be done"
 msgstr "Ik raak de hardware niet aan, ik simuleer alleen wat er zou gebeuren"
 
 #. TRANSLATORS: command line option: a list of files to install
-#: ../contrib/device-rebind/pk-device-rebind.c:299
+#: ../contrib/device-rebind/pk-device-rebind.c:300
 msgid "Device paths"
 msgstr "Device paden"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
-#: ../contrib/device-rebind/pk-device-rebind.c:314
+#: ../contrib/device-rebind/pk-device-rebind.c:315
 msgid "PackageKit Device Reloader"
 msgstr "PackageKit device herlader"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:322
+#: ../contrib/device-rebind/pk-device-rebind.c:323
 msgid "You need to specify at least one valid device path"
 msgstr "Je moet tenminste een geldig device pad opgeven"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:332
+#: ../contrib/device-rebind/pk-device-rebind.c:333
 msgid "This script can only be used by the root user"
 msgstr "Dit script kan alleen door de root gebruiker gebruikt worden"
 
 #. TRANSLATORS: we're going to verify the path first
-#: ../contrib/device-rebind/pk-device-rebind.c:341
+#: ../contrib/device-rebind/pk-device-rebind.c:342
 msgid "Verifying device path"
 msgstr "Verifiëren van device pad"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:346
+#: ../contrib/device-rebind/pk-device-rebind.c:347
 msgid "Failed to verify device path"
 msgstr "Device pad verifiëren mislukte"
 
 #. TRANSLATORS: we're going to try
-#: ../contrib/device-rebind/pk-device-rebind.c:360
+#: ../contrib/device-rebind/pk-device-rebind.c:361
 msgid "Attempting to rebind device"
 msgstr "Probeer opnieuw te berbinden met device"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:365
+#: ../contrib/device-rebind/pk-device-rebind.c:366
 msgid "Failed to rebind device"
 msgstr "Opnieuw verbinden met device mislukte"
 
commit 93bcd506293fb62b749fc1fae28d3cc1118891b1
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Jan 20 17:09:01 2010 +0000

    yum: Ensure we look in all update notices for a security update. Fixes rh#526279

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 3de23bc..91edcf4 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2403,12 +2403,14 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                     self.error(ERROR_INTERNAL_ERROR, _format_str(traceback.format_exc()))
 
                 # Get info about package in updates info
-                notice = md.get_notice((pkg.name, pkg.version, pkg.release))
-                if notice:
-                    status = self._get_status(notice)
-                    pkgfilter.add_custom(pkg, status)
-                else:
-                    pkgfilter.add_custom(pkg, INFO_NORMAL)
+                notices = md.get_applicable_notices(pkg.pkgtup)
+                status = INFO_NORMAL
+                if notices:
+                    for notice in notices:
+                        status = self._get_status(notice)
+                        if status == INFO_SECURITY:
+                            break
+                pkgfilter.add_custom(pkg, status)
 
         package_list = pkgfilter.post_process()
         self._show_package_list(package_list)
commit 0cdd5afa6f1d6c9982a3185313cee9d57131c967
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Jan 20 15:55:11 2010 +0000

    trivial: add brasero to the website example users

diff --git a/docs/html/img/users-brasero.png b/docs/html/img/users-brasero.png
new file mode 100644
index 0000000..7148d7c
Binary files /dev/null and b/docs/html/img/users-brasero.png differ
diff --git a/docs/html/pk-users.html b/docs/html/pk-users.html
index b578081..9d04731 100644
--- a/docs/html/pk-users.html
+++ b/docs/html/pk-users.html
@@ -249,6 +249,21 @@
   </p>
  </td>
 </tr>
+<tr>
+ <td>
+  <a href="http://projects.gnome.org/brasero/"><img src="img/users-brasero.png" alt=""/></a>
+ </td>
+ <td>
+  <h2>GNOME - Brasero</h2>
+  <p>
+   Brasero is a application to burn CD/DVD for the Gnome Desktop.
+   It is designed to be as simple as possible and has some unique features to enable users to create their discs easily and quickly.
+  </p>
+  <p>
+   Uses PackageKit to install missing gstreamer and burning backends (cdrdao,cdrtools,cdrkit and libburnia)
+  </p>
+ </td>
+</tr>
 <!--
 <tr>
  <td>
commit 46d04d92f6dcccbf0c04dd2a14fddfb75016a8e5
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Jan 19 17:40:44 2010 +0000

    yum: emit a warning when a developer tries to use autoremove

diff --git a/Makefile.am b/Makefile.am
index 2b08b5d..f20b779 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -90,7 +90,7 @@ distclean-local:
 ChangeLog:
 	@echo Creating $@
 	@if test -d "$(srcdir)/.git"; then \
-	  (GIT_DIR=$(top_srcdir)/.git ./missing --run git log PACKAGEKIT_0_3_X.. --stat -M -C --name-status  --date=short --no-color) | fmt --split-only > $@.tmp \
+	  (GIT_DIR=$(top_srcdir)/.git ./missing --run git log PACKAGEKIT_0_5_X.. --stat -M -C --name-status  --date=short --no-color) | fmt --split-only > $@.tmp \
 	  && mv -f $@.tmp $@ \
 	  || ($(RM) $@.tmp; \
 	      echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 3d6750d..3de23bc 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2124,6 +2124,9 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         self.percentage(0)
         self.status(STATUS_RUNNING)
 
+        if autoremove:
+            self.message(MESSAGE_PARAMETER_INVALID, "the yum backend does not support autoremove")
+
         txmbrs = []
         for package_id in package_ids:
             grp = self._is_meta_package(package_id)
commit af9ad19283e33704fa4ad1202e6e9055de0fc501
Author: Richard Hughes <richard at hughsie.com>
Date:   Mon Jan 18 10:53:45 2010 +0000

    trivial: add 'Since: foo' lines to public methods and properties in packagekit-glib2

diff --git a/lib/packagekit-glib2/pk-bitfield.c b/lib/packagekit-glib2/pk-bitfield.c
index cccd043..3580b7f 100644
--- a/lib/packagekit-glib2/pk-bitfield.c
+++ b/lib/packagekit-glib2/pk-bitfield.c
@@ -42,6 +42,8 @@
  * Finds elements in a list, but with priority going to the preceeding entry
  *
  * Return value: The return enumerated type, or -1 if none are found
+ *
+ * Since: 0.5.2
  **/
 gint
 pk_bitfield_contain_priority (PkBitfield values, gint value, ...)
@@ -78,6 +80,8 @@ pk_bitfield_contain_priority (PkBitfield values, gint value, ...)
  * @value: the values we want to add to the bitfield
  *
  * Return value: The return bitfield, or 0 if invalid
+ *
+ * Since: 0.5.2
  **/
 PkBitfield
 pk_bitfield_from_enums (gint value, ...)
@@ -110,6 +114,8 @@ pk_bitfield_from_enums (gint value, ...)
  * Converts a enumerated type bitfield to its text representation
  *
  * Return value: the enumerated constant value, e.g. "install-file;update-system"
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_role_bitfield_to_string (PkBitfield roles)
@@ -141,6 +147,8 @@ pk_role_bitfield_to_string (PkBitfield roles)
  * Converts text representation to its enumerated type bitfield
  *
  * Return value: The enumerated type values, or 0 for invalid
+ *
+ * Since: 0.5.2
  **/
 PkBitfield
 pk_role_bitfield_from_string (const gchar *roles)
@@ -178,6 +186,8 @@ out:
  * Converts a enumerated type bitfield to its text representation
  *
  * Return value: the enumerated constant value, e.g. "gnome;kde"
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_group_bitfield_to_string (PkBitfield groups)
@@ -209,6 +219,8 @@ pk_group_bitfield_to_string (PkBitfield groups)
  * Converts text representation to its enumerated type bitfield
  *
  * Return value: The enumerated type values, or 0 for invalid
+ *
+ * Since: 0.5.2
  **/
 PkBitfield
 pk_group_bitfield_from_string (const gchar *groups)
@@ -246,6 +258,8 @@ out:
  * Converts a enumerated type bitfield to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available;~gui"
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_filter_bitfield_to_string (PkBitfield filters)
@@ -281,6 +295,8 @@ pk_filter_bitfield_to_string (PkBitfield filters)
  * Converts text representation to its enumerated type bitfield, or 0 for invalid
  *
  * Return value: The enumerated type values
+ *
+ * Since: 0.5.2
  **/
 PkBitfield
 pk_filter_bitfield_from_string (const gchar *filters)
diff --git a/lib/packagekit-glib2/pk-catalog.c b/lib/packagekit-glib2/pk-catalog.c
index 1662de3..1964c6a 100644
--- a/lib/packagekit-glib2/pk-catalog.c
+++ b/lib/packagekit-glib2/pk-catalog.c
@@ -92,6 +92,8 @@ G_DEFINE_TYPE (PkCatalog, pk_catalog, G_TYPE_OBJECT)
  * pk_catalog_error_quark:
  *
  * Return value: Our personal error quark.
+ *
+ * Since: 0.5.3
  **/
 GQuark
 pk_catalog_error_quark (void)
@@ -471,6 +473,8 @@ pk_catalog_do_resolve (PkCatalogState *state)
  * @user_data: the data to pass to @callback
  *
  * Simulate the install of a catalog file.
+ *
+ * Since: 0.5.3
  **/
 void
 pk_catalog_lookup_async (PkCatalog *catalog, const gchar *filename, GCancellable *cancellable,
@@ -551,6 +555,8 @@ out:
  * Gets the result from the asynchronous function.
  *
  * Return value: the #GPtrArray of #PkPackage's, or %NULL. Free with g_ptr_array_unref()
+ *
+ * Since: 0.5.3
  **/
 GPtrArray *
 pk_catalog_lookup_finish (PkCatalog *catalog, GAsyncResult *res, GError **error)
@@ -632,6 +638,8 @@ pk_catalog_init (PkCatalog *catalog)
  * pk_catalog_new:
  *
  * Return value: A new catalog class instance.
+ *
+ * Since: 0.5.3
  **/
 PkCatalog *
 pk_catalog_new (void)
diff --git a/lib/packagekit-glib2/pk-category.c b/lib/packagekit-glib2/pk-category.c
index bdbfbc1..6dd0b68 100644
--- a/lib/packagekit-glib2/pk-category.c
+++ b/lib/packagekit-glib2/pk-category.c
@@ -145,6 +145,8 @@ pk_category_class_init (PkCategoryClass *klass)
 
 	/**
 	 * PkCategory:parent-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("parent-id", NULL, NULL,
 				     NULL,
@@ -153,6 +155,8 @@ pk_category_class_init (PkCategoryClass *klass)
 
 	/**
 	 * PkCategory:cat-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("cat-id", NULL, NULL,
 				     NULL,
@@ -161,6 +165,8 @@ pk_category_class_init (PkCategoryClass *klass)
 
 	/**
 	 * PkCategory:name:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("name", NULL, NULL,
 				     NULL,
@@ -169,6 +175,8 @@ pk_category_class_init (PkCategoryClass *klass)
 
 	/**
 	 * PkCategory:summary:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("summary", NULL, NULL,
 				     NULL,
@@ -177,6 +185,8 @@ pk_category_class_init (PkCategoryClass *klass)
 
 	/**
 	 * PkCategory:icon:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("icon", NULL, NULL,
 				     NULL,
@@ -217,6 +227,8 @@ pk_category_finalize (GObject *object)
  * pk_category_new:
  *
  * Return value: a new PkCategory object.
+ *
+ * Since: 0.5.4
  **/
 PkCategory *
 pk_category_new (void)
diff --git a/lib/packagekit-glib2/pk-client-sync.c b/lib/packagekit-glib2/pk-client-sync.c
index f07b25f..0563d4a 100644
--- a/lib/packagekit-glib2/pk-client-sync.c
+++ b/lib/packagekit-glib2/pk-client-sync.c
@@ -72,6 +72,8 @@ pk_client_generic_finish_sync (PkClient *client, GAsyncResult *res, PkClientHelp
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_resolve (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
@@ -120,6 +122,8 @@ pk_client_resolve (PkClient *client, PkBitfield filters, gchar **packages, GCanc
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.5
  **/
 PkResults *
 pk_client_search_names (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -169,6 +173,8 @@ pk_client_search_names (PkClient *client, PkBitfield filters, gchar **values, GC
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.5
  **/
 PkResults *
 pk_client_search_details (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -216,6 +222,8 @@ pk_client_search_details (PkClient *client, PkBitfield filters, gchar **values,
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.5
  **/
 PkResults *
 pk_client_search_groups (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -263,6 +271,8 @@ pk_client_search_groups (PkClient *client, PkBitfield filters, gchar **values, G
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.5
  **/
 PkResults *
 pk_client_search_files (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -310,6 +320,8 @@ pk_client_search_files (PkClient *client, PkBitfield filters, gchar **values, GC
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_details (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -357,6 +369,8 @@ pk_client_get_details (PkClient *client, gchar **package_ids, GCancellable *canc
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_update_detail (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -404,6 +418,8 @@ pk_client_get_update_detail (PkClient *client, gchar **package_ids, GCancellable
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_download_packages (PkClient *client, gchar **package_ids, const gchar *directory, GCancellable *cancellable,
@@ -450,6 +466,8 @@ pk_client_download_packages (PkClient *client, gchar **package_ids, const gchar
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_updates (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -496,6 +514,8 @@ pk_client_get_updates (PkClient *client, PkBitfield filters, GCancellable *cance
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_old_transactions (PkClient *client, guint number, GCancellable *cancellable,
@@ -547,6 +567,8 @@ pk_client_get_old_transactions (PkClient *client, guint number, GCancellable *ca
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_update_system (PkClient *client, gboolean only_trusted, GCancellable *cancellable,
@@ -595,6 +617,8 @@ pk_client_update_system (PkClient *client, gboolean only_trusted, GCancellable *
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_depends (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
@@ -641,6 +665,8 @@ pk_client_get_depends (PkClient *client, PkBitfield filters, gchar **package_ids
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_packages (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -689,6 +715,8 @@ pk_client_get_packages (PkClient *client, PkBitfield filters, GCancellable *canc
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_requires (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
@@ -739,6 +767,8 @@ pk_client_get_requires (PkClient *client, PkBitfield filters, gchar **package_id
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_what_provides (PkClient *client, PkBitfield filters, PkProvidesEnum provides, gchar **values, GCancellable *cancellable,
@@ -785,6 +815,8 @@ pk_client_what_provides (PkClient *client, PkBitfield filters, PkProvidesEnum pr
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_distro_upgrades (PkClient *client, GCancellable *cancellable,
@@ -831,6 +863,8 @@ pk_client_get_distro_upgrades (PkClient *client, GCancellable *cancellable,
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_files (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -876,6 +910,8 @@ pk_client_get_files (PkClient *client, gchar **package_ids, GCancellable *cancel
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_categories (PkClient *client, GCancellable *cancellable,
@@ -926,6 +962,8 @@ pk_client_get_categories (PkClient *client, GCancellable *cancellable,
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_remove_packages (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
@@ -975,6 +1013,8 @@ pk_client_remove_packages (PkClient *client, gchar **package_ids, gboolean allow
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_refresh_cache (PkClient *client, gboolean force, GCancellable *cancellable,
@@ -1022,6 +1062,8 @@ pk_client_refresh_cache (PkClient *client, gboolean force, GCancellable *cancell
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_install_packages (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
@@ -1070,6 +1112,8 @@ pk_client_install_packages (PkClient *client, gboolean only_trusted, gchar **pac
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_install_signature (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id, GCancellable *cancellable,
@@ -1117,6 +1161,8 @@ pk_client_install_signature (PkClient *client, PkSigTypeEnum type, const gchar *
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_update_packages (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
@@ -1165,6 +1211,8 @@ pk_client_update_packages (PkClient *client, gboolean only_trusted, gchar **pack
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_install_files (PkClient *client, gboolean only_trusted, gchar **files, GCancellable *cancellable,
@@ -1211,6 +1259,8 @@ pk_client_install_files (PkClient *client, gboolean only_trusted, gchar **files,
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_accept_eula (PkClient *client, const gchar *eula_id, GCancellable *cancellable,
@@ -1257,6 +1307,8 @@ pk_client_accept_eula (PkClient *client, const gchar *eula_id, GCancellable *can
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_rollback (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
@@ -1303,6 +1355,8 @@ pk_client_rollback (PkClient *client, const gchar *transaction_id, GCancellable
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_get_repo_list (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -1350,6 +1404,8 @@ pk_client_get_repo_list (PkClient *client, PkBitfield filters, GCancellable *can
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_repo_enable (PkClient *client, const gchar *repo_id, gboolean enabled, GCancellable *cancellable,
@@ -1399,6 +1455,8 @@ pk_client_repo_enable (PkClient *client, const gchar *repo_id, gboolean enabled,
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_repo_set_data (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value, GCancellable *cancellable,
@@ -1445,6 +1503,8 @@ pk_client_repo_set_data (PkClient *client, const gchar *repo_id, const gchar *pa
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_simulate_install_files (PkClient *client, gchar **files, GCancellable *cancellable,
@@ -1492,6 +1552,8 @@ pk_client_simulate_install_files (PkClient *client, gchar **files, GCancellable
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -1538,6 +1600,8 @@ pk_client_simulate_install_packages (PkClient *client, gchar **package_ids, GCan
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -1584,6 +1648,8 @@ pk_client_simulate_remove_packages (PkClient *client, gchar **package_ids, GCanc
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -1630,6 +1696,8 @@ pk_client_simulate_update_packages (PkClient *client, gchar **package_ids, GCanc
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_client_adopt (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
@@ -1679,18 +1747,18 @@ pk_client_get_progress_finish_sync (PkClient *client, GAsyncResult *res, PkClien
 /**
  * pk_client_get_progress:
  * @client: a valid #PkClient instance
- * @package_ids: a null terminated array of package_id structures such as "hal;0.0.1;i386;fedora"
+ * @transaction_id: The transaction id
  * @cancellable: a #GCancellable or %NULL
- * @progress_callback: 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
  *
- * Adopt a transaction.
+ * Get the progress of a transaction.
  *
  * Warning: this function is synchronous, and will block. Do not use it in GUI
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkProgress *
 pk_client_get_progress (PkClient *client, const gchar *transaction_id, GCancellable *cancellable, GError **error)
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
index f2c6a41..13dd1b2 100644
--- a/lib/packagekit-glib2/pk-client.c
+++ b/lib/packagekit-glib2/pk-client.c
@@ -129,6 +129,8 @@ static void pk_client_disconnect_proxy (DBusGProxy *proxy, PkClientState *state)
  * pk_client_error_quark:
  *
  * Return value: Our personal error quark.
+ *
+ * Since: 0.5.2
  **/
 GQuark
 pk_client_error_quark (void)
@@ -1864,6 +1866,8 @@ 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()
+ *
+ * Since: 0.5.2
  **/
 PkResults *
 pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
@@ -1895,6 +1899,8 @@ pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
  * Resolve a package name into a %package_id. This can return installed and
  * available packages and allows you find out if a package is installed locally
  * or is available in a repository.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages, GCancellable *cancellable,
@@ -1943,6 +1949,8 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
  *
  * Search all the locally installed files and remote repositories for a package
  * that matches a specific name.
+ *
+ * Since: 0.5.5
  **/
 void
 pk_client_search_names_async (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -1992,6 +2000,8 @@ pk_client_search_names_async (PkClient *client, PkBitfield filters, gchar **valu
  * Search all detailed summary information to try and find a keyword.
  * Think of this as pk_client_search_names(), but trying much harder and
  * taking longer.
+ *
+ * Since: 0.5.5
  **/
 void
 pk_client_search_details_async (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -2039,6 +2049,8 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, gchar **va
  * @user_data: the data to pass to @callback_ready
  *
  * Return all packages in a specific group.
+ *
+ * Since: 0.5.5
  **/
 void
 pk_client_search_groups_async (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -2086,6 +2098,8 @@ pk_client_search_groups_async (PkClient *client, PkBitfield filters, gchar **val
  * @user_data: the data to pass to @callback_ready
  *
  * Search for packages that provide a specific file.
+ *
+ * Since: 0.5.5
  **/
 void
 pk_client_search_files_async (PkClient *client, PkBitfield filters, gchar **values, GCancellable *cancellable,
@@ -2133,6 +2147,8 @@ pk_client_search_files_async (PkClient *client, PkBitfield filters, gchar **valu
  *
  * Get details of a package, so more information can be obtained for GUI
  * or command line tools.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -2180,6 +2196,8 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
  *
  * Get details about the specific update, for instance any CVE urls and
  * severity information.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -2227,6 +2245,8 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
  * @user_data: the data to pass to @callback_ready
  *
  * Downloads package files to a specified location.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_download_packages_async (PkClient *client, gchar **package_ids, const gchar *directory, GCancellable *cancellable,
@@ -2274,6 +2294,8 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
  * @user_data: the data to pass to @callback_ready
  *
  * Get a list of all the packages that can be updated for all repositories.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -2319,6 +2341,8 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
  * @user_data: the data to pass to @callback_ready
  *
  * Get the old transaction list, mainly used for the rollback viewer.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellable *cancellable,
@@ -2369,6 +2393,8 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
  * - pk_client_repo_disable()
  * - pk_client_update_system()
  * - pk_client_repo_enable()
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancellable *cancellable,
@@ -2416,6 +2442,8 @@ pk_client_update_system_async (PkClient *client, gboolean only_trusted, GCancell
  * @user_data: the data to pass to @callback_ready
  *
  * Get the packages that depend this one, i.e. child->parent.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
@@ -2464,6 +2492,8 @@ pk_client_get_depends_async (PkClient *client, PkBitfield filters, gchar **packa
  * @user_data: the data to pass to @callback_ready
  *
  * Get the list of packages from the backend
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -2511,6 +2541,8 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
  * @user_data: the data to pass to @callback_ready
  *
  * Get the packages that require this one, i.e. parent->child.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **package_ids, gboolean recursive, GCancellable *cancellable,
@@ -2563,6 +2595,8 @@ pk_client_get_requires_async (PkClient *client, PkBitfield filters, gchar **pack
  * This should return packages that provide the supplied attributes.
  * This method is useful for finding out what package(s) provide a modalias
  * or GStreamer codec string.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesEnum provides, gchar **values, GCancellable *cancellable,
@@ -2610,6 +2644,8 @@ pk_client_what_provides_async (PkClient *client, PkBitfield filters, PkProvidesE
  *
  * This method should return a list of distribution upgrades that are available.
  * It should not return updates, only major upgrades.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable,
@@ -2654,6 +2690,8 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
  * @user_data: the data to pass to @callback_ready
  *
  * Get the file list (i.e. a list of files installed) for the specified package.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -2699,6 +2737,8 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
  * @user_data: the data to pass to @callback_ready
  *
  * Get a list of all categories supported.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
@@ -2747,6 +2787,8 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
  * Remove a package (optionally with dependancies) from the system.
  * If %allow_deps is set to %FALSE, and other packages would have to be removed,
  * then the transaction would fail.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
@@ -2798,6 +2840,8 @@ pk_client_remove_packages_async (PkClient *client, gchar **package_ids, gboolean
  * package lists are up to date.
  * This action may take a few minutes and should be done when the session and
  * system are idle.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *cancellable,
@@ -2844,6 +2888,8 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
  * @user_data: the data to pass to @callback_ready
  *
  * Install a package of the newest and most correct version.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
@@ -2893,6 +2939,8 @@ pk_client_install_packages_async (PkClient *client, gboolean only_trusted, gchar
  * @user_data: the data to pass to @callback_ready
  *
  * Install a software source signature of the newest and most correct version.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const gchar *key_id, const gchar *package_id, GCancellable *cancellable,
@@ -2941,6 +2989,8 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
  * @user_data: the data to pass to @callback_ready
  *
  * Update specific packages to the newest available versions.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_update_packages_async (PkClient *client, gboolean only_trusted, gchar **package_ids, GCancellable *cancellable,
@@ -3074,6 +3124,8 @@ pk_client_copy_non_native_then_get_tid (PkClientState *state)
  *
  * Install a file locally, and get the deps from the repositories.
  * This is useful for double clicking on a .rpm or .deb file.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_install_files_async (PkClient *client, gboolean only_trusted, gchar **files, GCancellable *cancellable,
@@ -3139,6 +3191,8 @@ out:
  * @user_data: the data to pass to @callback_ready
  *
  * We may want to agree to a EULA dialog if one is presented.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellable *cancellable,
@@ -3184,6 +3238,8 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
  * @user_data: the data to pass to @callback_ready
  *
  * We may want to agree to a EULA dialog if one is presented.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_rollback_async (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
@@ -3229,6 +3285,8 @@ pk_client_rollback_async (PkClient *client, const gchar *transaction_id, GCancel
  * @user_data: the data to pass to @callback_ready
  *
  * Get the list of repositories installed on the system.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellable *cancellable,
@@ -3275,6 +3333,8 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
  * @user_data: the data to pass to @callback_ready
  *
  * Enable or disable the repository.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean enabled, GCancellable *cancellable,
@@ -3324,6 +3384,8 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
  *
  * We may want to set a repository parameter.
  * NOTE: this is free text, and is left to the backend to define a format.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gchar *parameter, const gchar *value, GCancellable *cancellable,
@@ -3371,6 +3433,8 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
  * @user_data: the data to pass to @callback_ready
  *
  * Simulate an installation of files.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_simulate_install_files_async (PkClient *client, gchar **files, GCancellable *cancellable,
@@ -3436,6 +3500,8 @@ out:
  * @user_data: the data to pass to @callback_ready
  *
  * Simulate an installation of packages.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -3482,6 +3548,8 @@ pk_client_simulate_install_packages_async (PkClient *client, gchar **package_ids
  * @user_data: the data to pass to @callback_ready
  *
  * Simulate a removal of packages.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -3528,6 +3596,8 @@ pk_client_simulate_remove_packages_async (PkClient *client, gchar **package_ids,
  * @user_data: the data to pass to @callback_ready
  *
  * Simulate an update of packages.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_simulate_update_packages_async (PkClient *client, gchar **package_ids, GCancellable *cancellable,
@@ -3622,6 +3692,8 @@ pk_client_adopt_get_properties_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkCl
  * @user_data: the data to pass to @callback_ready
  *
  * Adopt a transaction which allows the caller to monitor the state or cancel it.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
@@ -3701,6 +3773,8 @@ pk_client_adopt_async (PkClient *client, const gchar *transaction_id, GCancellab
  * Gets the result from the asynchronous function.
  *
  * Return value: the #PkProgress, or %NULL. Free with g_object_unref()
+ *
+ * Since: 0.5.2
  **/
 PkProgress *
 pk_client_get_progress_finish (PkClient *client, GAsyncResult *res, GError **error)
@@ -3799,6 +3873,8 @@ pk_client_get_progress_cb (DBusGProxy *proxy, DBusGProxyCall *call, PkClientStat
  * @user_data: the data to pass to @callback_ready
  *
  * Find the current state of a transaction.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_client_get_progress_async (PkClient *client, const gchar *transaction_id, GCancellable *cancellable,
@@ -3897,6 +3973,8 @@ pk_client_class_init (PkClientClass *klass)
 
 	/**
 	 * PkClient:locale:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_string ("locale", NULL, NULL,
 				     NULL,
@@ -3905,6 +3983,8 @@ pk_client_class_init (PkClientClass *klass)
 
 	/**
 	 * PkClient:background:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_boolean ("background", NULL, NULL,
 				      FALSE,
@@ -3913,6 +3993,8 @@ pk_client_class_init (PkClientClass *klass)
 
 	/**
 	 * PkClient:interactive:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_boolean ("interactive", NULL, NULL,
 				      TRUE,
@@ -3921,6 +4003,8 @@ pk_client_class_init (PkClientClass *klass)
 
 	/**
 	 * PkClient:idle:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_boolean ("idle", NULL, "if there are no transactions in progress on this client",
 				      TRUE,
@@ -4048,6 +4132,8 @@ pk_client_finalize (GObject *object)
  * frontends easy.
  *
  * Return value: A new %PkClient instance
+ *
+ * Since: 0.5.2
  **/
 PkClient *
 pk_client_new (void)
diff --git a/lib/packagekit-glib2/pk-common.c b/lib/packagekit-glib2/pk-common.c
index 8056a93..a6a5adf 100644
--- a/lib/packagekit-glib2/pk-common.c
+++ b/lib/packagekit-glib2/pk-common.c
@@ -44,6 +44,8 @@
  * pk_iso8601_present:
  *
  * Return value: The current iso8601 date and time
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_iso8601_present (void)
@@ -63,6 +65,8 @@ pk_iso8601_present (void)
  * @date: a %GDate to convert
  *
  * Return value: If valid then a new ISO8601 date, else NULL
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_iso8601_from_date (const GDate *date)
@@ -83,6 +87,8 @@ pk_iso8601_from_date (const GDate *date)
  * @iso_date: The ISO8601 date to convert
  *
  * Return value: If valid then a new %GDate, else NULL
+ *
+ * Since: 0.5.2
  **/
 GDate *
 pk_iso8601_to_date (const gchar *iso_date)
@@ -136,6 +142,8 @@ out:
  * The data in the GPtrArray is copied.
  *
  * Return value: the string array, or %NULL if invalid
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_ptr_array_to_strv (GPtrArray *array)
diff --git a/lib/packagekit-glib2/pk-control-sync.c b/lib/packagekit-glib2/pk-control-sync.c
index a69c147..3bd4a39 100644
--- a/lib/packagekit-glib2/pk-control-sync.c
+++ b/lib/packagekit-glib2/pk-control-sync.c
@@ -62,6 +62,8 @@ pk_control_get_properties_cb (PkControl *control, GAsyncResult *res, PkControlHe
  * applications.
  *
  * Return value: %TRUE if the properties were set correctly
+ *
+ * Since: 0.5.3
  **/
 gboolean
 pk_control_get_properties (PkControl *control, GCancellable *cancellable, GError **error)
@@ -112,6 +114,8 @@ pk_control_get_transaction_list_cb (PkControl *control, GAsyncResult *res, PkCon
  * applications.
  *
  * Return value: The list of transaction id's, or %NULL, free with g_strfreev()
+ *
+ * Since: 0.5.3
  **/
 gchar **
 pk_control_get_transaction_list (PkControl *control, GCancellable *cancellable, GError **error)
diff --git a/lib/packagekit-glib2/pk-control.c b/lib/packagekit-glib2/pk-control.c
index 5fb100e..1a00905 100644
--- a/lib/packagekit-glib2/pk-control.c
+++ b/lib/packagekit-glib2/pk-control.c
@@ -132,6 +132,8 @@ typedef struct {
  * We are a GObject that sets errors
  *
  * Return value: Our personal error quark.
+ *
+ * Since: 0.5.2
  **/
 GQuark
 pk_control_error_quark (void)
@@ -264,6 +266,8 @@ pk_control_call_destroy_cb (PkControlState *state)
  * @user_data: the data to pass to @callback
  *
  * Gets a transacton ID from the daemon.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -308,6 +312,8 @@ pk_control_get_tid_async (PkControl *control, GCancellable *cancellable, GAsyncR
  * Gets the result from the asynchronous function.
  *
  * Return value: the ID, or %NULL if unset, free with g_free()
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_control_get_tid_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -409,6 +415,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Gets the debugging state from the daemon.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_get_daemon_state_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -453,6 +461,8 @@ pk_control_get_daemon_state_async (PkControl *control, GCancellable *cancellable
  * Gets the result from the asynchronous function.
  *
  * Return value: the ID, or %NULL if unset, free with g_free()
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_control_get_daemon_state_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -552,6 +562,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Set a proxy on the PK daemon
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const gchar *proxy_ftp, GCancellable *cancellable,
@@ -599,6 +611,8 @@ pk_control_set_proxy_async (PkControl *control, const gchar *proxy_http, const g
  * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE if we set the proxy successfully
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_control_set_proxy_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -700,6 +714,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Gets the transactions currently running in the daemon.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -744,6 +760,8 @@ pk_control_get_transaction_list_async (PkControl *control, GCancellable *cancell
  * Gets the result from the asynchronous function.
  *
  * Return value: A GStrv list of transaction ID's, free with g_strfreev()
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_control_get_transaction_list_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -852,6 +870,8 @@ out:
  *
  * We may want to know how long it has been since we refreshed the cache or
  * retrieved the update list.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -899,6 +919,8 @@ pk_control_get_time_since_action_async (PkControl *control, PkRoleEnum role, GCa
  * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE if the daemon serviced the request
+ *
+ * Since: 0.5.2
  **/
 guint
 pk_control_get_time_since_action_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1008,6 +1030,8 @@ out:
  *
  * We may want to know before we run a method if we are going to be denied,
  * accepted or challenged for authentication.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
@@ -1054,6 +1078,8 @@ pk_control_can_authorize_async (PkControl *control, const gchar *action_id, GCan
  * Gets the result from the asynchronous function.
  *
  * Return value: the %PkAuthorizeEnum or %PK_AUTHORIZE_ENUM_UNKNOWN if the method failed
+ *
+ * Since: 0.5.2
  **/
 PkAuthorizeEnum
 pk_control_can_authorize_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1409,6 +1435,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Gets global properties from the daemon.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_control_get_properties_async (PkControl *control, GCancellable *cancellable,
@@ -1455,6 +1483,8 @@ pk_control_get_properties_async (PkControl *control, GCancellable *cancellable,
  * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE if we set the proxy successfully
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_control_get_properties_finish (PkControl *control, GAsyncResult *res, GError **error)
@@ -1853,6 +1883,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:version-major:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("version-major", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -1861,6 +1893,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:version-minor:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("version-minor", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -1869,6 +1903,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:version-micro:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("version-micro", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -1877,6 +1913,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:backend-name:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_string ("backend-name", NULL, NULL,
 				     NULL,
@@ -1885,6 +1923,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:backend-description:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_string ("backend-description", NULL, NULL,
 				     NULL,
@@ -1893,6 +1933,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:backend-author:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_string ("backend-author", NULL, NULL,
 				     NULL,
@@ -1901,6 +1943,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:roles:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint64 ("roles", NULL, NULL,
 				     0, G_MAXUINT64, 0,
@@ -1909,6 +1953,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:groups:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint64 ("groups", NULL, NULL,
 				     0, G_MAXUINT64, 0,
@@ -1917,6 +1963,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:filters:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint64 ("filters", NULL, NULL,
 				     0, G_MAXUINT64, 0,
@@ -1925,6 +1973,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:mime-types:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_string ("mime-types", NULL, NULL,
 				     NULL,
@@ -1933,6 +1983,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:locked:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_boolean ("locked", NULL, NULL,
 				      FALSE,
@@ -1941,6 +1993,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:network-state:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_uint ("network-state", NULL, NULL,
 				   0, G_MAXUINT, PK_NETWORK_ENUM_LAST,
@@ -1949,6 +2003,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:distro-id:
+	 *
+	 * Since: 0.5.5
 	 */
 	pspec = g_param_spec_string ("distro-id", NULL, NULL,
 				     NULL,
@@ -1957,6 +2013,8 @@ pk_control_class_init (PkControlClass *klass)
 
 	/**
 	 * PkControl:connected:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_boolean ("connected", NULL, NULL,
 				      FALSE,
@@ -2169,6 +2227,8 @@ pk_control_finalize (GObject *object)
  * pk_control_new:
  *
  * Return value: a new PkControl object.
+ *
+ * Since: 0.5.2
  **/
 PkControl *
 pk_control_new (void)
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index 3330cc4..329798d 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -103,6 +103,8 @@ pk_desktop_sqlite_package_cb (void *data, gint argc, gchar **argv, gchar **col_n
  * in the main menu or not.
  *
  * Return value: string array of results, free with g_ptr_array_unref()
+ *
+ * Since: 0.5.3
  **/
 GPtrArray *
 pk_desktop_get_files_for_package (PkDesktop *desktop, const gchar *package, GError **error)
@@ -144,6 +146,8 @@ out:
  * i.e are an application
  *
  * Return value: string array of results, free with g_ptr_array_unref()
+ *
+ * Since: 0.5.3
  **/
 GPtrArray *
 pk_desktop_get_shown_for_package (PkDesktop *desktop, const gchar *package, GError **error)
@@ -184,6 +188,8 @@ out:
  * Returns the package name that owns the desktop file. Fast.
  *
  * Return value: package name, or %NULL
+ *
+ * Since: 0.5.3
  **/
 gchar *
 pk_desktop_get_package_for_file (PkDesktop *desktop, const gchar *filename, GError **error)
@@ -225,6 +231,8 @@ out:
  * @desktop: a valid #PkDesktop instance
  *
  * Return value: %TRUE if opened correctly
+ *
+ * Since: 0.5.3
  **/
 gboolean
 pk_desktop_open_database (PkDesktop *desktop, GError **error)
@@ -300,6 +308,8 @@ pk_desktop_finalize (GObject *object)
 
 /**
  * pk_desktop_new:
+ *
+ * Since: 0.5.3
  **/
 PkDesktop *
 pk_desktop_new (void)
diff --git a/lib/packagekit-glib2/pk-details.c b/lib/packagekit-glib2/pk-details.c
index 3be5759..7baed79 100644
--- a/lib/packagekit-glib2/pk-details.c
+++ b/lib/packagekit-glib2/pk-details.c
@@ -155,6 +155,8 @@ pk_details_class_init (PkDetailsClass *klass)
 
 	/**
 	 * PkDetails:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
@@ -163,6 +165,8 @@ pk_details_class_init (PkDetailsClass *klass)
 
 	/**
 	 * PkDetails:license:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("license", NULL, NULL,
 				     NULL,
@@ -171,6 +175,8 @@ pk_details_class_init (PkDetailsClass *klass)
 
 	/**
 	 * PkDetails:group:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("group", NULL, NULL,
 				   0, G_MAXUINT, PK_GROUP_ENUM_UNKNOWN,
@@ -179,6 +185,8 @@ pk_details_class_init (PkDetailsClass *klass)
 
 	/**
 	 * PkDetails:description:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("description", NULL, NULL,
 				     NULL,
@@ -187,6 +195,8 @@ pk_details_class_init (PkDetailsClass *klass)
 
 	/**
 	 * PkDetails:url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("url", NULL, NULL,
 				     NULL,
@@ -195,6 +205,8 @@ pk_details_class_init (PkDetailsClass *klass)
 
 	/**
 	 * PkDetails:size:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint64 ("size", NULL, NULL,
 				     0, G_MAXUINT64, 0,
@@ -234,6 +246,8 @@ pk_details_finalize (GObject *object)
  * pk_details_new:
  *
  * Return value: a new PkDetails object.
+ *
+ * Since: 0.5.4
  **/
 PkDetails *
 pk_details_new (void)
diff --git a/lib/packagekit-glib2/pk-distro-upgrade.c b/lib/packagekit-glib2/pk-distro-upgrade.c
index 7f56762..18cb483 100644
--- a/lib/packagekit-glib2/pk-distro-upgrade.c
+++ b/lib/packagekit-glib2/pk-distro-upgrade.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-distro_upgrade
+ * SECTION:pk-distro-upgrade
  * @short_description: DistroUpgrade object
  *
  * This GObject represents a distro_upgrade from a transaction.
@@ -129,6 +129,8 @@ pk_distro_upgrade_class_init (PkDistroUpgradeClass *klass)
 
 	/**
 	 * PkDistroUpgrade:state:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("state", NULL, NULL,
 				   0, G_MAXUINT, PK_DISTRO_UPGRADE_ENUM_UNKNOWN,
@@ -137,6 +139,8 @@ pk_distro_upgrade_class_init (PkDistroUpgradeClass *klass)
 
 	/**
 	 * PkDistroUpgrade:name:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("name", NULL, NULL,
 				     NULL,
@@ -145,6 +149,8 @@ pk_distro_upgrade_class_init (PkDistroUpgradeClass *klass)
 
 	/**
 	 * PkDistroUpgrade:summary:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("summary", NULL, NULL,
 				     NULL,
@@ -182,6 +188,8 @@ pk_distro_upgrade_finalize (GObject *object)
  * pk_distro_upgrade_new:
  *
  * Return value: a new PkDistroUpgrade object.
+ *
+ * Since: 0.5.4
  **/
 PkDistroUpgrade *
 pk_distro_upgrade_new (void)
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c
index 9478bd7..158e65a 100644
--- a/lib/packagekit-glib2/pk-enum.c
+++ b/lib/packagekit-glib2/pk-enum.c
@@ -642,6 +642,8 @@ pk_sig_type_enum_from_string (const gchar *sig_type)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_sig_type_enum_to_string (PkSigTypeEnum sig_type)
@@ -656,7 +658,9 @@ pk_sig_type_enum_to_string (PkSigTypeEnum sig_type)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_DISTRO_UPGRADE_ENUM_STABLE
- */
+ *
+ * Since: 0.5.0
+ **/
 PkDistroUpgradeEnum
 pk_distro_upgrade_enum_from_string (const gchar *upgrade)
 {
@@ -670,6 +674,8 @@ pk_distro_upgrade_enum_from_string (const gchar *upgrade)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "stable"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_distro_upgrade_enum_to_string (PkDistroUpgradeEnum upgrade)
@@ -684,7 +690,9 @@ pk_distro_upgrade_enum_to_string (PkDistroUpgradeEnum upgrade)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_PROVIDES_ENUM_MODALIAS
- */
+ *
+ * Since: 0.5.0
+ **/
 PkProvidesEnum
 pk_provides_enum_from_string (const gchar *provides)
 {
@@ -698,6 +706,8 @@ pk_provides_enum_from_string (const gchar *provides)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "codec"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_provides_enum_to_string (PkProvidesEnum provides)
@@ -712,7 +722,9 @@ pk_provides_enum_to_string (PkProvidesEnum provides)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
- */
+ *
+ * Since: 0.5.0
+ **/
 PkInfoEnum
 pk_info_enum_from_string (const gchar *info)
 {
@@ -726,6 +738,8 @@ pk_info_enum_from_string (const gchar *info)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_info_enum_to_string (PkInfoEnum info)
@@ -740,7 +754,9 @@ pk_info_enum_to_string (PkInfoEnum info)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
- */
+ *
+ * Since: 0.5.0
+ **/
 PkExitEnum
 pk_exit_enum_from_string (const gchar *exit_text)
 {
@@ -754,6 +770,8 @@ pk_exit_enum_from_string (const gchar *exit_text)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_exit_enum_to_string (PkExitEnum exit_enum)
@@ -768,7 +786,9 @@ pk_exit_enum_to_string (PkExitEnum exit_enum)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
- */
+ *
+ * Since: 0.5.0
+ **/
 PkNetworkEnum
 pk_network_enum_from_string (const gchar *network)
 {
@@ -782,6 +802,8 @@ pk_network_enum_from_string (const gchar *network)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_network_enum_to_string (PkNetworkEnum network)
@@ -796,6 +818,8 @@ pk_network_enum_to_string (PkNetworkEnum network)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkStatusEnum
 pk_status_enum_from_string (const gchar *status)
@@ -810,6 +834,8 @@ pk_status_enum_from_string (const gchar *status)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_status_enum_to_string (PkStatusEnum status)
@@ -824,6 +850,8 @@ pk_status_enum_to_string (PkStatusEnum status)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkRoleEnum
 pk_role_enum_from_string (const gchar *role)
@@ -838,6 +866,8 @@ pk_role_enum_from_string (const gchar *role)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_role_enum_to_string (PkRoleEnum role)
@@ -852,6 +882,8 @@ pk_role_enum_to_string (PkRoleEnum role)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkErrorEnum
 pk_error_enum_from_string (const gchar *code)
@@ -866,6 +898,8 @@ pk_error_enum_from_string (const gchar *code)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_error_enum_to_string (PkErrorEnum code)
@@ -880,6 +914,8 @@ pk_error_enum_to_string (PkErrorEnum code)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkRestartEnum
 pk_restart_enum_from_string (const gchar *restart)
@@ -894,6 +930,8 @@ pk_restart_enum_from_string (const gchar *restart)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_restart_enum_to_string (PkRestartEnum restart)
@@ -908,6 +946,8 @@ pk_restart_enum_to_string (PkRestartEnum restart)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkMessageEnum
 pk_message_enum_from_string (const gchar *message)
@@ -922,6 +962,8 @@ pk_message_enum_from_string (const gchar *message)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_message_enum_to_string (PkMessageEnum message)
@@ -936,6 +978,8 @@ pk_message_enum_to_string (PkMessageEnum message)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkGroupEnum
 pk_group_enum_from_string (const gchar *group)
@@ -950,6 +994,8 @@ pk_group_enum_from_string (const gchar *group)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_group_enum_to_string (PkGroupEnum group)
@@ -964,6 +1010,8 @@ pk_group_enum_to_string (PkGroupEnum group)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. %PK_UPDATE_STATE_ENUM_STABLE
+ *
+ * Since: 0.5.0
  **/
 PkUpdateStateEnum
 pk_update_state_enum_from_string (const gchar *update_state)
@@ -978,6 +1026,8 @@ pk_update_state_enum_from_string (const gchar *update_state)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "testing"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_update_state_enum_to_string (PkUpdateStateEnum update_state)
@@ -992,6 +1042,8 @@ pk_update_state_enum_to_string (PkUpdateStateEnum update_state)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkFilterEnum
 pk_filter_enum_from_string (const gchar *filter)
@@ -1006,6 +1058,8 @@ pk_filter_enum_from_string (const gchar *filter)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_filter_enum_to_string (PkFilterEnum filter)
@@ -1020,6 +1074,8 @@ pk_filter_enum_to_string (PkFilterEnum filter)
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_SIGTYPE_ENUM_GPG
+ *
+ * Since: 0.5.0
  **/
 PkLicenseEnum
 pk_license_enum_from_string (const gchar *license)
@@ -1034,6 +1090,8 @@ pk_license_enum_from_string (const gchar *license)
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "available"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_license_enum_to_string (PkLicenseEnum license)
@@ -1043,11 +1101,13 @@ pk_license_enum_to_string (PkLicenseEnum license)
 
 /**
  * pk_media_type_enum_from_string:
- * @code: Text describing the enumerated type
+ * @media_type: Text describing the enumerated type
  *
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_MEDIA_TYPE_ENUM_CD
+ *
+ * Since: 0.5.0
  **/
 PkMediaTypeEnum
 pk_media_type_enum_from_string (const gchar *media_type)
@@ -1057,11 +1117,13 @@ pk_media_type_enum_from_string (const gchar *media_type)
 
 /**
  * pk_media_type_enum_to_string:
- * @code: The enumerated type value
+ * @media_type: The enumerated type value
  *
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "dvd"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_media_type_enum_to_string (PkMediaTypeEnum media_type)
@@ -1071,11 +1133,13 @@ pk_media_type_enum_to_string (PkMediaTypeEnum media_type)
 
 /**
  * pk_authorize_type_enum_from_string:
- * @code: Text describing the enumerated type
+ * @authorize_type: Text describing the enumerated type
  *
  * Converts a text enumerated type to its unsigned integer representation
  *
  * Return value: the enumerated constant value, e.g. PK_AUTHORIZE_ENUM_YES
+ *
+ * Since: 0.5.0
  **/
 PkAuthorizeEnum
 pk_authorize_type_enum_from_string (const gchar *authorize_type)
@@ -1085,11 +1149,13 @@ pk_authorize_type_enum_from_string (const gchar *authorize_type)
 
 /**
  * pk_authorize_type_enum_to_string:
- * @code: The enumerated type value
+ * @authorize_type: The enumerated type value
  *
  * Converts a enumerated type to its text representation
  *
  * Return value: the enumerated constant value, e.g. "yes"
+ *
+ * Since: 0.5.0
  **/
 const gchar *
 pk_authorize_type_enum_to_string (PkAuthorizeEnum authorize_type)
diff --git a/lib/packagekit-glib2/pk-error.c b/lib/packagekit-glib2/pk-error.c
index e467522..c64252f 100644
--- a/lib/packagekit-glib2/pk-error.c
+++ b/lib/packagekit-glib2/pk-error.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-error_code
+ * SECTION:pk-error
  * @short_description: ErrorCode object
  *
  * This GObject represents a error_code from a transaction.
@@ -108,6 +108,8 @@ pk_error_set_property (GObject *object, guint prop_id, const GValue *value, GPar
 
 /**
  * pk_error_get_code:
+ *
+ * Since: 0.5.5
  **/
 PkErrorEnum
 pk_error_get_code (PkError *error_code)
@@ -118,6 +120,8 @@ pk_error_get_code (PkError *error_code)
 
 /**
  * pk_error_get_details:
+ *
+ * Since: 0.5.5
  **/
 const gchar *
 pk_error_get_details (PkError *error_code)
@@ -140,6 +144,8 @@ pk_error_class_init (PkErrorClass *klass)
 
 	/**
 	 * PkError:code:
+	 *
+	 * Since: 0.5.5
 	 */
 	pspec = g_param_spec_uint ("code", NULL, NULL,
 				   0, G_MAXUINT, PK_ERROR_ENUM_UNKNOWN,
@@ -148,6 +154,8 @@ pk_error_class_init (PkErrorClass *klass)
 
 	/**
 	 * PkError:details:
+	 *
+	 * Since: 0.5.5
 	 */
 	pspec = g_param_spec_string ("details", NULL, NULL,
 				     NULL,
@@ -184,6 +192,8 @@ pk_error_finalize (GObject *object)
  * pk_error_new:
  *
  * Return value: a new PkError object.
+ *
+ * Since: 0.5.5
  **/
 PkError *
 pk_error_new (void)
diff --git a/lib/packagekit-glib2/pk-eula-required.c b/lib/packagekit-glib2/pk-eula-required.c
index 1a1f2af..518aeee 100644
--- a/lib/packagekit-glib2/pk-eula-required.c
+++ b/lib/packagekit-glib2/pk-eula-required.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-eula_required
+ * SECTION:pk-eula-required
  * @short_description: EulaRequired object
  *
  * This GObject represents a eula_required from a transaction.
@@ -138,6 +138,8 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 
 	/**
 	 * PkEulaRequired:eula-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("eula-id", NULL, NULL,
 				     NULL,
@@ -146,6 +148,8 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 
 	/**
 	 * PkEulaRequired:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
@@ -154,6 +158,8 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 
 	/**
 	 * PkEulaRequired:vendor-name:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("vendor-name", NULL, NULL,
 				     NULL,
@@ -162,6 +168,8 @@ pk_eula_required_class_init (PkEulaRequiredClass *klass)
 
 	/**
 	 * PkEulaRequired:license-agreement:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("license-agreement", NULL, NULL,
 				     NULL,
@@ -201,6 +209,8 @@ pk_eula_required_finalize (GObject *object)
  * pk_eula_required_new:
  *
  * Return value: a new PkEulaRequired object.
+ *
+ * Since: 0.5.4
  **/
 PkEulaRequired *
 pk_eula_required_new (void)
diff --git a/lib/packagekit-glib2/pk-files.c b/lib/packagekit-glib2/pk-files.c
index 8082181..ebf4a2f 100644
--- a/lib/packagekit-glib2/pk-files.c
+++ b/lib/packagekit-glib2/pk-files.c
@@ -120,6 +120,8 @@ pk_files_class_init (PkFilesClass *klass)
 
 	/**
 	 * PkFiles:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
@@ -128,6 +130,8 @@ pk_files_class_init (PkFilesClass *klass)
 
 	/**
 	 * PkFiles:files:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_boxed ("files", NULL, NULL,
 				    G_TYPE_STRV,
@@ -167,6 +171,8 @@ pk_files_finalize (GObject *object)
  * pk_files_new:
  *
  * Return value: a new PkFiles object.
+ *
+ * Since: 0.5.4
  **/
 PkFiles *
 pk_files_new (void)
diff --git a/lib/packagekit-glib2/pk-media-change-required.c b/lib/packagekit-glib2/pk-media-change-required.c
index 0ad2b43..88a7e09 100644
--- a/lib/packagekit-glib2/pk-media-change-required.c
+++ b/lib/packagekit-glib2/pk-media-change-required.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-media_change_required
+ * SECTION:pk-media-change-required
  * @short_description: MediaChangeRequired object
  *
  * This GObject represents a media_change_required from a transaction.
@@ -129,6 +129,8 @@ pk_media_change_required_class_init (PkMediaChangeRequiredClass *klass)
 
 	/**
 	 * PkMediaChangeRequired:media-type:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("media-type", NULL, NULL,
 				   0, G_MAXUINT, PK_MEDIA_TYPE_ENUM_UNKNOWN,
@@ -137,6 +139,8 @@ pk_media_change_required_class_init (PkMediaChangeRequiredClass *klass)
 
 	/**
 	 * PkMediaChangeRequired:media-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("media-id", NULL, NULL,
 				     NULL,
@@ -145,6 +149,8 @@ pk_media_change_required_class_init (PkMediaChangeRequiredClass *klass)
 
 	/**
 	 * PkMediaChangeRequired:media-text:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("media-text", NULL, NULL,
 				     NULL,
@@ -182,6 +188,8 @@ pk_media_change_required_finalize (GObject *object)
  * pk_media_change_required_new:
  *
  * Return value: a new PkMediaChangeRequired object.
+ *
+ * Since: 0.5.4
  **/
 PkMediaChangeRequired *
 pk_media_change_required_new (void)
diff --git a/lib/packagekit-glib2/pk-message.c b/lib/packagekit-glib2/pk-message.c
index db2270c..a8ce700 100644
--- a/lib/packagekit-glib2/pk-message.c
+++ b/lib/packagekit-glib2/pk-message.c
@@ -120,6 +120,8 @@ pk_message_class_init (PkMessageClass *klass)
 
 	/**
 	 * PkMessage:type:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("type", NULL, NULL,
 				   0, G_MAXUINT, PK_MESSAGE_ENUM_UNKNOWN,
@@ -128,6 +130,8 @@ pk_message_class_init (PkMessageClass *klass)
 
 	/**
 	 * PkMessage:details:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("details", NULL, NULL,
 				     NULL,
@@ -164,6 +168,8 @@ pk_message_finalize (GObject *object)
  * pk_message_new:
  *
  * Return value: a new PkMessage object.
+ *
+ * Since: 0.5.4
  **/
 PkMessage *
 pk_message_new (void)
diff --git a/lib/packagekit-glib2/pk-package-id.c b/lib/packagekit-glib2/pk-package-id.c
index 0dc7170..d4a734f 100644
--- a/lib/packagekit-glib2/pk-package-id.c
+++ b/lib/packagekit-glib2/pk-package-id.c
@@ -40,6 +40,8 @@
  * number of delimiters are present.
  *
  * Return value: a GStrv or %NULL if invalid, use g_strfreev() to free
+ *
+ * Since: 0.5.3
  **/
 gchar **
 pk_package_id_split (const gchar *package_id)
@@ -67,6 +69,8 @@ out:
  * @package_id: the PackageID to check
  *
  * Return value: %TRUE if the PackageID was well formed.
+ *
+ * Since: 0.5.0
  **/
 gboolean
 pk_package_id_check (const gchar *package_id)
@@ -103,6 +107,8 @@ pk_package_id_check (const gchar *package_id)
  * @data: the package extra data
  *
  * Return value: returns a string to form the PackageID.
+ *
+ * Since: 0.5.0
  **/
 gchar *
 pk_package_id_build (const gchar *name, const gchar *version,
@@ -151,6 +157,8 @@ pk_package_id_equal_fuzzy_arch_section (const gchar *arch1, const gchar *arch2)
  * match with i*86.
  *
  * Return value: %TRUE if the PackageIDs can be considered equal.
+ *
+ * Since: 0.5.0
  **/
 gboolean
 pk_package_id_equal_fuzzy_arch (const gchar *package_id1, const gchar *package_id2)
@@ -178,6 +186,8 @@ pk_package_id_equal_fuzzy_arch (const gchar *package_id1, const gchar *package_i
  * Formats the PackageID to be printable to the user.
  *
  * Return value: the name-version.arch formatted string, use g_free() to free.
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_package_id_to_printable (const gchar *package_id)
diff --git a/lib/packagekit-glib2/pk-package-ids.c b/lib/packagekit-glib2/pk-package-ids.c
index 0ff522e..46e3201 100644
--- a/lib/packagekit-glib2/pk-package-ids.c
+++ b/lib/packagekit-glib2/pk-package-ids.c
@@ -42,6 +42,8 @@
  * a single package_id
  *
  * Return value: the string array, or %NULL if invalid, free with g_strfreev()
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_package_ids_from_id (const gchar *package_id)
@@ -58,6 +60,8 @@ pk_package_ids_from_id (const gchar *package_id)
  * a delimited string
  *
  * Return value: the string array, or %NULL if invalid, free with g_strfreev()
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_package_ids_from_string (const gchar *package_id)
@@ -73,6 +77,8 @@ pk_package_ids_from_string (const gchar *package_id)
  * Check the string array of package_id's for validity
  *
  * Return value: %TRUE if the package_ids are all valid.
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_ids_check (gchar **package_ids)
@@ -103,6 +109,8 @@ out:
  * Cats the string array of package_id's into one delimited string
  *
  * Return value: a string representation of all the package_id's.
+ *
+ * Since: 0.5.2
  **/
 gchar *
 pk_package_ids_to_string (gchar **package_ids)
@@ -121,6 +129,8 @@ pk_package_ids_to_string (gchar **package_ids)
  * Finds out if a package ID is present in the list.
  *
  * Return value: %TRUE if the package ID is present
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_ids_present_id (gchar **package_ids, const gchar *package_id)
@@ -146,6 +156,8 @@ 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()
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_package_ids_add_id (gchar **package_ids, const gchar *package_id)
@@ -175,6 +187,8 @@ 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()
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_package_ids_add_ids (gchar **package_ids, gchar **package_ids_new)
@@ -207,6 +221,8 @@ 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()
+ *
+ * Since: 0.5.2
  **/
 gchar **
 pk_package_ids_remove_id (gchar **package_ids, const gchar *package_id)
diff --git a/lib/packagekit-glib2/pk-package-sack-sync.c b/lib/packagekit-glib2/pk-package-sack-sync.c
index 17bc616..35b80d0 100644
--- a/lib/packagekit-glib2/pk-package-sack-sync.c
+++ b/lib/packagekit-glib2/pk-package-sack-sync.c
@@ -60,6 +60,8 @@ pk_package_sack_generic_cb (PkPackageSack *package_sack, GAsyncResult *res, PkPa
  * applications.
  *
  * Return value: %TRUE if the properties were set correctly
+ *
+ * Since: 0.6.0
  **/
 gboolean
 pk_package_sack_resolve (PkPackageSack *package_sack, GCancellable *cancellable, GError **error)
@@ -99,6 +101,8 @@ pk_package_sack_resolve (PkPackageSack *package_sack, GCancellable *cancellable,
  * applications.
  *
  * Return value: %TRUE if the properties were set correctly
+ *
+ * Since: 0.6.0
  **/
 gboolean
 pk_package_sack_get_details (PkPackageSack *package_sack, GCancellable *cancellable, GError **error)
@@ -138,6 +142,8 @@ pk_package_sack_get_details (PkPackageSack *package_sack, GCancellable *cancella
  * applications.
  *
  * Return value: %TRUE if the properties were set correctly
+ *
+ * Since: 0.6.0
  **/
 gboolean
 pk_package_sack_get_update_detail (PkPackageSack *package_sack, GCancellable *cancellable, GError **error)
diff --git a/lib/packagekit-glib2/pk-package-sack.c b/lib/packagekit-glib2/pk-package-sack.c
index 83dc4c7..a7aea95 100644
--- a/lib/packagekit-glib2/pk-package-sack.c
+++ b/lib/packagekit-glib2/pk-package-sack.c
@@ -70,6 +70,8 @@ G_DEFINE_TYPE (PkPackageSack, pk_package_sack, G_TYPE_OBJECT)
  * Gets the number of packages in the sack
  *
  * Return value: the number of packages in the sack
+ *
+ * Since: 0.5.2
  **/
 guint
 pk_package_sack_get_size (PkPackageSack *sack)
@@ -84,6 +86,8 @@ pk_package_sack_get_size (PkPackageSack *sack)
  * @sack: a valid #PkPackageSack instance
  *
  * Empty all the packages from the sack
+ *
+ * Since: 0.5.2
  **/
 void
 pk_package_sack_clear (PkPackageSack *sack)
@@ -99,6 +103,8 @@ pk_package_sack_clear (PkPackageSack *sack)
  * Returns all the Package IDs in the sack
  *
  * Return value: the number of packages in the sack, free with g_strfreev()
+ *
+ * Since: 0.5.3
  **/
 gchar **
 pk_package_sack_get_ids (PkPackageSack *sack)
@@ -127,6 +133,8 @@ pk_package_sack_get_ids (PkPackageSack *sack)
  * Gets a packages from the sack
  *
  * Return value: a %PkPackage instance
+ *
+ * Since: 0.5.2
  **/
 PkPackage *
 pk_package_sack_get_index (PkPackageSack *sack, guint i)
@@ -153,6 +161,8 @@ out:
  * Adds a package to the sack.
  *
  * Return value: %TRUE if the package was added to the sack
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_sack_add_package (PkPackageSack *sack, PkPackage *package)
@@ -175,6 +185,8 @@ pk_package_sack_add_package (PkPackageSack *sack, PkPackage *package)
  * Adds a package reference to the sack.
  *
  * Return value: %TRUE if the package was added to the sack
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_sack_add_package_by_id (PkPackageSack *sack, const gchar *package_id, GError **error)
@@ -207,6 +219,8 @@ out:
  * Removes a package reference from the sack. The pointers have to match exactly.
  *
  * Return value: %TRUE if the package was removed from the sack
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_sack_remove_package (PkPackageSack *sack, PkPackage *package)
@@ -231,6 +245,8 @@ pk_package_sack_remove_package (PkPackageSack *sack, PkPackage *package)
  * the search is stopped.
  *
  * Return value: %TRUE if the package was removed from the sack
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_sack_remove_package_by_id (PkPackageSack *sack, const gchar *package_id)
@@ -267,6 +283,8 @@ pk_package_sack_remove_package_by_id (PkPackageSack *sack, const gchar *package_
  * the search is stopped.
  *
  * Return value: the #PkPackage object, or %NULL if unfound. Free with g_object_unref()
+ *
+ * Since: 0.5.2
  **/
 PkPackage *
 pk_package_sack_find_by_id (PkPackageSack *sack, const gchar *package_id)
@@ -349,6 +367,8 @@ pk_package_sack_sort_compare_info_func (PkPackage **a, PkPackage **b)
  * @sack: a valid #PkPackageSack instance
  *
  * Sorts by Package ID
+ *
+ * Since: 0.5.2
  **/
 void
 pk_package_sack_sort_package_id (PkPackageSack *sack)
@@ -362,6 +382,8 @@ pk_package_sack_sort_package_id (PkPackageSack *sack)
  * @sack: a valid #PkPackageSack instance
  *
  * Sorts by summary
+ *
+ * Since: 0.5.2
  **/
 void
 pk_package_sack_sort_summary (PkPackageSack *sack)
@@ -375,6 +397,8 @@ pk_package_sack_sort_summary (PkPackageSack *sack)
  * @sack: a valid #PkPackageSack instance
  *
  * Sorts by PkInfoEnum
+ *
+ * Since: 0.5.2
  **/
 void
 pk_package_sack_sort_info (PkPackageSack *sack)
@@ -390,6 +414,8 @@ pk_package_sack_sort_info (PkPackageSack *sack)
  * Gets the total size of the package sack in bytes.
  *
  * Return value: the size in bytes
+ *
+ * Since: 0.5.2
  **/
 guint64
 pk_package_sack_get_total_bytes (PkPackageSack *sack)
@@ -556,6 +582,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Merges in details about packages using resolve.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_package_sack_resolve_async (PkPackageSack *sack, GCancellable *cancellable,
@@ -598,6 +626,8 @@ pk_package_sack_resolve_async (PkPackageSack *sack, GCancellable *cancellable,
  * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE for success
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_package_sack_merge_generic_finish (PkPackageSack *sack, GAsyncResult *res, GError **error)
@@ -869,6 +899,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Merges in update details about packages.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_package_sack_get_update_detail_async (PkPackageSack *sack, GCancellable *cancellable,
@@ -965,6 +997,8 @@ pk_package_sack_finalize (GObject *object)
  * pk_package_sack_new:
  *
  * Return value: a new PkPackageSack object.
+ *
+ * Since: 0.5.2
  **/
 PkPackageSack *
 pk_package_sack_new (void)
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index 8fb01f2..4a47c6d 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -112,6 +112,8 @@ G_DEFINE_TYPE (PkPackage, pk_package, PK_TYPE_SOURCE)
  * Do the #PkPackage's have the same ID.
  *
  * Return value: %TRUE if the packages have the same package_id, info and summary.
+ *
+ * Since: 0.5.4
  **/
 gboolean
 pk_package_equal (PkPackage *package1, PkPackage *package2)
@@ -131,6 +133,8 @@ pk_package_equal (PkPackage *package1, PkPackage *package2)
  * Do the #PkPackage's have the same ID.
  *
  * Return value: %TRUE if the packages have the same package_id.
+ *
+ * Since: 0.5.4
  **/
 gboolean
 pk_package_equal_id (PkPackage *package1, PkPackage *package2)
@@ -149,6 +153,8 @@ pk_package_equal_id (PkPackage *package1, PkPackage *package2)
  * Sets the package object to have the given ID
  *
  * Return value: %TRUE if the package_id was set
+ *
+ * Since: 0.5.4
  **/
 gboolean
 pk_package_set_id (PkPackage *package, const gchar *package_id, GError **error)
@@ -196,6 +202,8 @@ out:
  * Gets the package object ID
  *
  * Return value: the %PkInfoEnum
+ *
+ * Since: 0.5.4
  **/
 PkInfoEnum
 pk_package_get_info (PkPackage *package)
@@ -211,6 +219,8 @@ pk_package_get_info (PkPackage *package)
  * Gets the package object ID
  *
  * Return value: the ID, or %NULL if unset
+ *
+ * Since: 0.5.4
  **/
 const gchar *
 pk_package_get_id (PkPackage *package)
@@ -226,6 +236,8 @@ pk_package_get_id (PkPackage *package)
  * Gets the package object ID
  *
  * Return value: the summary, or %NULL if unset
+ *
+ * Since: 0.5.4
  **/
 const gchar *
 pk_package_get_summary (PkPackage *package)
@@ -239,6 +251,8 @@ pk_package_get_summary (PkPackage *package)
  * @package: a valid #PkPackage instance
  *
  * Prints details about the package to standard out.
+ *
+ * Since: 0.5.4
  **/
 void
 pk_package_print (PkPackage *package)
@@ -431,6 +445,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:info:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("info", NULL,
 				   "The PkInfoEnum package type, e.g. PK_INFO_ENUM_NORMAL",
@@ -440,6 +456,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL,
 				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
@@ -449,6 +467,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:summary:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("summary", NULL,
 				     "The package summary",
@@ -458,6 +478,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:license:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("license", NULL,
 				     "The package license",
@@ -467,6 +489,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:group:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("group", NULL,
 				   "The package group",
@@ -476,6 +500,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:description:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("description", NULL,
 				     "The package description",
@@ -485,6 +511,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("url", NULL,
 				     "The package homepage URL",
@@ -494,6 +522,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:size:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint64 ("size", NULL,
 				     "The package size",
@@ -503,6 +533,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-updates:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-updates", NULL,
 				     "The update packages",
@@ -512,6 +544,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-obsoletes:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-obsoletes", NULL,
 				     "The update packages that are obsoleted",
@@ -521,6 +555,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-vendor-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-vendor-url", NULL,
 				     "The update vendor URL",
@@ -530,6 +566,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-bugzilla-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-bugzilla-url", NULL,
 				     "The update bugzilla URL",
@@ -539,6 +577,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-cve-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-cve-url", NULL,
 				     "The update CVE URL",
@@ -548,6 +588,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-restart:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("update-restart", NULL,
 				   "The update restart type",
@@ -557,6 +599,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-text:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-text", NULL,
 				     "The update description",
@@ -566,6 +610,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-changelog:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-changelog", NULL,
 				     "The update ChangeLog",
@@ -575,6 +621,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-state:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("update-state", NULL,
 				   "The update state",
@@ -584,6 +632,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-issued:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-issued", NULL,
 				     "When the update was issued",
@@ -593,6 +643,8 @@ pk_package_class_init (PkPackageClass *klass)
 
 	/**
 	 * PkPackage:update-updated:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-updated", NULL,
 				     "When the update was last updated",
@@ -658,6 +710,8 @@ pk_package_finalize (GObject *object)
  * pk_package_new:
  *
  * Return value: a new PkPackage object.
+ *
+ * Since: 0.5.4
  **/
 PkPackage *
 pk_package_new (void)
diff --git a/lib/packagekit-glib2/pk-progress.c b/lib/packagekit-glib2/pk-progress.c
index 14b4bb6..be2df85 100644
--- a/lib/packagekit-glib2/pk-progress.c
+++ b/lib/packagekit-glib2/pk-progress.c
@@ -138,6 +138,8 @@ pk_progress_get_property (GObject *object, guint prop_id, GValue *value, GParamS
 /**
  * pk_progress_set_package_id:
  * @progress: a valid #PkProgress instance
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_package_id (PkProgress *progress, const gchar *package_id)
@@ -166,6 +168,8 @@ pk_progress_set_package_id (PkProgress *progress, const gchar *package_id)
 /**
  * pk_progress_set_transaction_id:
  * @progress: a valid #PkProgress instance
+ *
+ * Since: 0.5.3
  **/
 gboolean
 pk_progress_set_transaction_id (PkProgress *progress, const gchar *transaction_id)
@@ -187,6 +191,8 @@ pk_progress_set_transaction_id (PkProgress *progress, const gchar *transaction_i
 
 /**
  * pk_progress_set_percentage:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_percentage (PkProgress *progress, gint percentage)
@@ -207,6 +213,8 @@ pk_progress_set_percentage (PkProgress *progress, gint percentage)
 
 /**
  * pk_progress_set_subpercentage:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_subpercentage (PkProgress *progress, gint subpercentage)
@@ -227,6 +235,8 @@ pk_progress_set_subpercentage (PkProgress *progress, gint subpercentage)
 
 /**
  * pk_progress_set_status:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_status (PkProgress *progress, PkStatusEnum status)
@@ -247,6 +257,8 @@ pk_progress_set_status (PkProgress *progress, PkStatusEnum status)
 
 /**
  * pk_progress_set_role:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_role (PkProgress *progress, PkRoleEnum role)
@@ -267,6 +279,8 @@ pk_progress_set_role (PkProgress *progress, PkRoleEnum role)
 
 /**
  * pk_progress_set_allow_cancel:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_allow_cancel (PkProgress *progress, gboolean allow_cancel)
@@ -287,6 +301,8 @@ pk_progress_set_allow_cancel (PkProgress *progress, gboolean allow_cancel)
 
 /**
  * pk_progress_set_caller_active:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_caller_active (PkProgress *progress, gboolean caller_active)
@@ -307,6 +323,8 @@ pk_progress_set_caller_active (PkProgress *progress, gboolean caller_active)
 
 /**
  * pk_progress_set_elapsed_time:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_elapsed_time (PkProgress *progress, guint elapsed_time)
@@ -327,6 +345,8 @@ pk_progress_set_elapsed_time (PkProgress *progress, guint elapsed_time)
 
 /**
  * pk_progress_set_remaining_time:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_remaining_time (PkProgress *progress, guint remaining_time)
@@ -347,6 +367,8 @@ pk_progress_set_remaining_time (PkProgress *progress, guint remaining_time)
 
 /**
  * pk_progress_set_speed:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_speed (PkProgress *progress, guint speed)
@@ -367,6 +389,8 @@ pk_progress_set_speed (PkProgress *progress, guint speed)
 
 /**
  * pk_progress_set_uid:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_uid (PkProgress *progress, guint uid)
@@ -387,6 +411,8 @@ pk_progress_set_uid (PkProgress *progress, guint uid)
 
 /**
  * pk_progress_set_package:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_progress_set_package (PkProgress *progress, PkPackage *package)
@@ -475,6 +501,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkPackage:package-id:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_string ("package-id", NULL,
 				     "The full package_id, e.g. 'gnome-power-manager;0.1.2;i386;fedora'",
@@ -484,6 +512,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkPackage:transaction-id:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_string ("transaction-id", NULL,
 				     "The transaction_id, e.g. '/892_deabbbdb_data'",
@@ -493,6 +523,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:percentage:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_int ("percentage", NULL, NULL,
 				  -1, G_MAXINT, -1,
@@ -501,6 +533,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:subpercentage:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_int ("subpercentage", NULL, NULL,
 				  -1, G_MAXINT, -1,
@@ -509,6 +543,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkPackage:allow-cancel:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_boolean ("allow-cancel", NULL, NULL,
 				      FALSE,
@@ -517,6 +553,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:status:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("status", NULL, NULL,
 				   0, PK_STATUS_ENUM_LAST, PK_STATUS_ENUM_UNKNOWN,
@@ -525,6 +563,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:role:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("role", NULL, NULL,
 				   0, PK_ROLE_ENUM_LAST, PK_ROLE_ENUM_UNKNOWN,
@@ -533,6 +573,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkPackage:caller-active:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_boolean ("caller-active", NULL, NULL,
 				      FALSE,
@@ -541,6 +583,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:elapsed-time:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("elapsed-time", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -549,6 +593,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:remaining-time:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("remaining-time", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -557,6 +603,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:speed:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("speed", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -565,6 +613,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:uid:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("uid", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -573,6 +623,8 @@ pk_progress_class_init (PkProgressClass *klass)
 
 	/**
 	 * PkProgress:package:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_object ("package", NULL, NULL,
 				     PK_TYPE_PACKAGE,
@@ -612,6 +664,8 @@ pk_progress_finalize (GObject *object)
  * frontends easy.
  *
  * Return value: A new %PkProgress instance
+ *
+ * Since: 0.5.2
  **/
 PkProgress *
 pk_progress_new (void)
diff --git a/lib/packagekit-glib2/pk-repo-detail.c b/lib/packagekit-glib2/pk-repo-detail.c
index f807d38..8192ba0 100644
--- a/lib/packagekit-glib2/pk-repo-detail.c
+++ b/lib/packagekit-glib2/pk-repo-detail.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-repo_detail
+ * SECTION:pk-repo-detail
  * @short_description: RepoDetail object
  *
  * This GObject represents a repo_detail from a transaction.
@@ -128,6 +128,8 @@ pk_repo_detail_class_init (PkRepoDetailClass *klass)
 
 	/**
 	 * PkRepoDetail:repo-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("repo-id", NULL, NULL,
 				     NULL,
@@ -136,6 +138,8 @@ pk_repo_detail_class_init (PkRepoDetailClass *klass)
 
 	/**
 	 * PkRepoDetail:description:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("description", NULL, NULL,
 				     NULL,
@@ -144,6 +148,8 @@ pk_repo_detail_class_init (PkRepoDetailClass *klass)
 
 	/**
 	 * PkRepoDetail:enabled:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_boolean ("enabled", NULL, NULL,
 				      FALSE,
@@ -181,6 +187,8 @@ pk_repo_detail_finalize (GObject *object)
  * pk_repo_detail_new:
  *
  * Return value: a new PkRepoDetail object.
+ *
+ * Since: 0.5.4
  **/
 PkRepoDetail *
 pk_repo_detail_new (void)
diff --git a/lib/packagekit-glib2/pk-repo-signature-required.c b/lib/packagekit-glib2/pk-repo-signature-required.c
index c2d150f..57b3bad 100644
--- a/lib/packagekit-glib2/pk-repo-signature-required.c
+++ b/lib/packagekit-glib2/pk-repo-signature-required.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-repo_signature_required
+ * SECTION:pk-repo-signature-required
  * @short_description: RepoSignatureRequired object
  *
  * This GObject represents a repo_signature_required from a transaction.
@@ -174,6 +174,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
@@ -182,6 +184,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:repository-name:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("repository-name", NULL, NULL,
 				     NULL,
@@ -190,6 +194,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:key-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("key-url", NULL, NULL,
 				     NULL,
@@ -198,6 +204,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:key-userid:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("key-userid", NULL, NULL,
 				     NULL,
@@ -206,6 +214,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:key-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("key-id", NULL, NULL,
 				     NULL,
@@ -214,6 +224,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:key-fingerprint:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("key-fingerprint", NULL, NULL,
 				     NULL,
@@ -222,6 +234,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:key-timestamp:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("key-timestamp", NULL, NULL,
 				     NULL,
@@ -230,6 +244,8 @@ pk_repo_signature_required_class_init (PkRepoSignatureRequiredClass *klass)
 
 	/**
 	 * PkRepoSignatureRequired:type:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("type", NULL, NULL,
 				   0, G_MAXUINT, PK_SIGTYPE_ENUM_UNKNOWN,
@@ -272,6 +288,8 @@ pk_repo_signature_required_finalize (GObject *object)
  * pk_repo_signature_required_new:
  *
  * Return value: a new PkRepoSignatureRequired object.
+ *
+ * Since: 0.5.4
  **/
 PkRepoSignatureRequired *
 pk_repo_signature_required_new (void)
diff --git a/lib/packagekit-glib2/pk-require-restart.c b/lib/packagekit-glib2/pk-require-restart.c
index b6e7c96..617c76d 100644
--- a/lib/packagekit-glib2/pk-require-restart.c
+++ b/lib/packagekit-glib2/pk-require-restart.c
@@ -120,6 +120,8 @@ pk_require_restart_class_init (PkRequireRestartClass *klass)
 
 	/**
 	 * PkRequireRestart:restart:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("restart", NULL, NULL,
 				   0, G_MAXUINT, PK_RESTART_ENUM_UNKNOWN,
@@ -128,6 +130,8 @@ pk_require_restart_class_init (PkRequireRestartClass *klass)
 
 	/**
 	 * PkRequireRestart:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
@@ -164,6 +168,8 @@ pk_require_restart_finalize (GObject *object)
  * pk_require_restart_new:
  *
  * Return value: a new PkRequireRestart object.
+ *
+ * Since: 0.5.4
  **/
 PkRequireRestart *
 pk_require_restart_new (void)
diff --git a/lib/packagekit-glib2/pk-results.c b/lib/packagekit-glib2/pk-results.c
index bb7205b..a4544ef 100644
--- a/lib/packagekit-glib2/pk-results.c
+++ b/lib/packagekit-glib2/pk-results.c
@@ -139,6 +139,8 @@ pk_results_set_property (GObject *object, guint prop_id, const GValue *value, GP
  * Sets the results object to have the given exit code.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_set_exit_code (PkResults *results, PkExitEnum exit_enum)
@@ -159,6 +161,8 @@ pk_results_set_exit_code (PkResults *results, PkExitEnum exit_enum)
  * Adds a package to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.3
  **/
 gboolean
 pk_results_add_package (PkResults *results, PkPackage *item)
@@ -191,6 +195,8 @@ pk_results_add_package (PkResults *results, PkPackage *item)
  * Adds some package details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_details (PkResults *results, PkDetails *item)
@@ -212,6 +218,8 @@ pk_results_add_details (PkResults *results, PkDetails *item)
  * Adds some update details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_update_detail (PkResults *results, PkUpdateDetail *item)
@@ -233,6 +241,8 @@ pk_results_add_update_detail (PkResults *results, PkUpdateDetail *item)
  * Adds a category item to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_category (PkResults *results, PkCategory *item)
@@ -254,6 +264,8 @@ pk_results_add_category (PkResults *results, PkCategory *item)
  * Adds a distribution upgrade item to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_distro_upgrade (PkResults *results, PkDistroUpgrade *item)
@@ -275,6 +287,8 @@ pk_results_add_distro_upgrade (PkResults *results, PkDistroUpgrade *item)
  * Adds a require restart item to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_require_restart (PkResults *results, PkRequireRestart *item)
@@ -296,6 +310,8 @@ pk_results_add_require_restart (PkResults *results, PkRequireRestart *item)
  * Adds a transaction item to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_transaction (PkResults *results, PkTransactionPast *item)
@@ -317,6 +333,8 @@ pk_results_add_transaction (PkResults *results, PkTransactionPast *item)
  * Adds some files details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_files (PkResults *results, PkFiles *item)
@@ -338,6 +356,8 @@ pk_results_add_files (PkResults *results, PkFiles *item)
  * Adds some repository signature details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_repo_signature_required (PkResults *results, PkRepoSignatureRequired *item)
@@ -359,6 +379,8 @@ pk_results_add_repo_signature_required (PkResults *results, PkRepoSignatureRequi
  * Adds some EULA details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_eula_required (PkResults *results, PkEulaRequired *item)
@@ -380,6 +402,8 @@ pk_results_add_eula_required (PkResults *results, PkEulaRequired *item)
  * Adds some media change details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_media_change_required (PkResults *results, PkMediaChangeRequired *item)
@@ -401,6 +425,8 @@ pk_results_add_media_change_required (PkResults *results, PkMediaChangeRequired
  * Adds some repository details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_repo_detail (PkResults *results, PkRepoDetail *item)
@@ -422,6 +448,8 @@ pk_results_add_repo_detail (PkResults *results, PkRepoDetail *item)
  * Adds some error details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_set_error_code (PkResults *results, PkError *item)
@@ -445,6 +473,8 @@ pk_results_set_error_code (PkResults *results, PkError *item)
  * Adds some message details to the results set.
  *
  * Return value: %TRUE if the value was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_results_add_message (PkResults *results, PkMessage *item)
@@ -466,6 +496,8 @@ pk_results_add_message (PkResults *results, PkMessage *item)
  * instead using the much more useful pk_results_get_error_code() function.
  *
  * Return value: The #PkExitEnum or %PK_EXIT_ENUM_UNKNOWN for error or if it was not set
+ *
+ * Since: 0.5.2
  **/
 PkExitEnum
 pk_results_get_exit_code (PkResults *results)
@@ -481,6 +513,8 @@ 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()
+ *
+ * Since: 0.5.2
  **/
 PkError *
 pk_results_get_error_code (PkResults *results)
@@ -503,6 +537,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_package_array (PkResults *results)
@@ -518,6 +554,8 @@ pk_results_get_package_array (PkResults *results)
  * Gets a package sack from the transaction.
  *
  * Return value: A #PkPackageSack of data.
+ *
+ * Since: 0.5.2
  **/
 PkPackageSack *
 pk_results_get_package_sack (PkResults *results)
@@ -550,6 +588,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_details_array (PkResults *results)
@@ -565,6 +605,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_update_detail_array (PkResults *results)
@@ -580,6 +622,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_category_array (PkResults *results)
@@ -595,6 +639,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_distro_upgrade_array (PkResults *results)
@@ -610,6 +656,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_require_restart_array (PkResults *results)
@@ -631,6 +679,8 @@ pk_results_get_require_restart_array (PkResults *results)
  * system as a session restart is implied with a system restart.
  *
  * Return value: a #PkRestartEnum value, e.g. PK_RESTART_ENUM_SYSTEM
+ *
+ * Since: 0.5.2
  **/
 PkRestartEnum
 pk_results_get_require_restart_worst (PkResults *results)
@@ -663,6 +713,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_transaction_array (PkResults *results)
@@ -678,6 +730,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_files_array (PkResults *results)
@@ -693,6 +747,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_repo_signature_required_array (PkResults *results)
@@ -708,6 +764,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_eula_required_array (PkResults *results)
@@ -723,6 +781,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_media_change_required_array (PkResults *results)
@@ -738,6 +798,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_repo_detail_array (PkResults *results)
@@ -753,6 +815,8 @@ 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().
+ *
+ * Since: 0.5.2
  **/
 GPtrArray *
 pk_results_get_message_array (PkResults *results)
@@ -775,6 +839,8 @@ pk_results_class_init (PkResultsClass *klass)
 
 	/**
 	 * PkResults:role:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_uint ("role", NULL, NULL,
 				   0, PK_ROLE_ENUM_LAST, PK_ROLE_ENUM_UNKNOWN,
@@ -783,6 +849,8 @@ pk_results_class_init (PkResultsClass *klass)
 
 	/**
 	 * PkResults:inputs:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_uint ("inputs", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -793,6 +861,8 @@ pk_results_class_init (PkResultsClass *klass)
 
 	/**
 	 * PkResults:progress:
+	 *
+	 * Since: 0.5.3
 	 */
 	pspec = g_param_spec_object ("progress", NULL,
 				     "The progress instance",
@@ -862,6 +932,8 @@ pk_results_finalize (GObject *object)
  * pk_results_new:
  *
  * Return value: a new PkResults object.
+ *
+ * Since: 0.5.2
  **/
 PkResults *
 pk_results_new (void)
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
index b04b17e..501028c 100644
--- a/lib/packagekit-glib2/pk-service-pack.c
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -98,6 +98,8 @@ G_DEFINE_TYPE (PkServicePack, pk_service_pack, G_TYPE_OBJECT)
  * pk_service_pack_error_quark:
  *
  * Return value: Our personal error quark.
+ *
+ * Since: 0.5.2
  **/
 GQuark
 pk_service_pack_error_quark (void)
@@ -369,6 +371,8 @@ pk_service_pack_create_temporary_directory (const gchar *prefix)
  * Checks to see if a service pack file is valid, and usable with this system.
  *
  * Return value: %TRUE if the service pack is valid
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_service_pack_check_valid (PkServicePack *pack, const gchar *filename, GError **error)
@@ -433,6 +437,8 @@ out:
  * Sets the directory to use when decompressing the service pack
  *
  * Return value: %TRUE if the directory was set
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_service_pack_set_temp_directory (PkServicePack *pack, const gchar *directory)
@@ -868,6 +874,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Create a service pack for the specified Package IDs
+ *
+ * Since: 0.5.2
  **/
 void
 pk_service_pack_create_for_package_ids_async (PkServicePack *pack, const gchar *filename, gchar **package_ids,
@@ -969,6 +977,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Create a service pack for the specified Package IDs
+ *
+ * Since: 0.5.2
  **/
 void
 pk_service_pack_create_for_updates_async (PkServicePack *pack, const gchar *filename,
@@ -1013,6 +1023,8 @@ pk_service_pack_create_for_updates_async (PkServicePack *pack, const gchar *file
  * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE for success
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_service_pack_generic_finish (PkServicePack *pack, GAsyncResult *res, GError **error)
@@ -1076,6 +1088,8 @@ pk_service_pack_init (PkServicePack *pack)
  * pk_service_pack_new:
  *
  * Return value: A new service_pack class instance.
+ *
+ * Since: 0.5.2
  **/
 PkServicePack *
 pk_service_pack_new (void)
diff --git a/lib/packagekit-glib2/pk-source.c b/lib/packagekit-glib2/pk-source.c
index 40e3f8d..e533aec 100644
--- a/lib/packagekit-glib2/pk-source.c
+++ b/lib/packagekit-glib2/pk-source.c
@@ -119,6 +119,8 @@ pk_source_class_init (PkSourceClass *klass)
 
 	/**
 	 * PkSource:role:
+	 *
+	 * Since: 0.6.0
 	 */
 	pspec = g_param_spec_uint ("role", NULL, NULL,
 				   0, G_MAXUINT, PK_ROLE_ENUM_UNKNOWN,
@@ -127,6 +129,8 @@ pk_source_class_init (PkSourceClass *klass)
 
 	/**
 	 * PkSource:transaction-id:
+	 *
+	 * Since: 0.6.0
 	 */
 	pspec = g_param_spec_string ("transaction-id", NULL, NULL,
 				     NULL,
@@ -163,6 +167,8 @@ pk_source_finalize (GObject *object)
  * pk_source_new:
  *
  * Return value: a new PkSource object.
+ *
+ * Since: 0.6.0
  **/
 PkSource *
 pk_source_new (void)
diff --git a/lib/packagekit-glib2/pk-task-sync.c b/lib/packagekit-glib2/pk-task-sync.c
index 3c5a1e9..c36fdf4 100644
--- a/lib/packagekit-glib2/pk-task-sync.c
+++ b/lib/packagekit-glib2/pk-task-sync.c
@@ -74,6 +74,8 @@ pk_task_generic_finish_sync (PkTask *task, GAsyncResult *res, PkTaskHelper *help
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_task_update_system_sync (PkTask *task, GCancellable *cancellable,
@@ -124,6 +126,8 @@ pk_task_update_system_sync (PkTask *task, GCancellable *cancellable,
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_task_remove_packages_sync (PkTask *task, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
@@ -170,6 +174,8 @@ pk_task_remove_packages_sync (PkTask *task, gchar **package_ids, gboolean allow_
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_task_install_packages_sync (PkTask *task, gchar **package_ids, GCancellable *cancellable,
@@ -216,6 +222,8 @@ pk_task_install_packages_sync (PkTask *task, gchar **package_ids, GCancellable *
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_task_update_packages_sync (PkTask *task, gchar **package_ids, GCancellable *cancellable,
@@ -263,6 +271,8 @@ pk_task_update_packages_sync (PkTask *task, gchar **package_ids, GCancellable *c
  * applications.
  *
  * Return value: a %PkResults object, or NULL for error
+ *
+ * Since: 0.5.3
  **/
 PkResults *
 pk_task_install_files_sync (PkTask *task, gchar **files, GCancellable *cancellable,
diff --git a/lib/packagekit-glib2/pk-task.c b/lib/packagekit-glib2/pk-task.c
index 90c6a81..88b6666 100644
--- a/lib/packagekit-glib2/pk-task.c
+++ b/lib/packagekit-glib2/pk-task.c
@@ -577,6 +577,8 @@ out:
 
 /**
  * pk_task_user_accepted:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_task_user_accepted (PkTask *task, guint request)
@@ -623,6 +625,8 @@ out:
 
 /**
  * pk_task_user_declined:
+ *
+ * Since: 0.5.2
  **/
 gboolean
 pk_task_user_declined (PkTask *task, guint request)
@@ -757,6 +761,8 @@ out:
  * @user_data: the data to pass to @callback
  *
  * Merges in details about packages using resolve.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable *cancellable,
@@ -809,6 +815,8 @@ pk_task_install_packages_async (PkTask *task, gchar **package_ids, GCancellable
  * @user_data: the data to pass to @callback_ready
  *
  * Update specific packages to the newest available versions.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_task_update_packages_async (PkTask *task, gchar **package_ids, GCancellable *cancellable,
@@ -864,6 +872,8 @@ pk_task_update_packages_async (PkTask *task, gchar **package_ids, GCancellable *
  * Remove a package (optionally with dependancies) from the system.
  * If %allow_deps is set to %FALSE, and other packages would have to be removed,
  * then the transaction would fail.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_task_remove_packages_async (PkTask *task, gchar **package_ids, gboolean allow_deps, gboolean autoremove, GCancellable *cancellable,
@@ -917,6 +927,8 @@ pk_task_remove_packages_async (PkTask *task, gchar **package_ids, gboolean allow
  *
  * Install a file locally, and get the deps from the repositories.
  * This is useful for double clicking on a .rpm or .deb file.
+ *
+ * Since: 0.5.2
  **/
 void
 pk_task_install_files_async (PkTask *task, gchar **files, GCancellable *cancellable,
@@ -972,6 +984,8 @@ pk_task_install_files_async (PkTask *task, gchar **files, GCancellable *cancella
  * - pk_task_repo_disable()
  * - pk_task_update_system()
  * - pk_task_repo_enable()
+ *
+ * Since: 0.5.2
  **/
 void
 pk_task_update_system_async (PkTask *task, GCancellable *cancellable,
@@ -1016,6 +1030,8 @@ pk_task_update_system_async (PkTask *task, GCancellable *cancellable,
  * Gets the result from the asynchronous function.
  *
  * Return value: %TRUE for success
+ *
+ * Since: 0.5.2
  **/
 PkResults *
 pk_task_generic_finish (PkTask *task, GAsyncResult *res, GError **error)
@@ -1087,6 +1103,8 @@ pk_task_class_init (PkTaskClass *klass)
 
 	/**
 	 * PkTask:simulate:
+	 *
+	 * Since: 0.5.2
 	 */
 	pspec = g_param_spec_boolean ("simulate", NULL, NULL,
 				      TRUE,
@@ -1122,6 +1140,8 @@ pk_task_finalize (GObject *object)
  * pk_task_new:
  *
  * Return value: a new PkTask object.
+ *
+ * Since: 0.5.2
  **/
 PkTask *
 pk_task_new (void)
diff --git a/lib/packagekit-glib2/pk-transaction-list.c b/lib/packagekit-glib2/pk-transaction-list.c
index 33358d5..751ccb5 100644
--- a/lib/packagekit-glib2/pk-transaction-list.c
+++ b/lib/packagekit-glib2/pk-transaction-list.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-task-list
+ * SECTION:pk-transaction-list
  * @short_description: A nice way to keep a list of the jobs being processed
  *
  * These provide a good way to keep a list of the jobs being processed so we
@@ -190,6 +190,8 @@ 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()
+ *
+ * Since: 0.5.3
  **/
 gchar **
 pk_transaction_list_get_ids (PkTransactionList *tlist)
@@ -290,6 +292,8 @@ pk_transaction_list_finalize (GObject *object)
 
 /**
  * pk_transaction_list_new:
+ *
+ * Since: 0.5.3
  **/
 PkTransactionList *
 pk_transaction_list_new (void)
diff --git a/lib/packagekit-glib2/pk-transaction-past.c b/lib/packagekit-glib2/pk-transaction-past.c
index 877a2ca..c49aa60 100644
--- a/lib/packagekit-glib2/pk-transaction-past.c
+++ b/lib/packagekit-glib2/pk-transaction-past.c
@@ -24,7 +24,7 @@
  * @short_description: TransactionPast object
  *
  * This GObject represents a transaction_past from a transaction_past.
- * These objects represent single items of data from the transaction_past, and are
+ * These objects represent single items of data from the transaction, and are
  * often present in lists (#PkResults) or just refcounted in client programs.
  */
 
@@ -171,6 +171,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:tid:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("tid", NULL, NULL,
 				     NULL,
@@ -179,6 +181,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:timespec:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("timespec", NULL, NULL,
 				     NULL,
@@ -187,6 +191,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:succeeded:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_boolean ("succeeded", NULL, NULL,
 				      FALSE,
@@ -195,6 +201,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:role:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("role", NULL, NULL,
 				   0, G_MAXUINT, PK_ROLE_ENUM_UNKNOWN,
@@ -203,6 +211,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:duration:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("duration", NULL, NULL,
 				   0, G_MAXUINT, 0,
@@ -211,6 +221,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:data:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("data", NULL, NULL,
 				     NULL,
@@ -219,6 +231,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:uid:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("uid", NULL, NULL,
 				   0, G_MAXUINT, G_MAXUINT,
@@ -227,6 +241,8 @@ pk_transaction_past_class_init (PkTransactionPastClass *klass)
 
 	/**
 	 * PkTransactionPast:cmdline:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("cmdline", NULL, NULL,
 				     NULL,
@@ -266,6 +282,8 @@ pk_transaction_past_finalize (GObject *object)
  * pk_transaction_past_new:
  *
  * Return value: a new PkTransactionPast object.
+ *
+ * Since: 0.5.4
  **/
 PkTransactionPast *
 pk_transaction_past_new (void)
diff --git a/lib/packagekit-glib2/pk-update-detail.c b/lib/packagekit-glib2/pk-update-detail.c
index 57b286e..b3cfcfb 100644
--- a/lib/packagekit-glib2/pk-update-detail.c
+++ b/lib/packagekit-glib2/pk-update-detail.c
@@ -20,7 +20,7 @@
  */
 
 /**
- * SECTION:pk-update_detail
+ * SECTION:pk-update-detail
  * @short_description: UpdateDetail object
  *
  * This GObject represents a update_detail from a transaction.
@@ -209,6 +209,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:package-id:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("package-id", NULL, NULL,
 				     NULL,
@@ -217,6 +219,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:updates:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("updates", NULL, NULL,
 				     NULL,
@@ -225,6 +229,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:obsoletes:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("obsoletes", NULL, NULL,
 				     NULL,
@@ -233,6 +239,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:vendor-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("vendor-url", NULL, NULL,
 				     NULL,
@@ -241,6 +249,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:bugzilla-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("bugzilla-url", NULL, NULL,
 				     NULL,
@@ -249,6 +259,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:cve-url:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("cve-url", NULL, NULL,
 				     NULL,
@@ -257,6 +269,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:restart:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("restart", NULL, NULL,
 				   0, G_MAXUINT, PK_RESTART_ENUM_UNKNOWN,
@@ -265,6 +279,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:update-text:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("update-text", NULL, NULL,
 				     NULL,
@@ -273,6 +289,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:changelog:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("changelog", NULL, NULL,
 				     NULL,
@@ -281,6 +299,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:state:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_uint ("state", NULL, NULL,
 				   0, G_MAXUINT, PK_UPDATE_STATE_ENUM_UNKNOWN,
@@ -289,6 +309,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:issued:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("issued", NULL, NULL,
 				     NULL,
@@ -297,6 +319,8 @@ pk_update_detail_class_init (PkUpdateDetailClass *klass)
 
 	/**
 	 * PkUpdateDetail:updated:
+	 *
+	 * Since: 0.5.4
 	 */
 	pspec = g_param_spec_string ("updated", NULL, NULL,
 				     NULL,
@@ -342,6 +366,8 @@ pk_update_detail_finalize (GObject *object)
  * pk_update_detail_new:
  *
  * Return value: a new PkUpdateDetail object.
+ *
+ * Since: 0.5.4
  **/
 PkUpdateDetail *
 pk_update_detail_new (void)
commit 713c7c2536ec430d3b839c5ddf4b98a4c67ff50b
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Jan 15 15:21:40 2010 +0000

    trivial: enable introspection in the Fedora spec file

diff --git a/contrib/PackageKit.spec.in b/contrib/PackageKit.spec.in
index 0d054b7..3578a48 100644
--- a/contrib/PackageKit.spec.in
+++ b/contrib/PackageKit.spec.in
@@ -56,6 +56,7 @@ BuildRequires: cppunit-devel
 BuildRequires: pango-devel
 BuildRequires: pm-utils-devel
 BuildRequires: fontconfig-devel
+BuildRequires: gobject-introspection-devel
 #BuildRequires: gtk-sharp2-devel
 #BuildRequires: mono-core
 
@@ -114,6 +115,7 @@ Summary: GLib libraries for accessing PackageKit
 Group: Development/Libraries
 Requires: dbus >= %{dbus_version}
 Requires: %{name} = %{version}-%{release}
+Requires: gobject-introspection
 Obsoletes: PackageKit-libs < %{version}-%{release}
 Provides: PackageKit-libs = %{version}-%{release}
 
@@ -240,6 +242,7 @@ user to restart the computer or remove and re-insert the device.
 	--enable-yum \
 %if 0%{?rhel} == 0
 	--enable-smart \
+	--enable-introspection \
 %endif
 	--with-default-backend=yum \
 	--disable-local \
@@ -371,6 +374,8 @@ update-mime-database %{_datadir}/mime &> /dev/null || :
 %defattr(-,root,root,-)
 %doc README AUTHORS NEWS COPYING
 %{_libdir}/*packagekit-glib2.so.*
+%{_libdir}/girepositry-1.0/PackageKitGlib-1.0.typelib
+%{_datadir}/gir-1.0/PackageKitGlib-1.0.gir
 
 %files qt
 %defattr(-,root,root,-)
commit c6d655f0647f7a3e476ea8212d4adf0448c34e14
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Jan 15 14:58:55 2010 +0000

    feature: Enable initial introspection support in PackageKit-glib2

diff --git a/Makefile.am b/Makefile.am
index 9eb939b..2b08b5d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,7 @@
 AUTOMAKE_OPTIONS = 1.7
 
+ACLOCAL_AMFLAGS = -I m4
+
 NULL =
 
 SUBDIRS = 						\
@@ -75,6 +77,7 @@ EXTRA_DIST =						\
 
 DISTCHECK_CONFIGURE_FLAGS = 				\
 	--enable-gtk-doc				\
+	--enable-introspection				\
 	--with-security-framework=dummy			\
 	--disable-tests					\
 	$(NULL)
diff --git a/configure.ac b/configure.ac
index 76690c5..d7dc6d7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 # Copyright (C) 2007-2009 Richard Hughes <richard at hughsie.com>
-AC_PREREQ(2.52)
+AC_PREREQ(2.62)
 
 m4_define([pk_major_version], [0])
 m4_define([pk_minor_version], [6])
@@ -13,6 +13,8 @@ AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2])
 AM_CONFIG_HEADER(config.h)
 AC_CONFIG_MACRO_DIR([m4])
 
+GOBJECT_INTROSPECTION_CHECK([0.6.7])
+
 # enable nice build output on automake1.11
 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
diff --git a/lib/packagekit-glib2/Makefile.am b/lib/packagekit-glib2/Makefile.am
index 35d7688..ba211f1 100644
--- a/lib/packagekit-glib2/Makefile.am
+++ b/lib/packagekit-glib2/Makefile.am
@@ -1,5 +1,10 @@
 NULL =
 
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_GIRS =
+INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir)
+INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
+
 INCLUDES = \
 	$(GLIB_CFLAGS)						\
 	$(DBUS_CFLAGS)						\
@@ -232,6 +237,25 @@ pk-marshal.h: pk-marshal.list
 
 CLEANFILES = $(BUILT_SOURCES)
 
+if HAVE_INTROSPECTION
+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_LIBS = libpackagekit-glib2.la
+PackageKitGlib_1_0_gir_FILES = $(addprefix $(srcdir)/,$(introspection_sources))
+INTROSPECTION_GIRS += PackageKitGlib-1.0.gir
+
+girdir = $(datadir)/gir-1.0
+dist_gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(libdir)/girepositry-1.0
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(dist_gir_DATA) $(typelib_DATA)
+endif
+
 clean-local:
 	rm -f *~
 	rm -f $(CLEANFILES)
commit 39f1afae5bbd9ae790c0505ede4467f5eac6dfe7
Author: Richard Hughes <richard at hughsie.com>
Date:   Sun Jan 17 23:18:31 2010 +0000

    trivial: use g_set_error() in more places

diff --git a/lib/packagekit-glib2/pk-console-shared.c b/lib/packagekit-glib2/pk-console-shared.c
index f6c36b3..216e16f 100644
--- a/lib/packagekit-glib2/pk-console-shared.c
+++ b/lib/packagekit-glib2/pk-console-shared.c
@@ -160,13 +160,13 @@ pk_console_resolve_package (PkClient *client, PkBitfield filter, const gchar *pa
 	/* get the packages returned */
 	array = pk_results_get_package_array (results);
 	if (array == NULL) {
-		*error = g_error_new (1, 0, "did not get package struct for %s", package_name);
+		g_set_error (error, 1, 0, "did not get package struct for %s", package_name);
 		goto out;
 	}
 
 	/* nothing found */
 	if (array->len == 0) {
-		*error = g_error_new (1, 0, "could not find %s", package_name);
+		g_set_error (error, 1, 0, "could not find %s", package_name);
 		goto out;
 	}
 
diff --git a/lib/packagekit-glib2/pk-desktop.c b/lib/packagekit-glib2/pk-desktop.c
index cad6ce8..3330cc4 100644
--- a/lib/packagekit-glib2/pk-desktop.c
+++ b/lib/packagekit-glib2/pk-desktop.c
@@ -117,8 +117,7 @@ pk_desktop_get_files_for_package (PkDesktop *desktop, const gchar *package, GErr
 
 	/* no database */
 	if (desktop->priv->db == NULL) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "database is not open");
+		g_set_error_literal (error, 1, 0, "database is not open");
 		goto out;
 	}
 
@@ -159,8 +158,7 @@ pk_desktop_get_shown_for_package (PkDesktop *desktop, const gchar *package, GErr
 
 	/* no database */
 	if (desktop->priv->db == NULL) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "database is not open");
+		g_set_error_literal (error, 1, 0, "database is not open");
 		goto out;
 	}
 
@@ -200,8 +198,7 @@ pk_desktop_get_package_for_file (PkDesktop *desktop, const gchar *filename, GErr
 
 	/* no database */
 	if (desktop->priv->db == NULL) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "database is not open");
+		g_set_error_literal (error, 1, 0, "database is not open");
 		goto out;
 	}
 
@@ -216,8 +213,7 @@ pk_desktop_get_package_for_file (PkDesktop *desktop, const gchar *filename, GErr
 
 	/* no result */
 	if (package == NULL) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "could not find package for %s", filename);
+		g_set_error (error, 1, 0, "could not find package for %s", filename);
 		goto out;
 	}
 out:
@@ -245,8 +241,7 @@ pk_desktop_open_database (PkDesktop *desktop, GError **error)
 	/* if the database file was not installed (or was nuked) recreate it */
 	ret = g_file_test (PK_DESKTOP_DEFAULT_DATABASE, G_FILE_TEST_EXISTS);
 	if (!ret) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "database %s is not present", PK_DESKTOP_DEFAULT_DATABASE);
+		g_set_error (error, 1, 0, "database %s is not present", PK_DESKTOP_DEFAULT_DATABASE);
 		return FALSE;
 	}
 
@@ -254,8 +249,7 @@ pk_desktop_open_database (PkDesktop *desktop, GError **error)
 	rc = sqlite3_open (PK_DESKTOP_DEFAULT_DATABASE, &desktop->priv->db);
 	if (rc != 0) {
 		egg_warning ("Can't open database: %s\n", sqlite3_errmsg (desktop->priv->db));
-		if (error != NULL)
-			*error = g_error_new (1, 0, "can't open database: %s", sqlite3_errmsg (desktop->priv->db));
+		g_set_error (error, 1, 0, "can't open database: %s", sqlite3_errmsg (desktop->priv->db));
 		sqlite3_close (desktop->priv->db);
 		desktop->priv->db = NULL;
 		return FALSE;
diff --git a/lib/packagekit-glib2/pk-package.c b/lib/packagekit-glib2/pk-package.c
index f7c9281..8fb01f2 100644
--- a/lib/packagekit-glib2/pk-package.c
+++ b/lib/packagekit-glib2/pk-package.c
@@ -163,8 +163,7 @@ pk_package_set_id (PkPackage *package, const gchar *package_id, GError **error)
 	/* check valid UTF8 */
 	ret = g_utf8_validate (package_id, -1, NULL);
 	if (!ret) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "invalid UTF8!");
+		g_set_error_literal (error, 1, 0, "invalid UTF8!");
 		goto out;
 	}
 
@@ -172,16 +171,14 @@ pk_package_set_id (PkPackage *package, const gchar *package_id, GError **error)
 	sections = g_strsplit (package_id, ";", -1);
 	ret = (g_strv_length (sections) == 4);
 	if (!ret) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "invalid number of sections");
+		g_set_error_literal (error, 1, 0, "invalid number of sections");
 		goto out;
 	}
 
 	/* name has to be valid */
 	ret = (sections[0][0] != '\0');
 	if (!ret) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "name invalid");
+		g_set_error_literal (error, 1, 0, "name invalid");
 		goto out;
 	}
 
diff --git a/lib/packagekit-glib2/pk-service-pack.c b/lib/packagekit-glib2/pk-service-pack.c
index 49f7663..b04b17e 100644
--- a/lib/packagekit-glib2/pk-service-pack.c
+++ b/lib/packagekit-glib2/pk-service-pack.c
@@ -151,7 +151,7 @@ pk_service_pack_check_metadata_file (const gchar *full_path, GError **error)
 	file = g_key_file_new ();
 	ret = g_key_file_load_from_file (file, full_path, G_KEY_FILE_NONE, &error_local);
 	if (!ret) {
-		*error = g_error_new (1, 0, "failed to load file: %s", error_local->message);
+		g_set_error (error, 1, 0, "failed to load file: %s", error_local->message);
 		g_error_free (error_local);
 		goto out;
 	}
@@ -159,7 +159,7 @@ pk_service_pack_check_metadata_file (const gchar *full_path, GError **error)
 	/* read the value */
 	distro_id = g_key_file_get_string (file, PK_SERVICE_PACK_GROUP_NAME, "distro_id", &error_local);
 	if (distro_id == NULL) {
-		*error = g_error_new (1, 0, "failed to get value: %s", error_local->message);
+		g_set_error (error, 1, 0, "failed to get value: %s", error_local->message);
 		g_error_free (error_local);
 		ret = FALSE;
 		goto out;
@@ -168,7 +168,7 @@ pk_service_pack_check_metadata_file (const gchar *full_path, GError **error)
 	/* read the value */
 	type = g_key_file_get_string (file, PK_SERVICE_PACK_GROUP_NAME, "type", &error_local);
 	if (type == NULL) {
-		*error = g_error_new (1, 0, "failed to get type: %s", error_local->message);
+		g_set_error (error, 1, 0, "failed to get type: %s", error_local->message);
 		g_error_free (error_local);
 		ret = FALSE;
 		goto out;
@@ -176,7 +176,7 @@ pk_service_pack_check_metadata_file (const gchar *full_path, GError **error)
 
 	/* check the types we support */
 	if (g_strcmp0 (type, "update") != 0 && g_strcmp0 (type, "install") != 0) {
-		*error = g_error_new (1, 0, "does not have correct type key: %s", type);
+		g_set_error (error, 1, 0, "does not have correct type key: %s", type);
 		ret = FALSE;
 		goto out;
 	}
@@ -198,7 +198,7 @@ pk_service_pack_check_metadata_file (const gchar *full_path, GError **error)
 	/* do we match? */
 	ret = (g_strcmp0 (distro_id_us, distro_id) == 0);
 	if (!ret)
-		*error = g_error_new (1, 0, "distro id did not match %s == %s", distro_id_us, distro_id);
+		g_set_error (error, 1, 0, "distro id did not match %s == %s", distro_id_us, distro_id);
 
 out:
 	if (control != NULL)
@@ -234,7 +234,7 @@ pk_service_pack_extract (const gchar *filename, const gchar *directory, GError *
 	/* save the PWD as we chdir to extract */
 	retcwd = getcwd (buf, PATH_MAX);
 	if (retcwd == NULL) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+		g_set_error_literal (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
 				      "failed to get cwd");
 		goto out;
 	}
@@ -246,7 +246,7 @@ pk_service_pack_extract (const gchar *filename, const gchar *directory, GError *
 	/* open the tar file */
 	r = archive_read_open_file (arch, filename, 10240);
 	if (r) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
 				      "cannot open: %s", archive_error_string (arch));
 		goto out;
 	}
@@ -254,7 +254,7 @@ pk_service_pack_extract (const gchar *filename, const gchar *directory, GError *
 	/* switch to our destination directory */
 	retval = chdir (directory);
 	if (retval != 0) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
 				      "failed chdir to %s", directory);
 		goto out;
 	}
@@ -265,13 +265,13 @@ pk_service_pack_extract (const gchar *filename, const gchar *directory, GError *
 		if (r == ARCHIVE_EOF)
 			break;
 		if (r != ARCHIVE_OK) {
-			*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+			g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
 					      "cannot read header: %s", archive_error_string (arch));
 			goto out;
 		}
 		r = archive_read_extract (arch, entry, 0);
 		if (r != ARCHIVE_OK) {
-			*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+			g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
 					      "cannot extract: %s", archive_error_string (arch));
 			goto out;
 		}
@@ -297,7 +297,7 @@ out:
 static gboolean
 pk_service_pack_extract (const gchar *filename, const gchar *directory, GError **error)
 {
-	*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
+	g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_EXTRACTION,
 			      "The service pack %s cannot be extracted as PackageKit was not built with libarchive support", filename);
 	return FALSE;
 }
@@ -387,7 +387,7 @@ pk_service_pack_check_valid (PkServicePack *pack, const gchar *filename, GError
 	directory = pk_service_pack_create_temporary_directory ("PackageKit-");
 	ret = pk_service_pack_extract (filename, directory, &error_local);
 	if (!ret) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, error_local->code,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, error_local->code,
 				      "failed to check %s: %s", filename, error_local->message);
 		g_error_free (error_local);
 		goto out;
@@ -396,7 +396,7 @@ pk_service_pack_check_valid (PkServicePack *pack, const gchar *filename, GError
 	/* get the files */
 	dir = g_dir_open (directory, 0, NULL);
 	if (dir == NULL) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_SETUP,
 				      "failed to get directory for %s", directory);
 		ret = FALSE;
 		goto out;
@@ -408,7 +408,7 @@ pk_service_pack_check_valid (PkServicePack *pack, const gchar *filename, GError
 		if (g_strcmp0 (filename_entry, "metadata.conf") == 0) {
 			ret = pk_service_pack_check_metadata_file (metafile, &error_local);
 			if (!ret) {
-				*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE,
+				g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_NOT_COMPATIBLE,
 						      "Service Pack %s not compatible with your distro: %s", filename, error_local->message);
 				g_error_free (error_local);
 				ret = FALSE;
@@ -539,7 +539,7 @@ pk_service_pack_archive_add_file (struct archive *arch, const gchar *filename, G
 	/* stat file */
 	retval = stat (filename, &st);
 	if (retval != 0) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
 				      "file not found %s", filename);
 		goto out;
 	}
@@ -558,7 +558,7 @@ pk_service_pack_archive_add_file (struct archive *arch, const gchar *filename, G
 	/* write header */
 	retval = archive_write_header (arch, entry);
 	if (retval != ARCHIVE_OK) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
 				      "failed to write header: %s\n", archive_error_string (arch));
 		goto out;
 	}
@@ -566,7 +566,7 @@ pk_service_pack_archive_add_file (struct archive *arch, const gchar *filename, G
 	/* open file to copy */
 	fd = open (filename, O_RDONLY);
 	if (fd < 0) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
 				      "failed to get fd for %s", filename);
 		goto out;
 	}
@@ -610,7 +610,7 @@ pk_service_pack_create_from_files (PkServicePackState *state, gchar **file_array
 	filename = g_build_filename (g_get_tmp_dir (), "metadata.conf", NULL);
 	ret = pk_service_pack_create_metadata_file (state, filename);
 	if (!ret) {
-		*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+		g_set_error (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
 				      "failed to generate metadata file %s", filename);
 		goto out;
 	}
@@ -653,7 +653,7 @@ out:
 static gboolean
 pk_service_pack_create_from_files (PkServicePackState *state, gchar **file_array, GError **error)
 {
-	*error = g_error_new (PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
+	g_set_error_literal (error, PK_SERVICE_PACK_ERROR, PK_SERVICE_PACK_ERROR_FAILED_CREATE,
 			      "The service pack cannot be created as PackageKit was not built with libarchive support");
 	return FALSE;
 }
diff --git a/src/pk-transaction-extra.c b/src/pk-transaction-extra.c
index 05ef2f7..17c63df 100644
--- a/src/pk-transaction-extra.c
+++ b/src/pk-transaction-extra.c
@@ -1020,7 +1020,7 @@ pk_transaction_extra_applications_are_running (PkTransactionExtra *extra, gchar
 	/* there is a file we can't COW */
 	if (extra->priv->files_list->len != 0) {
 		file = g_ptr_array_index (extra->priv->files_list, 0);
-		*error = g_error_new (1, 0, "failed to run as %s is running", file);
+		g_set_error (error, 1, 0, "failed to run as %s is running", file);
 		ret = FALSE;
 		goto out;
 	}
diff --git a/src/pk-transaction-list.c b/src/pk-transaction-list.c
index 5b0074b..ce6f860 100644
--- a/src/pk-transaction-list.c
+++ b/src/pk-transaction-list.c
@@ -443,8 +443,7 @@ pk_transaction_list_create (PkTransactionList *tlist, const gchar *tid, const gc
 	/* already added? */
 	item = pk_transaction_list_get_from_tid (tlist, tid);
 	if (item != NULL) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "already added %s to list", tid);
+		g_set_error (error, 1, 0, "already added %s to list", tid);
 		egg_warning ("already added %s to list", tid);
 		goto out;
 	}
@@ -476,16 +475,14 @@ pk_transaction_list_create (PkTransactionList *tlist, const gchar *tid, const gc
 	/* set the TID on the transaction */
 	ret = pk_transaction_set_tid (item->transaction, item->tid);
 	if (!ret) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "failed to set TID: %s", tid);
+		g_set_error (error, 1, 0, "failed to set TID: %s", tid);
 		goto out;
 	}
 
 	/* set the DBUS sender on the transaction */
 	ret = pk_transaction_set_sender (item->transaction, sender);
 	if (!ret) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "failed to set sender: %s", tid);
+		g_set_error (error, 1, 0, "failed to set sender: %s", tid);
 		goto out;
 	}
 
@@ -501,8 +498,7 @@ pk_transaction_list_create (PkTransactionList *tlist, const gchar *tid, const gc
 	/* would this take us over the maximum number of requests allowed */
 	max_count = pk_conf_get_int (tlist->priv->conf, "SimultaneousTransactionsForUid");
 	if (count > max_count) {
-		if (error != NULL)
-			*error = g_error_new (1, 0, "failed to allocate %s as uid %i already has %i transactions in progress", tid, item->uid, count);
+		g_set_error (error, 1, 0, "failed to allocate %s as uid %i already has %i transactions in progress", tid, item->uid, count);
 
 		/* free transaction, as it's never going to be added */
 		pk_transaction_list_item_free (item);
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 669d0f3..357b5f8 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -1552,21 +1552,21 @@ pk_transaction_set_proxy (PkTransaction *transaction, GError **error)
 	/* get session */
 	session = pk_dbus_get_session (transaction->priv->dbus, transaction->priv->sender);
 	if (session == NULL) {
-		*error = g_error_new (1, 0, "failed to get the session");
+		g_set_error_literal (error, 1, 0, "failed to get the session");
 		goto out;
 	}
 
 	/* get from database */
 	ret = pk_transaction_db_get_proxy (transaction->priv->transaction_db, transaction->priv->uid, session, &proxy_http, &proxy_ftp);
 	if (!ret) {
-		*error = g_error_new (1, 0, "failed to get the proxy from the database");
+		g_set_error_literal (error, 1, 0, "failed to get the proxy from the database");
 		goto out;
 	}
 
 	/* try to set the new proxy */
 	ret = pk_backend_set_proxy (transaction->priv->backend, proxy_http, proxy_ftp);
 	if (!ret) {
-		*error = g_error_new (1, 0, "failed to set the proxy");
+		g_set_error_literal (error, 1, 0, "failed to set the proxy");
 		goto out;
 	}
 	egg_debug ("using http_proxy=%s, ftp_proxy=%s for %i:%s", proxy_http, proxy_ftp, transaction->priv->uid, session);
@@ -2038,33 +2038,33 @@ pk_transaction_search_check_item (const gchar *values, GError **error)
 	size = egg_strlen (values, 1024);
 
 	if (values == NULL) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
 				     "Search is null. This isn't supposed to happen...");
 		return FALSE;
 	}
 	if (size == 0) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
 				     "Search string zero length");
 		return FALSE;
 	}
 	if (strstr (values, "*") != NULL) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
 				     "Invalid search containing '*'");
 		return FALSE;
 	}
 	if (strstr (values, "?") != NULL) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
 				     "Invalid search containing '?'");
 		return FALSE;
 	}
 	if (size == 1024) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_SEARCH_INVALID,
 				     "The search string length is too large");
 		return FALSE;
 	}
 	ret = pk_transaction_strvalidate (values);
 	if (!ret) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
 				     "Invalid search term");
 		return FALSE;
 	}
@@ -2105,7 +2105,7 @@ pk_transaction_filter_check (const gchar *filter, GError **error)
 
 	/* is zero? */
 	if (egg_strzero (filter)) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
+		g_set_error_literal (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
 				     "filter zero length");
 		return FALSE;
 	}
@@ -2113,8 +2113,8 @@ pk_transaction_filter_check (const gchar *filter, GError **error)
 	/* check for invalid input */
 	ret = pk_transaction_strvalidate (filter);
 	if (!ret) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
-				     "Invalid filter term: %s", filter);
+		g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
+			     "Invalid filter term: %s", filter);
 		return FALSE;
 	}
 
@@ -2124,12 +2124,12 @@ pk_transaction_filter_check (const gchar *filter, GError **error)
 	for (i=0; i<length; i++) {
 		/* only one wrong part is enough to fail the filter */
 		if (egg_strzero (sections[i])) {
-			*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
+			g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
 					     "Single empty section of filter: %s", filter);
 			goto out;
 		}
 		if (pk_filter_enum_from_string (sections[i]) == PK_FILTER_ENUM_UNKNOWN) {
-			*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
+			g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_INPUT_INVALID,
 					     "Unknown filter part: %s", sections[i]);
 			goto out;
 		}
@@ -2299,7 +2299,7 @@ pk_transaction_obtain_authorization (PkTransaction *transaction, gboolean only_t
 
 	/* we should always have subject */
 	if (transaction->priv->subject == NULL) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_REFUSED_BY_POLICY,
+		g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_REFUSED_BY_POLICY,
 				      "subject %s not found", transaction->priv->sender);
 		goto out;
 	}
@@ -2310,7 +2310,7 @@ pk_transaction_obtain_authorization (PkTransaction *transaction, gboolean only_t
 	else
 		action_id = pk_transaction_role_to_action_allow_untrusted (role);
 	if (action_id == NULL) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_REFUSED_BY_POLICY, "policykit type required for '%s'", pk_role_enum_to_string (role));
+		g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_REFUSED_BY_POLICY, "policykit type required for '%s'", pk_role_enum_to_string (role));
 		goto out;
 	}
 
@@ -2414,7 +2414,7 @@ pk_transaction_verify_sender (PkTransaction *transaction, DBusGMethodInvocation
 	sender = dbus_g_method_get_sender (context);
 	ret = (g_strcmp0 (transaction->priv->sender, sender) == 0);
 	if (!ret) {
-		*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_REFUSED_BY_POLICY,
+		g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_REFUSED_BY_POLICY,
 				      "sender does not match (%s vs %s)", sender, transaction->priv->sender);
 		goto out;
 	}
@@ -3472,7 +3472,7 @@ pk_transaction_get_content_type_for_file (const gchar *filename, GError **error)
 	file = g_file_new_for_path (filename);
 	info = g_file_query_info (file, "standard::content-type", G_FILE_QUERY_INFO_NONE, NULL, &error_local);
 	if (info == NULL) {
-		*error = g_error_new (1, 0, "failed to get file attributes for %s: %s", filename, error_local->message);
+		g_set_error (error, 1, 0, "failed to get file attributes for %s: %s", filename, error_local->message);
 		g_error_free (error_local);
 		goto out;
 	}
@@ -4511,7 +4511,7 @@ pk_transaction_set_hint (PkTransaction *transaction, const gchar *key, const gch
 
 		/* already set */
 		if (priv->locale != NULL) {
-			*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+			g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
 					      "Already set locale to %s", priv->locale);
 			ret = FALSE;
 			goto out;
@@ -4527,7 +4527,7 @@ pk_transaction_set_hint (PkTransaction *transaction, const gchar *key, const gch
 		priv->background = pk_hint_enum_from_string (value);
 		if (priv->background == PK_HINT_ENUM_INVALID) {
 			priv->background = PK_HINT_ENUM_UNSET;
-			*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+			g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
 					      "background hint expects true or false, not %s", value);
 			ret = FALSE;
 		}
@@ -4539,7 +4539,7 @@ pk_transaction_set_hint (PkTransaction *transaction, const gchar *key, const gch
 		priv->interactive = pk_hint_enum_from_string (value);
 		if (priv->interactive == PK_HINT_ENUM_INVALID) {
 			priv->interactive = PK_HINT_ENUM_UNSET;
-			*error = g_error_new (PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
+			g_set_error (error, PK_TRANSACTION_ERROR, PK_TRANSACTION_ERROR_NOT_SUPPORTED,
 					      "interactive hint expects true or false, not %s", value);
 			ret = FALSE;
 		}
commit f509d262b464ca1fd069927af4478113ecea8199
Author: elsupergomez <elsupergomez at fedoraproject.org>
Date:   Fri Jan 15 14:41:36 2010 +0000

    Sending translation for Spanish

diff --git a/po/es.po b/po/es.po
index c029790..ca885e3 100644
--- a/po/es.po
+++ b/po/es.po
@@ -9,9 +9,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-06 14:34+0000\n"
-"PO-Revision-Date: 2009-12-06 11:47-0300\n"
-"Last-Translator: Domingo Becker <domingobecker at gmail.com>\n"
+"POT-Creation-Date: 2010-01-15 09:07+0000\n"
+"PO-Revision-Date: 2010-01-15 11:12-0300\n"
+"Last-Translator: Claudio Rodrigo Pereyra Diaz <claudio at pereyradiaz.com.ar>\n"
 "Language-Team: Fedora Spanish <fedora-trans-es at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -48,7 +48,7 @@ msgstr "Falso"
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
 #: ../client/pk-console.c:181
-#: ../src/pk-polkit-action-lookup.c:336
+#: ../src/pk-polkit-action-lookup.c:332
 msgid "Role"
 msgstr "Rol"
 
@@ -64,7 +64,7 @@ msgstr "(segundos)"
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
 #: ../client/pk-console.c:190
-#: ../src/pk-polkit-action-lookup.c:350
+#: ../src/pk-polkit-action-lookup.c:346
 msgid "Command line"
 msgstr "Línea de comandos"
 
@@ -147,7 +147,7 @@ msgstr "Detalles acerca de la actualización:"
 #: ../client/pk-console.c:616
 #: ../lib/packagekit-glib2/pk-task-text.c:126
 #: ../lib/packagekit-glib2/pk-task-text.c:208
-#: ../src/pk-polkit-action-lookup.c:361
+#: ../src/pk-polkit-action-lookup.c:357
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Paquete"
@@ -319,21 +319,27 @@ msgstr "Por favor, reinicie el equipo para completar la actualización, ya que s
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Por favor, cierre la sesión y vuelva a registrarse para completar la actualización, ya que se han instalado actualizaciones de seguridad importantes."
 
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
+#: ../client/pk-console.c:843
+#, c-format
+msgid "Extected package name, actually got file. Try using 'pkcon install-local %s' instead."
+msgstr "Nombre de paquete esperado, actualmente tiene archivo. Trate de usar 'pkcon install-local %s' en su lugar."
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:840
+#: ../client/pk-console.c:851
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Esta herramienta no pudo encontrar ningún paquete disponible: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:879
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Esta herramienta no pudo encontrar el paquete instalado: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:896
-#: ../client/pk-console.c:924
+#: ../client/pk-console.c:907
+#: ../client/pk-console.c:935
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Esta herramienta no pudo encontrar el paquete: %s"
@@ -342,289 +348,289 @@ msgstr "Esta herramienta no pudo encontrar el paquete: %s"
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:952
-#: ../client/pk-console.c:980
-#: ../client/pk-console.c:1008
-#: ../client/pk-console.c:1036
-#: ../client/pk-console.c:1064
+#: ../client/pk-console.c:963
+#: ../client/pk-console.c:991
+#: ../client/pk-console.c:1019
+#: ../client/pk-console.c:1047
+#: ../client/pk-console.c:1075
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Esta herramienta no pudo encontrar todos los paquetes: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1104
 msgid "The daemon crashed mid-transaction!"
 msgstr "El demonio se colgó en medio de una transacción."
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1127
+#: ../client/pk-console.c:1138
 msgid "PackageKit Console Interface"
 msgstr "Interfaz de consola de PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1129
+#: ../client/pk-console.c:1140
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:1208
+#: ../client/pk-console.c:1219
 msgid "Failed to get the time since this action was last completed"
 msgstr "Falló al obtener la hora de la última vez que se completó esta acción"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1244
+#: ../client/pk-console.c:1255
 #: ../client/pk-monitor.c:280
 msgid "Show the program version and exit"
 msgstr "Mostrar la versión del programa y salir"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1247
+#: ../client/pk-console.c:1258
 msgid "Set the filter, e.g. installed"
 msgstr "Establecer el filtro, ej. instalado"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:1261
 msgid "Exit without waiting for actions to complete"
 msgstr "Salir sin esperar que las acciones se completen"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1253
+#: ../client/pk-console.c:1264
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
 msgid "Install the packages without asking for confirmation"
 msgstr "Instalar los paquetes sin confirmación"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1256
+#: ../client/pk-console.c:1267
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "Corra el comando usando ancho de bando libre y también usando menos potencia"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1259
+#: ../client/pk-console.c:1270
 msgid "Print to screen a machine readable output, rather than using animated widgets"
 msgstr "Imprimir en la pantalla una salida legible por una máquina, en vez de usar controles animados"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1292
 msgid "Failed to contact PackageKit"
 msgstr "Falló al contactar con PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1339
+#: ../client/pk-console.c:1350
 msgid "The filter specified was invalid"
 msgstr "El filtro especificado fue inválido"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1358
+#: ../client/pk-console.c:1369
 msgid "A search type is required, e.g. name"
 msgstr "Se necesita un tipo de búsqueda, por ejemplo, nombre"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1365
-#: ../client/pk-console.c:1377
-#: ../client/pk-console.c:1389
-#: ../client/pk-console.c:1401
+#: ../client/pk-console.c:1376
+#: ../client/pk-console.c:1388
+#: ../client/pk-console.c:1400
+#: ../client/pk-console.c:1412
 msgid "A search term is required"
 msgstr "Se necesita un término de búsqueda"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1411
+#: ../client/pk-console.c:1422
 msgid "Invalid search type"
 msgstr "Tipo de búsqueda inválido"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1428
 msgid "A package name to install is required"
 msgstr "Se necesita un nombre de paquete a instalar"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1437
 msgid "A filename to install is required"
 msgstr "Se requiere un nombre de archivo a instalar"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1438
+#: ../client/pk-console.c:1449
 msgid "A type, key_id and package_id are required"
 msgstr "Se necesita un tipo, key_id y package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1449
+#: ../client/pk-console.c:1460
 msgid "A package name to remove is required"
 msgstr "Necesita un nombre de paquete para eliminar"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1469
 msgid "A destination directory and the package names to download are required"
 msgstr "Se necesita un directorio de destino y los nombres de los paquetes a descargar"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1465
+#: ../client/pk-console.c:1476
 msgid "Directory not found"
 msgstr "Directorio no encontrado"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1485
 msgid "A licence identifier (eula-id) is required"
 msgstr "Se necesita un identificador de licencia (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1496
 msgid "A transaction identifier (tid) is required"
 msgstr "Se necesita un identificador de transacción (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1506
+#: ../client/pk-console.c:1517
 msgid "A package name to resolve is required"
 msgstr "Se necesita un nombre de paquete para resolver"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1517
 #: ../client/pk-console.c:1528
+#: ../client/pk-console.c:1539
 msgid "A repository name is required"
 msgstr "Se necesita un nombre de repositorio"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1550
 msgid "A repo name, parameter and value are required"
 msgstr "Debe especificar un nombre de repositorio, parámetro y valor"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1556
+#: ../client/pk-console.c:1567
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Debe especificar una acción, por ejemplo, «update-system»"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1574
 msgid "A correct role is required"
 msgstr "Se necesita un rol correcto"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:1573
-#: ../client/pk-console.c:1588
-#: ../client/pk-console.c:1597
-#: ../client/pk-console.c:1617
-#: ../client/pk-console.c:1626
-#: ../client/pk-generate-pack.c:298
+#: ../client/pk-console.c:1584
+#: ../client/pk-console.c:1599
+#: ../client/pk-console.c:1608
+#: ../client/pk-console.c:1628
+#: ../client/pk-console.c:1637
+#: ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "Se necesita un nombre de paquete"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1617
 msgid "A package provide string is required"
 msgstr "Se necesita la cadena de lo que proporciona el paquete"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1697
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "La opción «%s» no está soportada"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1696
+#: ../client/pk-console.c:1707
 msgid "Command failed"
 msgstr "Falló el comando"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:237
+#: ../client/pk-generate-pack.c:255
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Establezca el nombre del archivo de dependencias para excluir"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:240
+#: ../client/pk-generate-pack.c:258
 msgid "The output file or directory (the current directory is used if ommitted)"
 msgstr "El directorio o archivo de salida (se usará si se omite el directorio actual)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:243
+#: ../client/pk-generate-pack.c:261
 msgid "The package to be put into the service pack"
 msgstr "El paquete será puesto en el paquete de servicio"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:246
+#: ../client/pk-generate-pack.c:264
 msgid "Put all updates available in the service pack"
 msgstr "Poner todas las actualizaciones disponibles en el paquete de servicio"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:282
+#: ../client/pk-generate-pack.c:300
 msgid "Neither --package or --updates option selected."
 msgstr "No se seleccionó ni la opción --package o --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:290
+#: ../client/pk-generate-pack.c:308
 msgid "Both options selected."
 msgstr "Se seleccionaron ambas opciones."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:306
+#: ../client/pk-generate-pack.c:324
 msgid "A output directory or file name is required"
 msgstr "Se necesita un directorio o nombre de archivo de salida"
 
 #. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
-#: ../client/pk-generate-pack.c:324
+#: ../client/pk-generate-pack.c:342
 msgid "The dameon failed to startup"
 msgstr "Fallo del demonio en el inicio"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:335
-#: ../client/pk-generate-pack.c:341
+#: ../client/pk-generate-pack.c:353
+#: ../client/pk-generate-pack.c:359
 msgid "The package manager cannot perform this type of operation."
 msgstr "El gestor de paquetes no puede realizar este tipo de operación."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:348
+#: ../client/pk-generate-pack.c:366
 msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
 msgstr "No se pueden crear paquetes de servicio ya que PackageKit no se construyó con soporte para libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:377
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Si especifica un archivo, el nombre del paquete de servicio debe finalizar con"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:375
+#: ../client/pk-generate-pack.c:393
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Ya existe un paquete con ese nombre, ¿desea sobreescribirlo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:378
+#: ../client/pk-generate-pack.c:396
 msgid "The pack was not overwritten."
 msgstr "No se sobreescribió el paquete."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:391
+#: ../client/pk-generate-pack.c:409
 msgid "Failed to create directory:"
 msgstr "Falló al crear el directorio:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:403
+#: ../client/pk-generate-pack.c:421
 msgid "Failed to open package list."
 msgstr "Falló al abrir la lista de paquetes."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:412
+#: ../client/pk-generate-pack.c:430
 msgid "Finding package name."
 msgstr "Buscando el nombre de paquete."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:416
+#: ../client/pk-generate-pack.c:434
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Falló al buscar el paquete «%s»: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:424
+#: ../client/pk-generate-pack.c:442
 msgid "Creating service pack..."
 msgstr "Creando el paquete de servicio..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:439
+#: ../client/pk-generate-pack.c:457
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Paquete de servicio «%s» creado"
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:444
+#: ../client/pk-generate-pack.c:462
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Falló al crear «%s»: %s"
@@ -760,29 +766,29 @@ msgid "Please choose a command to run"
 msgstr "Elija un comando para ejecutar"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:766
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "The package providing this file is:"
 msgstr "El paquete que proporciona este archivo es:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:771
+#: ../contrib/command-not-found/pk-command-not-found.c:769
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "¿Instalar el paquete «%s» para proporcionar el comando «%s»?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:795
+#: ../contrib/command-not-found/pk-command-not-found.c:793
 msgid "Packages providing this file are:"
 msgstr "Los paquetes que proporcionan este archivo son:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:805
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "Suitable packages are:"
 msgstr "Los posibles paquetes son:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:814
+#: ../contrib/command-not-found/pk-command-not-found.c:812
 msgid "Please choose a package to install"
 msgstr "Elija un paquete para instalar"
 
@@ -980,92 +986,92 @@ msgid "Disabled %i debugging sources."
 msgstr "Se han deshabilitado %i fuentes para la depuración. "
 
 #. TRANSLATORS: couldn't open device to write
-#: ../contrib/device-rebind/pk-device-rebind.c:61
+#: ../contrib/device-rebind/pk-device-rebind.c:62
 msgid "Failed to open file"
 msgstr "Falló al abrir el archivo"
 
 #. TRANSLATORS: could not write to the device
-#: ../contrib/device-rebind/pk-device-rebind.c:70
+#: ../contrib/device-rebind/pk-device-rebind.c:71
 msgid "Failed to write to the file"
 msgstr "Falló al escribir en el archivo"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:110
-#: ../contrib/device-rebind/pk-device-rebind.c:147
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
 msgid "Failed to write to device"
 msgstr "Falló al escribir en el dispositivo"
 
 #. TRANSLATORS: the device could not be found in sysfs
-#: ../contrib/device-rebind/pk-device-rebind.c:175
+#: ../contrib/device-rebind/pk-device-rebind.c:176
 msgid "Device could not be found"
 msgstr "No se pudo encontrar el dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:202
+#: ../contrib/device-rebind/pk-device-rebind.c:203
 msgid "Failed to unregister driver"
 msgstr "Falló al desregistrar el controlador"
 
 #. TRANSLATORS: we failed to bind the old driver
-#: ../contrib/device-rebind/pk-device-rebind.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:212
 msgid "Failed to register driver"
 msgstr "Falló al registrar el controlador"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:260
+#: ../contrib/device-rebind/pk-device-rebind.c:261
 msgid "Device path not found"
 msgstr "Dirección de dispositivo no encontrado"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:268
+#: ../contrib/device-rebind/pk-device-rebind.c:269
 msgid "Incorrect device path specified"
 msgstr "Dirección de dispositivo especificada incorrecta"
 
-#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../contrib/device-rebind/pk-device-rebind.c:294
 msgid "Show extra debugging information"
 msgstr "Mostrar información extra de depuración"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/device-rebind/pk-device-rebind.c:296
+#: ../contrib/device-rebind/pk-device-rebind.c:297
 msgid "Don't actually touch the hardware, only simulate what would be done"
 msgstr "No tocar el hardware, solamente simular lo que se haría"
 
 #. TRANSLATORS: command line option: a list of files to install
-#: ../contrib/device-rebind/pk-device-rebind.c:299
+#: ../contrib/device-rebind/pk-device-rebind.c:300
 msgid "Device paths"
 msgstr "Dirección de dispositivo"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
-#: ../contrib/device-rebind/pk-device-rebind.c:314
+#: ../contrib/device-rebind/pk-device-rebind.c:315
 msgid "PackageKit Device Reloader"
 msgstr "Recargador de Dispositivo de PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:322
+#: ../contrib/device-rebind/pk-device-rebind.c:323
 msgid "You need to specify at least one valid device path"
 msgstr "Necesita especificar al menos una dirección de dispositivo válida"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:332
+#: ../contrib/device-rebind/pk-device-rebind.c:333
 msgid "This script can only be used by the root user"
 msgstr "Este script sólo puede ser usado por el usuario root"
 
 #. TRANSLATORS: we're going to verify the path first
-#: ../contrib/device-rebind/pk-device-rebind.c:341
+#: ../contrib/device-rebind/pk-device-rebind.c:342
 msgid "Verifying device path"
 msgstr "Verificando dirección de dispositivo"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:346
+#: ../contrib/device-rebind/pk-device-rebind.c:347
 msgid "Failed to verify device path"
 msgstr "Falló al verificar la dirección del dispositivo"
 
 #. TRANSLATORS: we're going to try
-#: ../contrib/device-rebind/pk-device-rebind.c:360
+#: ../contrib/device-rebind/pk-device-rebind.c:361
 msgid "Attempting to rebind device"
 msgstr "Intentando reconectar dispositivo"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:365
+#: ../contrib/device-rebind/pk-device-rebind.c:366
 msgid "Failed to rebind device"
 msgstr "Falló al reconectar el dispositivo"
 
@@ -1939,18 +1945,13 @@ msgstr "No instale este paquete a menos que sepa con certeza que es seguro hacer
 msgid "Do not install these packages unless you are sure it is safe to do so."
 msgstr "No instale estos paquete a menos que sepa con certeza que es seguro hacerlo."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:202
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr "Un software considerado maligno puede provocar diferentes clases de daño, por ejemplo, podría dañar su computadora. "
-
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:277
+#: ../src/pk-polkit-action-lookup.c:273
 msgid "Many packages"
 msgstr "Varios paquetes"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:343
+#: ../src/pk-polkit-action-lookup.c:339
 msgid "Only trusted"
 msgstr "Solo confiable"
 
@@ -1982,6 +1983,10 @@ msgstr "Opciones de depuración"
 msgid "Show debugging options"
 msgstr "Mostrar información extra de depuración"
 
+#~ msgid "Malicious software can damage your computer or cause other harm."
+#~ msgstr ""
+#~ "Un software considerado maligno puede provocar diferentes clases de daño, "
+#~ "por ejemplo, podría dañar su computadora. "
 #~ msgid "Transaction failed with no error"
 #~ msgstr "La transacción fallida sin error"
 #~ msgid "Failed to get transaction list"
commit 0975a1a8b31a1551b712f6358b12e3b5bfc266ef
Author: raven <raven at fedoraproject.org>
Date:   Thu Jan 14 21:53:43 2010 +0000

    Sending translation for Polish

diff --git a/po/pl.po b/po/pl.po
index f7793bd..e59b02f 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,10 +5,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-11-24 19:57+0000\n"
-"PO-Revision-Date: 2009-11-24 21:12+0100\n"
+"POT-Creation-Date: 2010-01-14 21:45+0000\n"
+"PO-Revision-Date: 2010-01-14 22:50+0100\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
-"Language-Team: Polish <fedora-trans-pl at redhat.com>\n"
+"Language-Team: Polish <trans-pl at lists.fedoraproject.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -41,7 +41,7 @@ msgstr "Fałsz"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:181 ../src/pk-polkit-action-lookup.c:336
+#: ../client/pk-console.c:181 ../src/pk-polkit-action-lookup.c:332
 msgid "Role"
 msgstr "Rola"
 
@@ -56,7 +56,7 @@ msgstr "(sekundy)"
 
 #. TRANSLATORS: this is The command line used to do the action
 #. TRANSLATORS: the command line of the thing that wants the authentication
-#: ../client/pk-console.c:190 ../src/pk-polkit-action-lookup.c:350
+#: ../client/pk-console.c:190 ../src/pk-polkit-action-lookup.c:346
 msgid "Command line"
 msgstr "Wiersz poleceń"
 
@@ -137,7 +137,7 @@ msgstr "Szczegóły aktualizacji:"
 #: ../client/pk-console.c:346 ../client/pk-console.c:616
 #: ../lib/packagekit-glib2/pk-task-text.c:126
 #: ../lib/packagekit-glib2/pk-task-text.c:208
-#: ../src/pk-polkit-action-lookup.c:361
+#: ../src/pk-polkit-action-lookup.c:357
 msgid "Package"
 msgid_plural "Packages"
 msgstr[0] "Pakiet"
@@ -316,20 +316,30 @@ msgstr ""
 "Proszę wylogować się i zalogować, aby zakończyć aktualizację, ponieważ "
 "zainstalowano aktualizacje bezpieczeństwa."
 
+#. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
+#: ../client/pk-console.c:843
+#, c-format
+msgid ""
+"Extected package name, actually got file. Try using 'pkcon install-local %s' "
+"instead."
+msgstr ""
+"Oczekiwano nazwy pakietu, otrzymano plik. Proszę zamiast tego spróbować "
+"wykonać polecenie \"pkcon install-local %s\"."
+
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:840
+#: ../client/pk-console.c:851
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Te narzędzie nie może odnaleźć dostępnych pakietów: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:868
+#: ../client/pk-console.c:879
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Te narzędzie nie może odnaleźć zainstalowanego pakietu: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:896 ../client/pk-console.c:924
+#: ../client/pk-console.c:907 ../client/pk-console.c:935
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Te narzędzie nie może odnaleźć pakietu: %s"
@@ -338,64 +348,64 @@ msgstr "Te narzędzie nie może odnaleźć pakietu: %s"
 #. TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:952 ../client/pk-console.c:980
-#: ../client/pk-console.c:1008 ../client/pk-console.c:1036
-#: ../client/pk-console.c:1064
+#: ../client/pk-console.c:963 ../client/pk-console.c:991
+#: ../client/pk-console.c:1019 ../client/pk-console.c:1047
+#: ../client/pk-console.c:1075
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Te narzędzie nie może odnaleźć wszystkich pakietów: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1093
+#: ../client/pk-console.c:1104
 msgid "The daemon crashed mid-transaction!"
 msgstr "Demon zawiesił się w połowie transakcji!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1127
+#: ../client/pk-console.c:1138
 msgid "PackageKit Console Interface"
 msgstr "Interfejs konsoli PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1129
+#: ../client/pk-console.c:1140
 msgid "Subcommands:"
 msgstr "Podpolecenia:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:1208
+#: ../client/pk-console.c:1219
 msgid "Failed to get the time since this action was last completed"
 msgstr ""
 "Uzyskanie czasu od ostatniego zakończenia tego działania nie powiodło się"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1244 ../client/pk-monitor.c:280
+#: ../client/pk-console.c:1255 ../client/pk-monitor.c:280
 msgid "Show the program version and exit"
 msgstr "Wyświetla wersję programu i wyłącza"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1247
+#: ../client/pk-console.c:1258
 msgid "Set the filter, e.g. installed"
 msgstr "Ustawia filtr, np. zainstalowane"
 
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1250
+#: ../client/pk-console.c:1261
 msgid "Exit without waiting for actions to complete"
 msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1253
+#: ../client/pk-console.c:1264
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
 msgid "Install the packages without asking for confirmation"
 msgstr "Instaluje pakiety bez prośby o potwierdzenie"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1256
+#: ../client/pk-console.c:1267
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr ""
 "Wykonuje polecenie używając bezczynnego połączenia sieciowego, a także "
 "zużywając mniej energii"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1259
+#: ../client/pk-console.c:1270
 msgid ""
 "Print to screen a machine readable output, rather than using animated widgets"
 msgstr ""
@@ -403,127 +413,127 @@ msgstr ""
 "widgetów"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1281
+#: ../client/pk-console.c:1292
 msgid "Failed to contact PackageKit"
 msgstr "Skontaktowanie się z usługą PackageKit nie powiodło się"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1339
+#: ../client/pk-console.c:1350
 msgid "The filter specified was invalid"
 msgstr "Podany filtr jest nieprawidłowy"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1358
+#: ../client/pk-console.c:1369
 msgid "A search type is required, e.g. name"
 msgstr "Wymagany jest typ wyszukiwania, np. nazwa"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1365 ../client/pk-console.c:1377
-#: ../client/pk-console.c:1389 ../client/pk-console.c:1401
+#: ../client/pk-console.c:1376 ../client/pk-console.c:1388
+#: ../client/pk-console.c:1400 ../client/pk-console.c:1412
 msgid "A search term is required"
 msgstr "Wymagany jest wyszukiwany termin"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1411
+#: ../client/pk-console.c:1422
 msgid "Invalid search type"
 msgstr "Nieprawidłowy typ wyszukiwania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1417
+#: ../client/pk-console.c:1428
 msgid "A package name to install is required"
 msgstr "Wymagana jest nazwa pakietu do zainstalowania"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1426
+#: ../client/pk-console.c:1437
 msgid "A filename to install is required"
 msgstr "Wymagana jest nazwa pliku do zainstalowania"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1438
+#: ../client/pk-console.c:1449
 msgid "A type, key_id and package_id are required"
 msgstr "Wymagany jest typ, key_id i package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1449
+#: ../client/pk-console.c:1460
 msgid "A package name to remove is required"
 msgstr "Wymagana jest nazwa pakietu do usunięcia"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1458
+#: ../client/pk-console.c:1469
 msgid "A destination directory and the package names to download are required"
 msgstr "Wymagany jest katalog docelowy i nazwy pakietów do pobrania"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1465
+#: ../client/pk-console.c:1476
 msgid "Directory not found"
 msgstr "Nie odnaleziono katalogu"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1474
+#: ../client/pk-console.c:1485
 msgid "A licence identifier (eula-id) is required"
 msgstr "Wymagany jest identyfikator licencji (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1485
+#: ../client/pk-console.c:1496
 msgid "A transaction identifier (tid) is required"
 msgstr "Wymagany jest identyfikator transakcji (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1506
+#: ../client/pk-console.c:1517
 msgid "A package name to resolve is required"
 msgstr "Wymagana jest nazwa pakietu do rozwiÄ…zania"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1517 ../client/pk-console.c:1528
+#: ../client/pk-console.c:1528 ../client/pk-console.c:1539
 msgid "A repository name is required"
 msgstr "Wymagana jest nazwa repozytorium"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1550
 msgid "A repo name, parameter and value are required"
 msgstr "Wymagana jest nazwa, parametr i wartość repozytorium"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1556
+#: ../client/pk-console.c:1567
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Wymagane jest działanie, np. \"update-system\""
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1563
+#: ../client/pk-console.c:1574
 msgid "A correct role is required"
 msgstr "Wymagana jest bieżąca rola"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:1573 ../client/pk-console.c:1588
-#: ../client/pk-console.c:1597 ../client/pk-console.c:1617
-#: ../client/pk-console.c:1626 ../client/pk-generate-pack.c:283
+#: ../client/pk-console.c:1584 ../client/pk-console.c:1599
+#: ../client/pk-console.c:1608 ../client/pk-console.c:1628
+#: ../client/pk-console.c:1637 ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "Wymagana jest nazwa pakietu"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1617
 msgid "A package provide string is required"
 msgstr "Wymagany jest łańcuch dostarczania pakietu"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1686
+#: ../client/pk-console.c:1697
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opcja \"%s\" nie jest obsługiwana"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1696
+#: ../client/pk-console.c:1707
 msgid "Command failed"
 msgstr "Polecenie nie powiodło się"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
-#: ../client/pk-generate-pack.c:222
+#: ../client/pk-generate-pack.c:255
 msgid "Set the file name of dependencies to be excluded"
 msgstr "Proszę ustawić nazwy plików zależności do wykluczenia"
 
 #. TRANSLATORS: the output location
-#: ../client/pk-generate-pack.c:225
+#: ../client/pk-generate-pack.c:258
 msgid ""
 "The output file or directory (the current directory is used if ommitted)"
 msgstr ""
@@ -531,43 +541,43 @@ msgstr ""
 "pominięte)"
 
 #. TRANSLATORS: put a list of packages in the pack
-#: ../client/pk-generate-pack.c:228
+#: ../client/pk-generate-pack.c:261
 msgid "The package to be put into the service pack"
 msgstr "Pakiet do umieszczenia w pakiecie serwisowym"
 
 #. TRANSLATORS: put all pending updates in the pack
-#: ../client/pk-generate-pack.c:231
+#: ../client/pk-generate-pack.c:264
 msgid "Put all updates available in the service pack"
 msgstr "Wszystkie dostępne aktualizacje w pakiecie serwisowym"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:267
+#: ../client/pk-generate-pack.c:300
 msgid "Neither --package or --updates option selected."
 msgstr "Nie wybrano żadnej z opcji --package lub --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:275
+#: ../client/pk-generate-pack.c:308
 msgid "Both options selected."
 msgstr "Wybrano obie opcje."
 
 #. TRANSLATORS: This is when the user fails to supply the output
-#: ../client/pk-generate-pack.c:291
+#: ../client/pk-generate-pack.c:324
 msgid "A output directory or file name is required"
 msgstr "Wymagany jest katalog lub nazwa pliku wyjścia"
 
 #. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
-#: ../client/pk-generate-pack.c:309
+#: ../client/pk-generate-pack.c:342
 msgid "The dameon failed to startup"
 msgstr "Uruchomienie demona nie powiodło się"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:320 ../client/pk-generate-pack.c:326
+#: ../client/pk-generate-pack.c:353 ../client/pk-generate-pack.c:359
 msgid "The package manager cannot perform this type of operation."
 msgstr "Menedżer pakietów nie może wykonać tego typu działania."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
-#: ../client/pk-generate-pack.c:333
+#: ../client/pk-generate-pack.c:366
 msgid ""
 "Service packs cannot be created as PackageKit was not built with libarchive "
 "support."
@@ -576,54 +586,54 @@ msgstr ""
 "zbudowano bez obsługi biblioteki libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
-#: ../client/pk-generate-pack.c:344
+#: ../client/pk-generate-pack.c:377
 msgid "If specifying a file, the service pack name must end with"
 msgstr "Jeśli podano plik, nazwa pakietu serwisowego musi kończyć się"
 
 #. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:360
+#: ../client/pk-generate-pack.c:393
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr "Pakiet serwisowy o tej samej nazwie już istnieje, zastąpić go?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:363
+#: ../client/pk-generate-pack.c:396
 msgid "The pack was not overwritten."
 msgstr "Pakiet nie został zastąpiony."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
-#: ../client/pk-generate-pack.c:376
+#: ../client/pk-generate-pack.c:409
 msgid "Failed to create directory:"
 msgstr "Utworzenie katalogu nie powiodło się:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:388
+#: ../client/pk-generate-pack.c:421
 msgid "Failed to open package list."
 msgstr "Otwarcie listy pakietów nie powiodło się."
 
 #. TRANSLATORS: The package name is being matched up to available packages
-#: ../client/pk-generate-pack.c:397
+#: ../client/pk-generate-pack.c:430
 msgid "Finding package name."
 msgstr "Wyszukiwanie nazwy pakietu."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
-#: ../client/pk-generate-pack.c:401
+#: ../client/pk-generate-pack.c:434
 #, c-format
 msgid "Failed to find package '%s': %s"
 msgstr "Nie można odnaleźć pakietu \"%s\": %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:409
+#: ../client/pk-generate-pack.c:442
 msgid "Creating service pack..."
 msgstr "Tworzenie pakietu serwisowego..."
 
 #. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:424
+#: ../client/pk-generate-pack.c:457
 #, c-format
 msgid "Service pack created '%s'"
 msgstr "Utworzono pakiet serwisowy \"%s\""
 
 #. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:429
+#: ../client/pk-generate-pack.c:462
 #, c-format
 msgid "Failed to create '%s': %s"
 msgstr "Utworzenie \"%s\" nie powiodło się: %s"
@@ -759,29 +769,29 @@ msgid "Please choose a command to run"
 msgstr "Proszę wybrać polecenie do wykonania"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:766
+#: ../contrib/command-not-found/pk-command-not-found.c:764
 msgid "The package providing this file is:"
 msgstr "Pakiet dostarczajÄ…cy ten plik:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:771
+#: ../contrib/command-not-found/pk-command-not-found.c:769
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Zainstalować pakiet \"%s\", aby dostarczyć polecenie \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:795
+#: ../contrib/command-not-found/pk-command-not-found.c:793
 msgid "Packages providing this file are:"
 msgstr "Pakiety dostarczajÄ…ce ten plik:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:805
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "Suitable packages are:"
 msgstr "Odpowiednie pakiety:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:814
+#: ../contrib/command-not-found/pk-command-not-found.c:812
 msgid "Please choose a package to install"
 msgstr "Proszę wybrać pakiet do zainstalowania"
 
@@ -981,92 +991,92 @@ msgid "Disabled %i debugging sources."
 msgstr "Wyłączono %i źródła pakietów debugowania."
 
 #. TRANSLATORS: couldn't open device to write
-#: ../contrib/device-rebind/pk-device-rebind.c:61
+#: ../contrib/device-rebind/pk-device-rebind.c:62
 msgid "Failed to open file"
 msgstr "Otwarcie pliku nie powiodło się"
 
 #. TRANSLATORS: could not write to the device
-#: ../contrib/device-rebind/pk-device-rebind.c:70
+#: ../contrib/device-rebind/pk-device-rebind.c:71
 msgid "Failed to write to the file"
 msgstr "Zapisanie do pliku nie powiodło się"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:110
-#: ../contrib/device-rebind/pk-device-rebind.c:147
+#: ../contrib/device-rebind/pk-device-rebind.c:111
+#: ../contrib/device-rebind/pk-device-rebind.c:148
 msgid "Failed to write to device"
 msgstr "Zapisanie na urządzeniu nie powiodło się"
 
 #. TRANSLATORS: the device could not be found in sysfs
-#: ../contrib/device-rebind/pk-device-rebind.c:175
+#: ../contrib/device-rebind/pk-device-rebind.c:176
 msgid "Device could not be found"
 msgstr "Nie można odnaleźć urządzenia"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:202
+#: ../contrib/device-rebind/pk-device-rebind.c:203
 msgid "Failed to unregister driver"
 msgstr "Usunięcie sterownika z rejestru nie powiodło się"
 
 #. TRANSLATORS: we failed to bind the old driver
-#: ../contrib/device-rebind/pk-device-rebind.c:211
+#: ../contrib/device-rebind/pk-device-rebind.c:212
 msgid "Failed to register driver"
 msgstr "Zarejestrowanie sterownika nie powiodło się"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:260
+#: ../contrib/device-rebind/pk-device-rebind.c:261
 msgid "Device path not found"
 msgstr "Nie odnaleziono ścieżki do urządzenia"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:268
+#: ../contrib/device-rebind/pk-device-rebind.c:269
 msgid "Incorrect device path specified"
 msgstr "Podano niepoprawną ścieżkę do urządzenia"
 
-#: ../contrib/device-rebind/pk-device-rebind.c:293
+#: ../contrib/device-rebind/pk-device-rebind.c:294
 msgid "Show extra debugging information"
 msgstr "Wyświetla dodatkowe informacje o debugowaniu"
 
 #. command line argument, simulate what would be done, but don't actually do it
-#: ../contrib/device-rebind/pk-device-rebind.c:296
+#: ../contrib/device-rebind/pk-device-rebind.c:297
 msgid "Don't actually touch the hardware, only simulate what would be done"
 msgstr "Nie rusza sprzętu, tylko symuluje"
 
 #. TRANSLATORS: command line option: a list of files to install
-#: ../contrib/device-rebind/pk-device-rebind.c:299
+#: ../contrib/device-rebind/pk-device-rebind.c:300
 msgid "Device paths"
 msgstr "Ścieżki do urządzeń"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
-#: ../contrib/device-rebind/pk-device-rebind.c:314
+#: ../contrib/device-rebind/pk-device-rebind.c:315
 msgid "PackageKit Device Reloader"
 msgstr "Ponowne wczytywanie urządzeń PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:322
+#: ../contrib/device-rebind/pk-device-rebind.c:323
 msgid "You need to specify at least one valid device path"
 msgstr "Należy podać co najmniej jedną prawidłową ścieżkę do urządzenia"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
-#: ../contrib/device-rebind/pk-device-rebind.c:332
+#: ../contrib/device-rebind/pk-device-rebind.c:333
 msgid "This script can only be used by the root user"
 msgstr "Ten skrypt może być używany tylko przez użytkownika root"
 
 #. TRANSLATORS: we're going to verify the path first
-#: ../contrib/device-rebind/pk-device-rebind.c:341
+#: ../contrib/device-rebind/pk-device-rebind.c:342
 msgid "Verifying device path"
 msgstr "Sprawdzanie ścieżki do urządzenia"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
-#: ../contrib/device-rebind/pk-device-rebind.c:346
+#: ../contrib/device-rebind/pk-device-rebind.c:347
 msgid "Failed to verify device path"
 msgstr "Sprawdzenie ścieżki do urządzenia nie powiodło się"
 
 #. TRANSLATORS: we're going to try
-#: ../contrib/device-rebind/pk-device-rebind.c:360
+#: ../contrib/device-rebind/pk-device-rebind.c:361
 msgid "Attempting to rebind device"
 msgstr "Próba ponownego dowiązania do urządzenia"
 
 #. TRANSLATORS: we failed to release the current driver
-#: ../contrib/device-rebind/pk-device-rebind.c:365
+#: ../contrib/device-rebind/pk-device-rebind.c:366
 msgid "Failed to rebind device"
 msgstr "Ponowne dowiązanie do urządzenia nie powiodło się"
 
@@ -1967,46 +1977,40 @@ msgstr ""
 "Nie należy instalować tych pakietów, jeśli nie ma się pewności, że to "
 "bezpieczne."
 
-#. TRANSLATORS: warn the user that all bets are off
-#: ../src/pk-polkit-action-lookup.c:202
-msgid "Malicious software can damage your computer or cause other harm."
-msgstr ""
-"Złośliwe oprogramowanie może uszkodzić komputer lub spowodować inne szkody."
-
 #. TRANSLATORS: too many packages to list each one
-#: ../src/pk-polkit-action-lookup.c:277
+#: ../src/pk-polkit-action-lookup.c:273
 msgid "Many packages"
 msgstr "Wiele pakietów"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
-#: ../src/pk-polkit-action-lookup.c:343
+#: ../src/pk-polkit-action-lookup.c:339
 msgid "Only trusted"
 msgstr "Tylko zaufane"
 
 #. TRANSLATORS: turn on all debugging
-#: ../src/egg-debug.c:364
+#: ../src/egg-debug.c:388
 msgid "Show debugging information for all files"
 msgstr "Wyświetla informacje o debugowaniu dla wszystkich plików"
 
 #. TRANSLATORS: a list of modules to debug
-#: ../src/egg-debug.c:440
+#: ../src/egg-debug.c:459
 msgid "Debug these specific modules"
 msgstr "Debuguje podane moduły"
 
 #. TRANSLATORS: a list of functions to debug
-#: ../src/egg-debug.c:443
+#: ../src/egg-debug.c:462
 msgid "Debug these specific functions"
 msgstr "Debuguje podane funkcje"
 
 #. TRANSLATORS: save to a log
-#: ../src/egg-debug.c:446
+#: ../src/egg-debug.c:465
 msgid "Log debugging data to a file"
 msgstr "Zapisuje dane debugowania do pliku"
 
-#: ../src/egg-debug.c:450
+#: ../src/egg-debug.c:469
 msgid "Debugging Options"
 msgstr "Opcje debugowania"
 
-#: ../src/egg-debug.c:450
+#: ../src/egg-debug.c:469
 msgid "Show debugging options"
 msgstr "Wyświetla opcje debugowania"


More information about the PackageKit-commit mailing list