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

Richard Hughes hughsient at kemper.freedesktop.org
Fri Aug 27 15:18:55 PDT 2010


 RELEASE                           |   13 
 backends/aptcc/acqprogress.cpp    |  110 +--
 backends/aptcc/acqprogress.h      |   37 -
 backends/aptcc/apt.cpp            |  120 +++
 backends/aptcc/apt.h              |    8 
 backends/yum/Yum.conf             |    4 
 backends/yum/yumBackend.py        |   17 
 backends/zypp/TODO                |    3 
 backends/zypp/pk-backend-zypp.cpp |   33 -
 backends/zypp/zypp-events.h       |   87 +-
 backends/zypp/zypp-utils.cpp      |  105 ++-
 backends/zypp/zypp-utils.h        |    6 
 configure.ac                      |   15 
 po/id.po                          | 1221 +++++++++++++++++++-------------------
 po/sv.po                          |  605 +++++++++---------
 po/zh_TW.po                       |  464 +++++++-------
 src/pk-backend.c                  |   32 
 src/pk-backend.h                  |    1 
 src/pk-engine.c                   |   11 
 src/pk-transaction.c              |   14 
 20 files changed, 1584 insertions(+), 1322 deletions(-)

New commits:
commit 2d087eaed6572f5c5f2d28ca8c4644c1e27510bd
Author: Mark J Cox <mjc at redhat.com>
Date:   Fri Aug 27 23:18:50 2010 +0100

    yum: Fix update notices: not all yum repos are official fedora ones
    
    Currently a hardcoded link pointing to https://admin.fedoraproject.org/updates/
    is added to all update notes that have an update_id.  But not all repositories
    providing updateinfo.xml data and id's are the upstream fedora repositories.
    
    Ideally the fedora repos would provide the link themselves in a references
    entity, and I'll add a bz for them to do that, but in the meantime the
    following patch ensures the link only gets added to updates from the official
    fedora repo by checking that the 'from' matches 'updates at feodraproject.org'.
    
    I've also moved this logic before parsing other references as this
    vendor-specific URL is likely the most important (and self) reference.
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 154e85f..8eaa89f 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2745,6 +2745,14 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             if desc:
                 desc = desc.replace("\t", " ")
 
+            # add link to bohdi if available
+            if notice['from'].find('updates at fedoraproject.org') != -1:
+                if notice['update_id']:
+                    releasever = self.yumbase.conf.yumvar['releasever']
+                    href = "https://admin.fedoraproject.org/updates/F%s/%s" % (releasever, notice['update_id'])
+                    title = "%s Update %s" % (notice['release'], notice['update_id'])
+                    urls['vendor'].append("%s;%s" % (href, title))
+
             # Update References (Bugzilla, CVE ...)
             refs = notice['references']
             if refs:
@@ -2762,13 +2770,6 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                         else:
                             urls['vendor'].append("%s;%s" % (href, title))
 
-            # add link to bohdi if available
-            if notice['update_id']:
-                releasever = self.yumbase.conf.yumvar['releasever']
-                href = "https://admin.fedoraproject.org/updates/F%s/%s" % (releasever, notice['update_id'])
-                title = "%s Update %s" % (notice['release'], notice['update_id'])
-                urls['vendor'].append("%s;%s" % (href, title))
-
             # other interesting data:
             changelog = ''
             state = notice['status'] or ''
commit 6db4bdaf595d39f6ec299e51478d59fb9487914c
Author: Mark J Cox <mjc at redhat.com>
Date:   Fri Aug 27 23:14:00 2010 +0100

    yum: Redundant updated date gets displayed
    
    Some repos have the 'updated' date on an advisory included in updateinfo.xml
    set even on the initial release, matching the 'issued' date.
    
    In these cases the gpk GUI will display 'This notification was issued on
    08/05/2010 and updated on 08/05/2010' which could lead to confusion.
    
    Signed-off-by: Richard Hughes <richard at hughsie.com>

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 5d862ef..154e85f 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -2774,6 +2774,8 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             state = notice['status'] or ''
             issued = notice['issued'] or ''
             updated = notice['updated'] or ''
+            if updated == issued:
+                updated = ''
 
             # Reboot flag
             if notice.get_metadata().has_key('reboot_suggested') and notice['reboot_suggested']:
commit fb06418962666e3ff9bdbb468cefb323d1ed9d48
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 25 17:25:53 2010 -0300

    aptcc: fix variable name

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 2f20d83..a36145f 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1709,7 +1709,7 @@ cout << "How odd.. The sizes didn't match, email apt at packages.debian.org";
 	}
 
 	// Right now it's not safe to cancel
-	pk_backend_set_allow_cancel (backend, false);
+	pk_backend_set_allow_cancel (m_backend, false);
 
 	// TODO true or false?
 	if (_cancel) {
commit 1e8ee872420693b5fafd482ab362c8c55c7680ba
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 25 17:24:15 2010 -0300

    aptcc: Forbid canceling while installing, the user might need to dpkg --configure -a on the cmd line.

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 49bda91..2f20d83 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1708,6 +1708,9 @@ cout << "How odd.. The sizes didn't match, email apt at packages.debian.org";
 		return false;
 	}
 
+	// Right now it's not safe to cancel
+	pk_backend_set_allow_cancel (backend, false);
+
 	// TODO true or false?
 	if (_cancel) {
 		return true;
commit 622d8c040a825ab531d0c8eaa3f301514ec9deab
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 25 17:04:30 2010 -0300

    aptcc: Disable auto remove by default, it was said that most users hate this...

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 11d9b2d..49bda91 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1401,7 +1401,7 @@ void aptcc::updateInterface(int fd, int writeFd)
 /* Remove unused automatic packages */
 bool aptcc::DoAutomaticRemove(pkgCacheFile &Cache)
 {
-	bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", true);
+	bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove", false);
 	pkgDepCache::ActionGroup group(*Cache);
 
 	if (_config->FindB("APT::Get::Remove",true) == false &&
commit 6aa760a140fafb6f002a58a54f97733b4b636b3d
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 20 18:09:53 2010 -0300

    aptcc: Improved how packages are emited

diff --git a/backends/aptcc/acqprogress.cpp b/backends/aptcc/acqprogress.cpp
index dcb42d4..68626d1 100644
--- a/backends/aptcc/acqprogress.cpp
+++ b/backends/aptcc/acqprogress.cpp
@@ -174,15 +174,11 @@ bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 		emit_package(*it, true);
 	}
 
-	if (CurrentCPS != 0)
+	double localCPS = (CurrentCPS >= 0) ? CurrentCPS : -1 * CurrentCPS;
+	if (localCPS != last_CPS)
 	{
-		double ASize;
-		if (CurrentCPS >= 0) {
-			ASize = CurrentCPS;
-		} else {
-			ASize = -1 * CurrentCPS;
-		}
-		pk_backend_set_speed(m_backend, (int) ASize);
+		last_CPS = localCPS;
+		pk_backend_set_speed(m_backend, (int) last_CPS);
 	}
 
 	Update = false;
diff --git a/backends/aptcc/acqprogress.h b/backends/aptcc/acqprogress.h
index e1d96b7..ccec64d 100644
--- a/backends/aptcc/acqprogress.h
+++ b/backends/aptcc/acqprogress.h
@@ -39,8 +39,9 @@ private:
 
 	unsigned long last_percent;
 	unsigned long last_sub_percent;
-	string last_package_name;
-	aptcc *m_apt;
+	double        last_CPS;
+	string        last_package_name;
+	aptcc         *m_apt;
 
 	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > packages;
 	set<string> currentPackages;
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 44d2fe5..11d9b2d 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -57,7 +57,8 @@ aptcc::aptcc(PkBackend *backend, bool &cancel)
 	Policy(0),
 	m_backend(backend),
 	_cancel(cancel),
-	m_terminalTimeout(120)
+	m_terminalTimeout(120),
+	m_lastSubProgress(0)
 {
 	_cancel = false;
 }
@@ -1199,11 +1200,11 @@ void aptcc::updateInterface(int fd, int writeFd)
 			}
 			//cout << "got line: " << line << endl;
 
-			gchar **split = g_strsplit(line, ":",5);
-			gchar *status = g_strstrip(split[0]);
-			gchar *pkg = g_strstrip(split[1]);
+			gchar **split  = g_strsplit(line, ":",5);
+			gchar *status  = g_strstrip(split[0]);
+			gchar *pkg     = g_strstrip(split[1]);
 			gchar *percent = g_strstrip(split[2]);
-			gchar *str = g_strdup(g_strstrip(split[3]));
+			gchar *str     = g_strdup(g_strstrip(split[3]));
 
 			// major problem here, we got unexpected input. should _never_ happen
 			if(!(pkg && status)) {
@@ -1255,43 +1256,108 @@ void aptcc::updateInterface(int fd, int writeFd)
 					egg_debug("Failed to write");
 				}
 			} else if (strstr(status, "pmstatus") != NULL) {
+				// INSTALL & UPDATE
+				// - Running dpkg
+				// loops ALL
+				// -  0 Installing pkg (sometimes this is skiped)
+				// - 25 Preparing pkg
+				// - 50 Unpacking pkg
+				// - 75 Preparing to configure pkg
+				//   ** Some pkgs have
+				//   - Running post-installation
+				//   - Running dpkg
+				// reloops all
+				// -   0 Configuring pkg
+				// - +25 Configuring pkg (SOMETIMES)
+				// - 100 Installed pkg
+				// after all
+				// - Running post-installation
+
+				// REMOVE
+				// - Running dpkg
+				// loops
+				// - 25  Removing pkg
+				// - 50  Preparing for removal of pkg
+				// - 75  Removing pkg
+				// - 100 Removed pkg
+				// after all
+				// - Running post-installation
+
 				// Let's start parsing the status:
-				if (starts_with(str, "Preparing")) {
+				if (starts_with(str, "Preparing to configure")) {
+					// Preparing to Install/configure
+					cout << "Found Preparing to configure! " << line << endl;
+					// The next item might be Configuring so better it be 100
+					m_lastSubProgress = 100;
+					emitTransactionPackage(pkg, PK_INFO_ENUM_PREPARING);
+					pk_backend_set_sub_percentage(m_backend, 75);
+				} else if (starts_with(str, "Preparing for removal")) {
+					// Preparing to Install/configure
+					cout << "Found Preparing for removal! " << line << endl;
+					m_lastSubProgress = 50;
+					emitTransactionPackage(pkg, PK_INFO_ENUM_REMOVING);
+					pk_backend_set_sub_percentage(m_backend, m_lastSubProgress);
+				} else if (starts_with(str, "Preparing")) {
 					// Preparing to Install/configure
 					cout << "Found Preparing! " << line << endl;
+					// if last package is different then finish it
+					if (!m_lastPackage.empty() && m_lastPackage.compare(pkg) != 0) {
+						cout << "FINISH the last package: " << m_lastPackage << endl;
+						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
+					}
 					emitTransactionPackage(pkg, PK_INFO_ENUM_PREPARING);
-					pk_backend_set_sub_percentage(m_backend, 0);
+					pk_backend_set_sub_percentage(m_backend, 25);
 				} else if (starts_with(str, "Unpacking")) {
 					cout << "Found Unpacking! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_DECOMPRESSING);
-					pk_backend_set_sub_percentage(m_backend, 25);
+					pk_backend_set_sub_percentage(m_backend, 50);
 				} else if (starts_with(str, "Configuring")) {
 					// Installing Package
 					cout << "Found Configuring! " << line << endl;
+					if (m_lastSubProgress >= 100 && !m_lastPackage.empty()) {
+						cout << "FINISH the last package: " << m_lastPackage << endl;
+						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
+						m_lastSubProgress = 0;
+					}
 					emitTransactionPackage(pkg, PK_INFO_ENUM_INSTALLING);
-					pk_backend_set_sub_percentage(m_backend, 50);
+					pk_backend_set_sub_percentage(m_backend, m_lastSubProgress);
+					m_lastSubProgress += 25;
 				} else if (starts_with(str, "Running dpkg")) {
 					cout << "Found Running dpkg! " << line << endl;
 				} else if (starts_with(str, "Running")) {
 					cout << "Found Running! " << line << endl;
-					emitTransactionPackage(pkg, PK_INFO_ENUM_CLEANUP);
-					pk_backend_set_sub_percentage(m_backend, 75);
+					pk_backend_set_status (m_backend, PK_STATUS_ENUM_COMMIT);
 				} else if (starts_with(str, "Installing")) {
 					cout << "Found Installing! " << line << endl;
+					// FINISH the last package
+					if (!m_lastPackage.empty()) {
+						cout << "FINISH the last package: " << m_lastPackage << endl;
+						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
+					}
+					m_lastSubProgress = 0;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_INSTALLING);
-					pk_backend_set_sub_percentage(m_backend, 50);
+					pk_backend_set_sub_percentage(m_backend, 0);
 				} else if (starts_with(str, "Removing")) {
 					cout << "Found Removing! " << line << endl;
+					if (m_lastSubProgress >= 100 && !m_lastPackage.empty()) {
+						cout << "FINISH the last package: " << m_lastPackage << endl;
+						emitTransactionPackage(m_lastPackage, PK_INFO_ENUM_FINISHED);
+					}
+					m_lastSubProgress += 25;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_REMOVING);
-					pk_backend_set_sub_percentage(m_backend, 50);
+					pk_backend_set_sub_percentage(m_backend, m_lastSubProgress);
 				} else if (starts_with(str, "Installed") ||
-					   starts_with(str, "Removed")) {
+					       starts_with(str, "Removed")) {
 					cout << "Found FINISHED! " << line << endl;
+					m_lastSubProgress = 100;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_FINISHED);
-					pk_backend_set_sub_percentage(m_backend, 100);
 				} else {
 					cout << ">>>Unmaped value<<< :" << line << endl;
 				}
+
+				if (!starts_with(str, "Running")) {
+					m_lastPackage = pkg;
+				}
 				m_startCounting = true;
 			} else {
 				m_startCounting = true;
diff --git a/backends/aptcc/apt.h b/backends/aptcc/apt.h
index a07eecd..891bab8 100644
--- a/backends/aptcc/apt.h
+++ b/backends/aptcc/apt.h
@@ -146,6 +146,7 @@ private:
 			  bool Remove,
 			  bool BrokenFix,
 			  unsigned int &ExpectedInst);
+
 	/**
 	 *  interprets dpkg status fd
 	*/
@@ -157,8 +158,11 @@ private:
 	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > m_pkgs;
 	void populateInternalPackages(pkgCacheFile &Cache);
 	void emitTransactionPackage(string name, PkInfoEnum state);
-	time_t m_lastTermAction;
-	bool m_startCounting;
+	time_t     m_lastTermAction;
+	string     m_lastPackage;
+	uint       m_lastSubProgress;
+	PkInfoEnum m_state;
+	bool       m_startCounting;
 	// when the internal terminal timesout after no activity
 	int m_terminalTimeout;
 	pid_t m_child_pid;
commit 9462461c73c72cc4fa238234e16a629920666cb9
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 19 23:25:35 2010 -0300

    aptcc: make sure all downloaded packages emit FINISHED

diff --git a/backends/aptcc/acqprogress.cpp b/backends/aptcc/acqprogress.cpp
index dc8ab11..dcb42d4 100644
--- a/backends/aptcc/acqprogress.cpp
+++ b/backends/aptcc/acqprogress.cpp
@@ -96,6 +96,23 @@ void AcqPackageKitStatus::Fail(pkgAcquire::ItemDesc &Itm)
 };
 
 									/*}}}*/
+// AcqTextStatus::Stop - Finished downloading				/*{{{*/
+// ---------------------------------------------------------------------
+/* This prints out the bytes downloaded and the overall average line
+   speed */
+void AcqPackageKitStatus::Stop()
+{
+	pkgAcquireStatus::Stop();
+	// the items that still on the set are finished
+	for (set<string>::iterator it = currentPackages.begin();
+	     it != currentPackages.end();
+	     it++ )
+	{
+		emit_package(*it, true);
+	}
+}
+
+									/*}}}*/
 // AcqPackageKitStatus::Pulse - Regular event pulse				/*{{{*/
 // ---------------------------------------------------------------------
 /* This draws the current progress. Each line has an overall percent
@@ -149,7 +166,7 @@ bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 		}
 	}
 
-	// the items that are still on the set are finished
+	// the items that still on the set are finished
 	for (set<string>::iterator it = localCurrentPackages.begin();
 	     it != localCurrentPackages.end();
 	     it++ )
diff --git a/backends/aptcc/acqprogress.h b/backends/aptcc/acqprogress.h
index 6bca0e8..e1d96b7 100644
--- a/backends/aptcc/acqprogress.h
+++ b/backends/aptcc/acqprogress.h
@@ -26,6 +26,7 @@ public:
 	virtual void Done(pkgAcquire::ItemDesc &Itm);
 	virtual void Fail(pkgAcquire::ItemDesc &Itm);
 	virtual void Start();
+	virtual void Stop();
 
 	bool Pulse(pkgAcquire *Owner);
 
commit 2075558ee291b42130a2d771f03e460049b180cc
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 19 23:24:41 2010 -0300

    Fixed speed property

diff --git a/src/pk-backend.c b/src/pk-backend.c
index 85257d5..4264715 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -171,6 +171,7 @@ enum {
 	PROP_STATUS,
 	PROP_ROLE,
 	PROP_TRANSACTION_ID,
+	PROP_SPEED,
 	PROP_LAST
 };
 
@@ -2476,6 +2477,9 @@ pk_backend_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
 	case PROP_TRANSACTION_ID:
 		g_value_set_string (value, priv->transaction_id);
 		break;
+	case PROP_SPEED:
+		g_value_set_uint (value, priv->speed);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -2509,6 +2513,9 @@ pk_backend_set_property (GObject *object, guint prop_id, const GValue *value, GP
 		priv->transaction_id = g_value_dup_string (value);
 		egg_debug ("setting backend tid as %s", priv->transaction_id);
 		break;
+	case PROP_SPEED:
+		priv->speed = g_value_get_uint (value);
+		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 		break;
@@ -2601,6 +2608,14 @@ pk_backend_class_init (PkBackendClass *klass)
 				     G_PARAM_READWRITE);
 	g_object_class_install_property (object_class, PROP_TRANSACTION_ID, pspec);
 
+	/**
+	 * PkBackend:speed:
+	 */
+	pspec = g_param_spec_uint ("speed", NULL, NULL,
+				   0, G_MAXUINT, PK_STATUS_ENUM_UNKNOWN,
+				   G_PARAM_READWRITE);
+	g_object_class_install_property (object_class, PROP_SPEED, pspec);
+
 	/* properties */
 	signals[SIGNAL_STATUS_CHANGED] =
 		g_signal_new ("status-changed",
@@ -2744,6 +2759,7 @@ pk_backend_reset (PkBackend *backend)
 	backend->priv->last_remaining = 0;
 	backend->priv->last_percentage = PK_BACKEND_PERCENTAGE_DEFAULT;
 	backend->priv->last_subpercentage = PK_BACKEND_PERCENTAGE_INVALID;
+	backend->priv->speed = 0;
 	pk_store_reset (backend->priv->store);
 	pk_time_reset (backend->priv->time);
 
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 29b0545..503bb9d 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -5530,6 +5530,7 @@ pk_transaction_init (PkTransaction *transaction)
 	transaction->priv->background = PK_HINT_ENUM_UNSET;
 	transaction->priv->elapsed_time = 0;
 	transaction->priv->remaining_time = 0;
+	transaction->priv->speed = 0;
 	transaction->priv->backend = pk_backend_new ();
 	transaction->priv->cache = pk_cache_new ();
 	transaction->priv->conf = pk_conf_new ();
commit 929bb173374d25081e9259dc88fc2e87c2a7c912
Merge: 8945599... a2e9286...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 19 17:57:15 2010 -0300

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

commit 894559904e8426b575a082ddfece9c40d48277a3
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 19 17:55:42 2010 -0300

    aptcc: Fix how downloads are emitted, emit speed too altough packagekit doesn't work yet.

diff --git a/backends/aptcc/acqprogress.cpp b/backends/aptcc/acqprogress.cpp
index f93fc5d..dc8ab11 100644
--- a/backends/aptcc/acqprogress.cpp
+++ b/backends/aptcc/acqprogress.cpp
@@ -3,7 +3,7 @@
 // $Id: acqprogress.cc,v 1.24 2003/04/27 01:56:48 doogie Exp $
 /* ######################################################################
 
-   Acquire Progress - Command line progress meter 
+   Acquire Progress - Command line progress meter
 
    ##################################################################### */
 									/*}}}*/
@@ -39,7 +39,6 @@ AcqPackageKitStatus::AcqPackageKitStatus(aptcc *apt, PkBackend *backend, bool &c
 void AcqPackageKitStatus::Start()
 {
    pkgAcquireStatus::Start();
-   BlankLine[0] = 0;
    ID = 1;
 };
 									/*}}}*/
@@ -48,13 +47,6 @@ void AcqPackageKitStatus::Start()
 /* */
 void AcqPackageKitStatus::IMSHit(pkgAcquire::ItemDesc &Itm)
 {
-//    if (Quiet <= 0)
-//       cout << '\r' << BlankLine << '\r';
-// 
-//    cout << /*_*/("Hit ") << Itm.Description;
-//    if (Itm.Owner->FileSize != 0)
-//       cout << " [" << SizeToStr(Itm.Owner->FileSize) << "B]";
-//    cout << endl;
    Update = true;
 };
 									/*}}}*/
@@ -68,17 +60,6 @@ void AcqPackageKitStatus::Fetch(pkgAcquire::ItemDesc &Itm)
       return;
 
    Itm.Owner->ID = ID++;
-
-//    if (Quiet > 1)
-//       return;
-// 
-//    if (Quiet <= 0)
-//       cout << '\r' << BlankLine << '\r';
-// 
-//    cout << /*_*/("Get:") << Itm.Owner->ID << ' ' << Itm.Description;
-//    if (Itm.Owner->FileSize != 0)
-//       cout << " [" << SizeToStr(Itm.Owner->FileSize) << "B]";
-//    cout << endl;
 };
 									/*}}}*/
 // AcqPackageKitStatus::Done - Completed a download				/*{{{*/
@@ -113,40 +94,20 @@ void AcqPackageKitStatus::Fail(pkgAcquire::ItemDesc &Itm)
 
 	Update = true;
 };
-									/*}}}*/
-// AcqPackageKitStatus::Stop - Finished downloading				/*{{{*/
-// ---------------------------------------------------------------------
-/* This prints out the bytes downloaded and the overall average line
-   speed */
-void AcqPackageKitStatus::Stop()
-{
-   pkgAcquireStatus::Stop();
 
-   if (FetchedBytes != 0 && _error->PendingError() == false)
-      ioprintf(cout,/*_*/("Fetched %sB in %s (%sB/s)\n"),
-	       SizeToStr(FetchedBytes).c_str(),
-	       TimeToStr(ElapsedTime).c_str(),
-	       SizeToStr(CurrentCPS).c_str());
-}
 									/*}}}*/
 // AcqPackageKitStatus::Pulse - Regular event pulse				/*{{{*/
 // ---------------------------------------------------------------------
 /* This draws the current progress. Each line has an overall percent
-   meter and a per active item status meter along with an overall 
+   meter and a per active item status meter along with an overall
    bandwidth and ETA indicator. */
 bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 {
 	pkgAcquireStatus::Pulse(Owner);
 
-	enum {Long = 0,Medium,Short} Mode = Long;
-
-	char Buffer[sizeof(BlankLine)];
-	char *End = Buffer + sizeof(Buffer);
-	char *S = Buffer;
-
 	unsigned long percent_done;
 	percent_done = long(double((CurrentBytes + CurrentItems)*100.0)/double(TotalBytes+TotalItems));
-	
+
 	// Emit the percent done
 	if (last_percent != percent_done) {
 		if (last_percent < percent_done) {
@@ -158,6 +119,7 @@ bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 		last_percent = percent_done;
 	}
 
+	set<string> localCurrentPackages = currentPackages;;
 	for (pkgAcquire::Worker *I = Owner->WorkersBegin(); I != 0;
 		I = Owner->WorkerStep(I))
 	{
@@ -166,12 +128,14 @@ bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 		{
 			continue;
 		}
-		emit_package(I->CurrentItem->ShortDesc);
+		emit_package(I->CurrentItem->ShortDesc, false);
+		localCurrentPackages.erase(I->CurrentItem->ShortDesc);
 
 		// Add the total size and percent
 		if (I->TotalSize > 0 && I->CurrentItem->Owner->Complete == false)
 		{
 			unsigned long sub_percent;
+			// TODO PackageKit needs to emit package with progress.
 			sub_percent = long(double(I->CurrentSize*100.0)/double(I->TotalSize));
 			if (last_sub_percent != sub_percent) {
 				if (last_sub_percent < sub_percent) {
@@ -182,38 +146,27 @@ bool AcqPackageKitStatus::Pulse(pkgAcquire *Owner)
 				}
 				last_sub_percent = sub_percent;
 			}
-		} else {
-			if (last_sub_percent != PK_BACKEND_PERCENTAGE_INVALID) {
-				pk_backend_set_sub_percentage(m_backend,
-							      PK_BACKEND_PERCENTAGE_INVALID);
-				last_sub_percent = PK_BACKEND_PERCENTAGE_INVALID;
-			}
 		}
 	}
 
-	/* Put in the ETA and cps meter, block off signals to prevent strangeness
-	    during resizing */
-	sigset_t Sigs,OldSigs;
-	sigemptyset(&Sigs);
-	sigaddset(&Sigs,SIGWINCH);
-	sigprocmask(SIG_BLOCK,&Sigs,&OldSigs);
+	// the items that are still on the set are finished
+	for (set<string>::iterator it = localCurrentPackages.begin();
+	     it != localCurrentPackages.end();
+	     it++ )
+	{
+		emit_package(*it, true);
+	}
 
-// 	if (CurrentCPS != 0)
-// 	{
-// 		char Tmp[300];
-// 		unsigned long ETA = (unsigned long)((TotalBytes - CurrentBytes)/CurrentCPS);
-// 		sprintf(Tmp," %sB/s %s",SizeToStr(CurrentCPS).c_str(),TimeToStr(ETA).c_str());
-// 		unsigned int Len = strlen(Buffer);
-// 		unsigned int LenT = strlen(Tmp);
-// 	//       if (Len + LenT < ScreenWidth)
-// 	//       {
-// 	// 	 memset(Buffer + Len,' ',ScreenWidth - Len);
-// 	// 	 strcpy(Buffer + ScreenWidth - LenT,Tmp);
-// 	//       }
-// 	}
-	Buffer[/*ScreenWidth*/1024] = 0;
-	BlankLine[/*ScreenWidth*/1024] = 0;
-	sigprocmask(SIG_SETMASK,&OldSigs,0);
+	if (CurrentCPS != 0)
+	{
+		double ASize;
+		if (CurrentCPS >= 0) {
+			ASize = CurrentCPS;
+		} else {
+			ASize = -1 * CurrentCPS;
+		}
+		pk_backend_set_speed(m_backend, (int) ASize);
+	}
 
 	Update = false;
 
@@ -253,11 +206,11 @@ void AcqPackageKitStatus::addPackagePair(pair<pkgCache::PkgIterator, pkgCache::V
 	packages.push_back(packagePair);
 }
 
-void AcqPackageKitStatus::emit_package(const string &name)
+void AcqPackageKitStatus::emit_package(const string &name, bool finished)
 {
 	if (name.compare(last_package_name) != 0 && packages.size()) {
 		// find the package
-		for(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator it = packages.begin();
+		for (vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> >::iterator it = packages.begin();
 			    it != packages.end(); ++it)
 		{
 			if (_cancelled) {
@@ -267,8 +220,16 @@ void AcqPackageKitStatus::emit_package(const string &name)
 			if (name.compare(it->first.Name()) == 0) {
 				m_apt->emit_package(it->first,
 						    it->second,
-						    PK_INFO_ENUM_UNKNOWN, PK_INFO_ENUM_DOWNLOADING);
+						    PK_INFO_ENUM_UNKNOWN,
+							finished ? PK_INFO_ENUM_FINISHED : PK_INFO_ENUM_DOWNLOADING);
 				last_package_name = name;
+
+				// Find the downloading item
+				if (finished) {
+					currentPackages.erase(name);
+				} else {
+					currentPackages.insert(name);
+				}
 				break;
 			}
 		}
diff --git a/backends/aptcc/acqprogress.h b/backends/aptcc/acqprogress.h
index 905a372..6bca0e8 100644
--- a/backends/aptcc/acqprogress.h
+++ b/backends/aptcc/acqprogress.h
@@ -3,7 +3,7 @@
 // $Id: acqprogress.h,v 1.5 2003/02/02 22:24:11 jgg Exp $
 /* ######################################################################
 
-   Acquire Progress - Command line progress meter 
+   Acquire Progress - Command line progress meter
 
    ##################################################################### */
 									/*}}}*/
@@ -17,35 +17,34 @@
 
 class AcqPackageKitStatus : public pkgAcquireStatus
 {
-	PkBackend *m_backend;
-	char BlankLine[1024];
-	unsigned long ID;
-	unsigned long Quiet;
-	bool &_cancelled;
-
-	unsigned long last_percent;
-	unsigned long last_sub_percent;
-	string last_package_name;
-	aptcc *m_apt;
-
-	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > packages;
-
-	void emit_package(const string &name);
-
 public:
-	virtual bool MediaChange(string Media,string Drive);
+	AcqPackageKitStatus(aptcc *apt, PkBackend *backend, bool &cancelled);
+
+	virtual bool MediaChange(string Media, string Drive);
 	virtual void IMSHit(pkgAcquire::ItemDesc &Itm);
 	virtual void Fetch(pkgAcquire::ItemDesc &Itm);
 	virtual void Done(pkgAcquire::ItemDesc &Itm);
 	virtual void Fail(pkgAcquire::ItemDesc &Itm);
 	virtual void Start();
-	virtual void Stop();
 
 	bool Pulse(pkgAcquire *Owner);
 
 	void addPackagePair(pair<pkgCache::PkgIterator, pkgCache::VerIterator> packagePair);
 
-	AcqPackageKitStatus(aptcc *apt, PkBackend *backend, bool &cancelled);
+private:
+	PkBackend *m_backend;
+	unsigned long ID;
+	bool &_cancelled;
+
+	unsigned long last_percent;
+	unsigned long last_sub_percent;
+	string last_package_name;
+	aptcc *m_apt;
+
+	vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > packages;
+	set<string> currentPackages;
+
+	void emit_package(const string &name, bool finished);
 };
 
 #endif
diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 1139454..dcd54b2 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1612,6 +1612,8 @@ cout << "How odd.. The sizes didn't match, email apt at packages.debian.org";
 		return false;
 	}
 
+	pk_backend_set_status (m_backend, PK_STATUS_ENUM_DOWNLOAD);
+	pk_backend_set_simultaneous_mode(m_backend, true);
 	// Download and check if we can continue
 	if (fetcher.Run() != pkgAcquire::Continue
 	    && _cancel == false)
@@ -1620,6 +1622,7 @@ cout << "How odd.. The sizes didn't match, email apt at packages.debian.org";
 		show_errors(m_backend, PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED);
 		return false;
 	}
+	pk_backend_set_simultaneous_mode(m_backend, false);
 
 	if (_error->PendingError() == true) {
 		cout << "PendingError download" << endl;
commit a2e9286206fcc06528525805856012681b92b2ab
Author: zerng07 <zerng07 at fedoraproject.org>
Date:   Tue Aug 17 05:12:24 2010 +0000

    l10n: Updates to Chinese (Taiwan) (zh_TW) translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/zh_TW.po b/po/zh_TW.po
index f47283f..01be68b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -3,25 +3,23 @@
 # This file is distributed under the same license as the PACKAGE package.
 #
 # Terry Chuang <tchuang at redhat.com>, 2008, 2009.
-# Cheng-Chia Tseng <pswo10680 at gmail.com>, 2010
+# Cheng-Chia Tseng <pswo10680 at gmail.com>, 2010, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: packagekit.master\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-05-04 11:16+0000\n"
-"PO-Revision-Date: 2010-06-03 22:44+0800\n"
+"POT-Creation-Date: 2010-08-12 01:24+0000\n"
+"PO-Revision-Date: 2010-08-17 13:10+0800\n"
 "Last-Translator: Cheng-Chia Tseng <pswo10680 at gmail.com>\n"
-"Language-Team: chinese-l10n at googlegroups.com\n"
+"Language-Team: chinese-l10n <chinese-l10n at googlegroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #. TRANSLATORS: the role is the point of the transaction, e.g. update-system
-#: ../client/pk-console.c:176
-#: ../client/pk-console.c:598
+#: ../client/pk-console.c:176 ../client/pk-console.c:598
 msgid "Transaction"
 msgstr "處理事項"
 
@@ -33,7 +31,7 @@ msgstr "系統時間"
 #. TRANSLATORS: this is if the transaction succeeded or not
 #: ../client/pk-console.c:180
 msgid "Succeeded"
-msgstr "已成功"
+msgstr "成功"
 
 #: ../client/pk-console.c:180
 msgid "True"
@@ -45,8 +43,7 @@ msgstr "False"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:182
-#: ../src/pk-polkit-action-lookup.c:332
+#: ../client/pk-console.c:182 ../src/pk-polkit-action-lookup.c:332
 msgid "Role"
 msgstr "任務"
 
@@ -61,8 +58,7 @@ msgstr "(秒)"
 
 #. 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:191
-#: ../src/pk-polkit-action-lookup.c:346
+#: ../client/pk-console.c:191 ../src/pk-polkit-action-lookup.c:346
 msgid "Command line"
 msgstr "指令列"
 
@@ -101,8 +97,7 @@ msgstr "é¡žåž‹"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:253
-#: ../client/pk-console.c:292
+#: ../client/pk-console.c:253 ../client/pk-console.c:292
 msgid "Summary"
 msgstr "摘要"
 
@@ -141,8 +136,7 @@ msgstr "關於更新的詳細資料:"
 #. TRANSLATORS: the package that is not signed by a known key
 #. TRANSLATORS: the package name that was trying to be installed
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:347
-#: ../client/pk-console.c:617
+#: ../client/pk-console.c:347 ../client/pk-console.c:617
 #: ../lib/packagekit-glib2/pk-task-text.c:126
 #: ../lib/packagekit-glib2/pk-task-text.c:208
 #: ../src/pk-polkit-action-lookup.c:357
@@ -163,8 +157,7 @@ msgstr "廢棄"
 
 #. TRANSLATORS: details about the update, the vendor URLs
 #. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
-#: ../client/pk-console.c:358
-#: ../lib/packagekit-glib2/pk-task-text.c:211
+#: ../client/pk-console.c:358 ../lib/packagekit-glib2/pk-task-text.c:211
 msgid "Vendor"
 msgstr "廠商"
 
@@ -205,8 +198,7 @@ msgstr "已發佈"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:390
-#: ../lib/packagekit-glib2/pk-console-shared.c:511
+#: ../client/pk-console.c:390 ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updated"
 msgstr "已更新"
 
@@ -287,8 +279,8 @@ msgstr "嚴重錯誤"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
 #: ../client/pk-console.c:696
-#: ../contrib/command-not-found/pk-command-not-found.c:433
-#: ../contrib/command-not-found/pk-command-not-found.c:606
+#: ../contrib/command-not-found/pk-command-not-found.c:454
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "處理事項失敗"
 
@@ -313,19 +305,26 @@ msgstr "請登出並再次登入來完成更新。"
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
 #: ../client/pk-console.c:823
-msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgid ""
+"Please restart the computer to complete the update as important security "
+"updates have been installed."
 msgstr "因為重大安全性更新已安裝,請重新啟動電腦來完成更新動作。"
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
 #: ../client/pk-console.c:826
-msgid "Please logout and login to complete the update as important security updates have been installed."
+msgid ""
+"Please logout and login to complete the update as important security updates "
+"have been installed."
 msgstr "因為重大安全性更新已安裝,請登出並再次登入來完成更新動作。"
 
 #. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
 #: ../client/pk-console.c:852
 #, c-format
-msgid "Expected package name, actually got file. Try using 'pkcon install-local %s' instead."
-msgstr "預期的套件名稱,已實際取得檔案。嘗試使用 'pkcon install-local %s' 來替代。"
+msgid ""
+"Expected package name, actually got file. Try using 'pkcon install-local %s' "
+"instead."
+msgstr ""
+"預期的套件名稱,已實際取得檔案。嘗試使用 '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:860
@@ -340,8 +339,7 @@ msgid "This tool could not find the installed package: %s"
 msgstr "此工具無法找到已安裝的套件:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:916
-#: ../client/pk-console.c:944
+#: ../client/pk-console.c:916 ../client/pk-console.c:944
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "此工具無法找到這個套件:%s"
@@ -350,10 +348,8 @@ msgstr "此工具無法找到這個套件:%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:972
-#: ../client/pk-console.c:1000
-#: ../client/pk-console.c:1028
-#: ../client/pk-console.c:1056
+#: ../client/pk-console.c:972 ../client/pk-console.c:1000
+#: ../client/pk-console.c:1028 ../client/pk-console.c:1056
 #: ../client/pk-console.c:1084
 #, c-format
 msgid "This tool could not find all the packages: %s"
@@ -380,8 +376,7 @@ msgid "Failed to get the time since this action was last completed"
 msgstr "無法取得此動作最後完成後的時間"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1268
-#: ../client/pk-monitor.c:326
+#: ../client/pk-console.c:1268 ../client/pk-monitor.c:373
 msgid "Show the program version and exit"
 msgstr "顯示程式版本然後離開"
 
@@ -413,7 +408,8 @@ msgstr "使用閒置的網路頻寬與較少的能源來執行指令"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
 #: ../client/pk-console.c:1286
-msgid "Print to screen a machine readable output, rather than using animated widgets"
+msgid ""
+"Print to screen a machine readable output, rather than using animated widgets"
 msgstr "將機器可讀的輸出列印到畫面,而不是使用動畫化的小工具"
 
 #. TRANSLATORS: we failed to contact the daemon
@@ -422,128 +418,122 @@ msgid "Failed to contact PackageKit"
 msgstr "聯絡 PackageKit 失敗"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1369
+#: ../client/pk-console.c:1370
 msgid "The proxy could not be set"
 msgstr "無法設定 proxy"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1381
+#: ../client/pk-console.c:1382
 msgid "The install root could not be set"
 msgstr "無法設定安裝的根目錄"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1393
+#: ../client/pk-console.c:1394
 msgid "The filter specified was invalid"
 msgstr "指定的過濾條件無效"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1412
+#: ../client/pk-console.c:1413
 msgid "A search type is required, e.g. name"
 msgstr "需要選取搜尋類型,例如:名稱"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1419
-#: ../client/pk-console.c:1431
-#: ../client/pk-console.c:1443
-#: ../client/pk-console.c:1455
+#: ../client/pk-console.c:1420 ../client/pk-console.c:1432
+#: ../client/pk-console.c:1444 ../client/pk-console.c:1456
 msgid "A search term is required"
 msgstr "需要輸入搜尋用的關鍵詞"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1465
+#: ../client/pk-console.c:1466
 msgid "Invalid search type"
 msgstr "無效的搜尋類型"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1471
+#: ../client/pk-console.c:1472
 msgid "A package name to install is required"
 msgstr "需要有要安裝的套件名稱"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1480
+#: ../client/pk-console.c:1481
 msgid "A filename to install is required"
 msgstr "需要有要安裝的檔案名稱"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1492
+#: ../client/pk-console.c:1493
 msgid "A type, key_id and package_id are required"
 msgstr "需要指定一個類型、key_id 以及 package_id"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1503
+#: ../client/pk-console.c:1504
 msgid "A package name to remove is required"
 msgstr "需要有要移除的套件名稱"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1512
+#: ../client/pk-console.c:1513
 msgid "A destination directory and the package names to download are required"
 msgstr "需要有目標資料夾與要下載的套件名稱"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1519
+#: ../client/pk-console.c:1520
 msgid "Directory not found"
 msgstr "找不到目錄"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1528
+#: ../client/pk-console.c:1529
 msgid "A licence identifier (eula-id) is required"
 msgstr "需要指定一個授權合約的辨識符號 (eula-id)"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1539
+#: ../client/pk-console.c:1540
 msgid "A transaction identifier (tid) is required"
 msgstr "需要處理事項識別符 (tid)"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1560
+#: ../client/pk-console.c:1561
 msgid "A package name to resolve is required"
 msgstr "需要指定想解析套件的名稱"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1571
-#: ../client/pk-console.c:1582
+#: ../client/pk-console.c:1572 ../client/pk-console.c:1583
 msgid "A repository name is required"
 msgstr "需要指定套件庫名稱"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1593
+#: ../client/pk-console.c:1594
 msgid "A repo name, parameter and value are required"
 msgstr "需要指定一個套件庫名稱、參數和值"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1610
+#: ../client/pk-console.c:1611
 msgid "An action, e.g. 'update-system' is required"
 msgstr "需要指定一項動作,例如:「update-system」"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1617
+#: ../client/pk-console.c:1618
 msgid "A correct role is required"
 msgstr "需要指定正確的任務"
 
 #. TRANSLATORS: The user did not provide a package name
 #. TRANSLATORS: This is when the user fails to supply the package name
-#: ../client/pk-console.c:1627
-#: ../client/pk-console.c:1642
-#: ../client/pk-console.c:1651
-#: ../client/pk-console.c:1671
-#: ../client/pk-console.c:1680
-#: ../client/pk-generate-pack.c:316
+#: ../client/pk-console.c:1628 ../client/pk-console.c:1643
+#: ../client/pk-console.c:1652 ../client/pk-console.c:1672
+#: ../client/pk-console.c:1681 ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "需要提供套件名稱"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1660
+#: ../client/pk-console.c:1661
 msgid "A package provide string is required"
 msgstr "需要指定套件提供字串"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1740
+#: ../client/pk-console.c:1742
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "不支援 '%s' 選項"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1750
+#: ../client/pk-console.c:1752
 msgid "Command failed"
 msgstr "指令失敗"
 
@@ -589,14 +579,15 @@ msgstr "幕後程式啟動失敗"
 
 #. TRANSLATORS: This is when the backend doesn't have the capability to get-depends
 #. TRANSLATORS: This is when the backend doesn't have the capability to download
-#: ../client/pk-generate-pack.c:353
-#: ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:353 ../client/pk-generate-pack.c:359
 msgid "The package manager cannot perform this type of operation."
 msgstr "套件管理員無法執行這種類型的操作。"
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:366
-msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgid ""
+"Service packs cannot be created as PackageKit was not built with libarchive "
+"support."
 msgstr "服務包無法建立,因為建構 PackageKit 時沒有啟用 libarchive 支援。"
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
@@ -652,160 +643,164 @@ msgstr "服務包建立了「%s」"
 msgid "Failed to create '%s': %s"
 msgstr "無法建立「%s」:%s"
 
-#: ../client/pk-monitor.c:256
+#: ../client/pk-monitor.c:286
 msgid "Failed to get daemon state"
 msgstr "未能取得幕後程式狀態"
 
+#: ../client/pk-monitor.c:351
+msgid "Failed to get properties"
+msgstr "未能取得屬性"
+
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:342
+#: ../client/pk-monitor.c:389
 msgid "PackageKit Monitor"
 msgstr "PackageKit 監控程式"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:495
+#: ../contrib/browser-plugin/pk-plugin-install.c:497
 msgid "Getting package information..."
 msgstr "正在取得套件資訊..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:501
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 #, c-format
 msgid "Run %s"
 msgstr "執行 %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:507
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 msgid "Installed version"
 msgstr "已安裝的版本"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 #, c-format
 msgid "Run version %s now"
 msgstr "立刻執行版本 %s"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:521
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 msgid "Run now"
 msgstr "立刻執行"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:527
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 #, c-format
 msgid "Update to version %s"
 msgstr "更新至版本 %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:533
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Install %s now"
 msgstr "立刻安裝 %s"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:536
+#: ../contrib/browser-plugin/pk-plugin-install.c:538
 msgid "Version"
 msgstr "版本"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:541
+#: ../contrib/browser-plugin/pk-plugin-install.c:543
 msgid "No packages found for your system"
 msgstr "找不到適合您系統的套件"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:546
+#: ../contrib/browser-plugin/pk-plugin-install.c:548
 msgid "Installing..."
 msgstr "正在安裝..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:366
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading details about the software sources."
 msgstr "正在下載關於軟體來源的詳細資料。"
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:370
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "正在下載檔案清單 (這會花上一段時間才能完成)。"
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:374
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Waiting for package manager lock."
 msgstr "正在等待套件管理程式解鎖。"
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:378
+#: ../contrib/command-not-found/pk-command-not-found.c:379
 msgid "Loading list of packages."
 msgstr "正在載入套件清單。"
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:424
+#: ../contrib/command-not-found/pk-command-not-found.c:445
 msgid "Failed to search for file"
 msgstr "搜尋檔案失敗"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:569
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "啟動失敗:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:597
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "安裝套件失敗"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:673
+#: ../contrib/command-not-found/pk-command-not-found.c:701
 msgid "PackageKit Command Not Found"
 msgstr "找不到 PackageKit 指令"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:699
+#: ../contrib/command-not-found/pk-command-not-found.c:727
 msgid "Command not found."
 msgstr "找不到指令。"
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:717
+#: ../contrib/command-not-found/pk-command-not-found.c:745
 msgid "Similar command is:"
 msgstr "相似指令為:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:727
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "執行相似指令:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:741
-#: ../contrib/command-not-found/pk-command-not-found.c:750
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "相似指令有:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:757
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "請選擇一項指令來執行"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:775
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "提供此檔案的套件為:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:780
+#: ../contrib/command-not-found/pk-command-not-found.c:808
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "是否要安裝「%s」套件以提供「%s」指令?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:804
+#: ../contrib/command-not-found/pk-command-not-found.c:832
 msgid "Packages providing this file are:"
 msgstr "提供此檔案的套件有:"
 
 #. TRANSLATORS: Show the user a list of packages that they can install to provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:814
+#: ../contrib/command-not-found/pk-command-not-found.c:842
 msgid "Suitable packages are:"
 msgstr "合適的套件有:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:823
+#: ../contrib/command-not-found/pk-command-not-found.c:851
 msgid "Please choose a package to install"
 msgstr "請選擇欲安裝的套件"
 
@@ -822,7 +817,8 @@ msgstr "找不到套件 %s,或是已經安裝了:%s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:518
-msgid "Don't actually install any packages, only simulate what would be installed"
+msgid ""
+"Don't actually install any packages, only simulate what would be installed"
 msgstr "不要真的安裝任何套件,只要模擬要安裝什麼就好"
 
 #. command line argument, do we skip packages that depend on the ones specified
@@ -973,7 +969,7 @@ msgstr "在模擬模式內不會安裝套件"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:862
-#: ../lib/packagekit-glib2/pk-console-shared.c:283
+#: ../lib/packagekit-glib2/pk-console-shared.c:289
 #, c-format
 msgid "Installing packages"
 msgstr "正在安裝套件"
@@ -1104,464 +1100,464 @@ msgstr "PackageKit 套件清單"
 msgid "PackageKit Service Pack"
 msgstr "PackageKit 服務包"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:59
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "請輸入一個 1 到 %i 之間的數字:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:185
+#: ../lib/packagekit-glib2/pk-console-shared.c:191
 msgid "More than one package matches:"
 msgstr "超過一個符合的套件:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:196
+#: ../lib/packagekit-glib2/pk-console-shared.c:202
 msgid "Please choose the correct package: "
 msgstr "請選擇正確的套件:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:251
+#: ../lib/packagekit-glib2/pk-console-shared.c:257
 msgid "Unknown state"
 msgstr "不明的狀態"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:255
+#: ../lib/packagekit-glib2/pk-console-shared.c:261
 msgid "Starting"
 msgstr "正在開始"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:259
+#: ../lib/packagekit-glib2/pk-console-shared.c:265
 msgid "Waiting in queue"
 msgstr "正在依佇列等待"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:263
+#: ../lib/packagekit-glib2/pk-console-shared.c:269
 msgid "Running"
 msgstr "正在執行"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:267
+#: ../lib/packagekit-glib2/pk-console-shared.c:273
 msgid "Querying"
 msgstr "正在查詢"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:271
+#: ../lib/packagekit-glib2/pk-console-shared.c:277
 msgid "Getting information"
 msgstr "正在取得資訊"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:275
+#: ../lib/packagekit-glib2/pk-console-shared.c:281
 msgid "Removing packages"
 msgstr "正在移除套件"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:279
-#: ../lib/packagekit-glib2/pk-console-shared.c:657
+#: ../lib/packagekit-glib2/pk-console-shared.c:285
+#: ../lib/packagekit-glib2/pk-console-shared.c:663
 msgid "Downloading packages"
 msgstr "正在下載套件"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:287
+#: ../lib/packagekit-glib2/pk-console-shared.c:293
 msgid "Refreshing software list"
 msgstr "正在重新整理軟體清單"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:291
+#: ../lib/packagekit-glib2/pk-console-shared.c:297
 msgid "Installing updates"
 msgstr "正在安裝更新"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config files
-#: ../lib/packagekit-glib2/pk-console-shared.c:295
+#: ../lib/packagekit-glib2/pk-console-shared.c:301
 msgid "Cleaning up packages"
 msgstr "正在清理套件"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:299
+#: ../lib/packagekit-glib2/pk-console-shared.c:305
 msgid "Obsoleting packages"
 msgstr "正在廢棄套件"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:303
+#: ../lib/packagekit-glib2/pk-console-shared.c:309
 msgid "Resolving dependencies"
 msgstr "正在解析相依性"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:307
+#: ../lib/packagekit-glib2/pk-console-shared.c:313
 msgid "Checking signatures"
 msgstr "正在檢查簽章"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:311
-#: ../lib/packagekit-glib2/pk-console-shared.c:617
+#: ../lib/packagekit-glib2/pk-console-shared.c:317
+#: ../lib/packagekit-glib2/pk-console-shared.c:623
 msgid "Rolling back"
 msgstr "正在回復"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:315
+#: ../lib/packagekit-glib2/pk-console-shared.c:321
 msgid "Testing changes"
 msgstr "正在測試變更"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package database
-#: ../lib/packagekit-glib2/pk-console-shared.c:319
+#: ../lib/packagekit-glib2/pk-console-shared.c:325
 msgid "Committing changes"
 msgstr "正在遞交變更"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:323
+#: ../lib/packagekit-glib2/pk-console-shared.c:329
 msgid "Requesting data"
 msgstr "正在請求資料"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:327
+#: ../lib/packagekit-glib2/pk-console-shared.c:333
 msgid "Finished"
 msgstr "已完成"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:331
+#: ../lib/packagekit-glib2/pk-console-shared.c:337
 msgid "Cancelling"
 msgstr "正在取消"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:335
+#: ../lib/packagekit-glib2/pk-console-shared.c:341
 msgid "Downloading repository information"
 msgstr "正在下載套件庫資訊"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:339
+#: ../lib/packagekit-glib2/pk-console-shared.c:345
 msgid "Downloading list of packages"
 msgstr "正在下載套件清單"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:343
+#: ../lib/packagekit-glib2/pk-console-shared.c:349
 msgid "Downloading file lists"
 msgstr "正在下載檔案清單"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:347
+#: ../lib/packagekit-glib2/pk-console-shared.c:353
 msgid "Downloading lists of changes"
 msgstr "正在下載變更的清單"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:351
+#: ../lib/packagekit-glib2/pk-console-shared.c:357
 msgid "Downloading groups"
 msgstr "正在下載群組"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:355
+#: ../lib/packagekit-glib2/pk-console-shared.c:361
 msgid "Downloading update information"
 msgstr "正在下載更新資訊"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:359
+#: ../lib/packagekit-glib2/pk-console-shared.c:365
 msgid "Repackaging files"
 msgstr "正在重新包裝檔案"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:363
+#: ../lib/packagekit-glib2/pk-console-shared.c:369
 msgid "Loading cache"
 msgstr "正在載入快取"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:367
+#: ../lib/packagekit-glib2/pk-console-shared.c:373
 msgid "Scanning applications"
 msgstr "正在掃描應用程式"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:371
+#: ../lib/packagekit-glib2/pk-console-shared.c:377
 msgid "Generating package lists"
 msgstr "正在產生套件清單"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:375
+#: ../lib/packagekit-glib2/pk-console-shared.c:381
 msgid "Waiting for package manager lock"
 msgstr "正在等候套件管程式解鎖"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:379
+#: ../lib/packagekit-glib2/pk-console-shared.c:385
 msgid "Waiting for authentication"
 msgstr "正在等候認證"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:383
+#: ../lib/packagekit-glib2/pk-console-shared.c:389
 msgid "Updating running applications"
 msgstr "正在更新正在執行中的應用程式"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:387
+#: ../lib/packagekit-glib2/pk-console-shared.c:393
 msgid "Checking applications in use"
 msgstr "正在檢查使用中的應用程式"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:391
+#: ../lib/packagekit-glib2/pk-console-shared.c:397
 msgid "Checking libraries in use"
 msgstr "正在檢查使用中的函式庫"
 
 #. TRANSLATORS: transaction state, we are copying package files before or after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:395
+#: ../lib/packagekit-glib2/pk-console-shared.c:401
 msgid "Copying files"
 msgstr "正在複製檔案"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:413
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Trivial"
 msgstr "小"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:417
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Normal"
 msgstr "一般"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:421
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Important"
 msgstr "重要"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:425
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Security"
 msgstr "安全性"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:429
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Bug fix "
 msgstr "錯誤修正"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:433
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Enhancement"
 msgstr "增強"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:437
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Blocked"
 msgstr "已阻擋"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:442
-#: ../lib/packagekit-glib2/pk-console-shared.c:515
+#: ../lib/packagekit-glib2/pk-console-shared.c:448
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
 msgid "Installed"
 msgstr "已安裝"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:447
+#: ../lib/packagekit-glib2/pk-console-shared.c:453
 msgid "Available"
 msgstr "可用"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:465
+#: ../lib/packagekit-glib2/pk-console-shared.c:471
 msgid "Downloading"
 msgstr "正在下載"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:469
+#: ../lib/packagekit-glib2/pk-console-shared.c:475
 msgid "Updating"
 msgstr "正在更新"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:473
-#: ../lib/packagekit-glib2/pk-console-shared.c:593
+#: ../lib/packagekit-glib2/pk-console-shared.c:479
+#: ../lib/packagekit-glib2/pk-console-shared.c:599
 msgid "Installing"
 msgstr "正在安裝"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:477
-#: ../lib/packagekit-glib2/pk-console-shared.c:589
+#: ../lib/packagekit-glib2/pk-console-shared.c:483
+#: ../lib/packagekit-glib2/pk-console-shared.c:595
 msgid "Removing"
 msgstr "正在移除"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:481
+#: ../lib/packagekit-glib2/pk-console-shared.c:487
 msgid "Cleaning up"
 msgstr "正在清除"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:485
+#: ../lib/packagekit-glib2/pk-console-shared.c:491
 msgid "Obsoleting"
 msgstr "正在廢棄"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:489
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Reinstalling"
 msgstr "正在重新安裝"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:507
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloaded"
 msgstr "已下載"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:519
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
 msgid "Removed"
 msgstr "已移除"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:523
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaned up"
 msgstr "已清除"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:527
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleted"
 msgstr "已廢棄"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:531
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalled"
 msgstr "已重新安裝"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:549
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Unknown role type"
 msgstr "未知的任務類型"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:553
+#: ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Getting dependencies"
 msgstr "正在取得相容性"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:557
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Getting update details"
 msgstr "正在取得更新詳細資料"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:561
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Getting details"
 msgstr "正在取得詳細資料"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:565
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Getting requires"
 msgstr "正在取得需求"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:569
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Getting updates"
 msgstr "正在取得更新"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:573
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Searching by details"
 msgstr "正在依詳細資料搜尋"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:577
+#: ../lib/packagekit-glib2/pk-console-shared.c:583
 msgid "Searching by file"
 msgstr "正在依檔案搜尋"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:581
+#: ../lib/packagekit-glib2/pk-console-shared.c:587
 msgid "Searching groups"
 msgstr "正在搜尋群組"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:585
+#: ../lib/packagekit-glib2/pk-console-shared.c:591
 msgid "Searching by name"
 msgstr "正在依名稱搜尋"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:597
+#: ../lib/packagekit-glib2/pk-console-shared.c:603
 msgid "Installing files"
 msgstr "正在安裝檔案"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:601
+#: ../lib/packagekit-glib2/pk-console-shared.c:607
 msgid "Refreshing cache"
 msgstr "正在重新整理快取"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:605
+#: ../lib/packagekit-glib2/pk-console-shared.c:611
 msgid "Updating packages"
 msgstr "正在更新套件"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:609
+#: ../lib/packagekit-glib2/pk-console-shared.c:615
 msgid "Updating system"
 msgstr "正在更新系統"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:613
+#: ../lib/packagekit-glib2/pk-console-shared.c:619
 msgid "Canceling"
 msgstr "正在取消"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:621
+#: ../lib/packagekit-glib2/pk-console-shared.c:627
 msgid "Getting repositories"
 msgstr "正在取得套件庫"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:625
+#: ../lib/packagekit-glib2/pk-console-shared.c:631
 msgid "Enabling repository"
 msgstr "正在啟用套件庫"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:629
+#: ../lib/packagekit-glib2/pk-console-shared.c:635
 msgid "Setting data"
 msgstr "正在設定資料"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:633
+#: ../lib/packagekit-glib2/pk-console-shared.c:639
 msgid "Resolving"
 msgstr "正在解析"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:637
+#: ../lib/packagekit-glib2/pk-console-shared.c:643
 msgid "Getting file list"
 msgstr "正在取得檔案清單"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:641
+#: ../lib/packagekit-glib2/pk-console-shared.c:647
 msgid "Getting provides"
 msgstr "正在取得提供什麼"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:645
+#: ../lib/packagekit-glib2/pk-console-shared.c:651
 msgid "Installing signature"
 msgstr "正在安裝簽章"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:649
+#: ../lib/packagekit-glib2/pk-console-shared.c:655
 msgid "Getting packages"
 msgstr "正在取得套件"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:653
+#: ../lib/packagekit-glib2/pk-console-shared.c:659
 msgid "Accepting EULA"
 msgstr "正在接受終端使用者授權同意書"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:661
+#: ../lib/packagekit-glib2/pk-console-shared.c:667
 msgid "Getting upgrades"
 msgstr "正在取得升級"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:665
+#: ../lib/packagekit-glib2/pk-console-shared.c:671
 msgid "Getting categories"
 msgstr "正在取得分類"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:669
+#: ../lib/packagekit-glib2/pk-console-shared.c:675
 msgid "Getting transactions"
 msgstr "正在取得處理事項"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:673
-#: ../lib/packagekit-glib2/pk-console-shared.c:677
+#: ../lib/packagekit-glib2/pk-console-shared.c:679
+#: ../lib/packagekit-glib2/pk-console-shared.c:683
 msgid "Simulating install"
 msgstr "正在模擬安裝"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:681
+#: ../lib/packagekit-glib2/pk-console-shared.c:687
 msgid "Simulating remove"
 msgstr "正在模擬移除"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:685
+#: ../lib/packagekit-glib2/pk-console-shared.c:691
 msgid "Simulating update"
 msgstr "正在模擬更新"
 
@@ -1720,7 +1716,8 @@ msgid "Authentication is required to accept a EULA"
 msgstr "要接受終端使用者授權條款協議需先經過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to cancel a task that was not started by yourself"
+msgid ""
+"Authentication is required to cancel a task that was not started by yourself"
 msgstr "若要取消一項並非由您啟動的工作,您必須先經過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
@@ -1728,11 +1725,14 @@ msgid "Authentication is required to change software source parameters"
 msgstr "要更改軟體來源參數需先經過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to change the location used to decompress packages"
+msgid ""
+"Authentication is required to change the location used to decompress packages"
 msgstr "要變更用來解壓縮套件的位置需先通過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgid ""
+"Authentication is required to consider a key used for signing packages as "
+"trusted"
 msgstr "要將一個用來簽署套件的金鑰列為已信任的金鑰需先經過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:13
@@ -1760,7 +1760,9 @@ msgid "Authentication is required to rollback a transaction"
 msgstr "要回復處理事項需要先經過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Authentication is required to set the network proxy used for downloading packages"
+msgid ""
+"Authentication is required to set the network proxy used for downloading "
+"packages"
 msgstr "要設定用來下載套件的網路代理伺服器 需先經過身份認證"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:20
@@ -1902,51 +1904,53 @@ msgstr "正確的使用者 (一般為 root) 沒有啟動可執行檔"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgid ""
+"The org.freedesktop.PackageKit.conf file is not installed in the system "
+"directory:"
 msgstr "org.freedesktop.PackageKit.conf 檔案尚未安裝在系統目錄中:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:199
+#: ../src/pk-main.c:200
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "要使用的套件後端程式,例如:dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:203
 msgid "Daemonize and detach from the terminal"
 msgstr "幕後化並由終端機分離"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:206
 msgid "Disable the idle timer"
 msgstr "停用閒置計時器"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:209
 msgid "Show version and exit"
 msgstr "顯示版本並離開"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:212
 msgid "Exit after a small delay"
 msgstr "經過一段短暫延遲後便離開"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:214
+#: ../src/pk-main.c:215
 msgid "Exit after the engine has loaded"
 msgstr "引擎載入後離開"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:230
 msgid "PackageKit service"
 msgstr "PackageKit 服務"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:266
+#: ../src/pk-main.c:267
 msgid "Cannot connect to the system bus"
 msgstr "無法連接至系統 bus"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:317
+#: ../src/pk-main.c:318
 msgid "Error trying to start:"
 msgstr "嘗試啟動時發生錯誤:"
 
@@ -1955,8 +1959,7 @@ msgid "To install debugging packages, extra sources need to be enabled"
 msgstr "要安裝除錯套件,需要啟用額外的來源"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:171
-#: ../src/pk-polkit-action-lookup.c:190
+#: ../src/pk-polkit-action-lookup.c:171 ../src/pk-polkit-action-lookup.c:190
 msgid "The software is not from a trusted source."
 msgstr "這個軟體並非來自信任的來源。"
 
@@ -2016,64 +2019,93 @@ msgstr "顯示除錯選項"
 
 #~ msgid "Cannot install when offline"
 #~ msgstr "當離線時無法安裝"
+
 #~ msgid "Cannot refresh cache whilst offline"
 #~ msgstr "當離線時無法重新整理快取"
+
 #~ msgid "Please restart the application as it is being used."
 #~ msgstr "請重新啟動應用程式因為該應用程式正被使用中。"
+
 #~ msgid "This tool could not install the files: %s"
 #~ msgstr "此工具無法安裝檔案:%s"
+
 #~ msgid "This tool could not remove the packages: %s"
 #~ msgstr "此工具無法移除套件:%s"
+
 #~ msgid "Proceed removing additional packages?"
 #~ msgstr "是否要進行移除額外套件?"
+
 #~ msgid "The package removal was canceled!"
 #~ msgstr "套件移除已取消!"
+
 #~ msgid "This tool could not download the package %s as it could not be found"
 #~ msgstr "此工具無法下載 %s 套件因為找不到該套件"
+
 #~ msgid "This tool could not download the packages: %s"
 #~ msgstr "此工具無法下載套件:%s"
+
 #~ msgid "This tool could not update %s: %s"
 #~ msgstr "此工具無法更新 %s:%s"
+
 #~ msgid "This tool could not get the requirements for %s: %s"
 #~ msgstr "此工具無法取得 %s 的需求:%s"
+
 #~ msgid "This tool could not get the dependencies for %s: %s"
 #~ msgstr "此工具無法取得 %s 的相依性:%s"
+
 #~ msgid "This tool could not get package details for %s: %s"
 #~ msgstr "此工具無法取得 %s 的套件詳細資料:%s"
+
 #~ msgid "This tool could not find the files for %s: %s"
 #~ msgstr "此工具找不到 %s 的檔案:%s"
+
 #~ msgid "This tool could not get the file list for %s: %s"
 #~ msgstr "此工具無法取得 %s 的檔案清單:%s"
+
 #~ msgid "File already exists: %s"
 #~ msgstr "檔案已經存在:%s"
+
 #~ msgid "This tool could not get package list: %s"
 #~ msgstr "此工具無法取得套件清單:%s"
+
 #~ msgid "File does not exist: %s"
 #~ msgstr "檔案不存在:%s"
+
 #~ msgid "Packages to add"
 #~ msgstr "要新增的套件"
+
 #~ msgid "Packages to remove"
 #~ msgstr "要移除的套件"
+
 #~ msgid "not found."
 #~ msgstr "找不到。"
+
 #~ msgid "No packages can be found to install"
 #~ msgstr "找不到要安裝的套件"
+
 #~ msgid "This tool could not find the update details for %s: %s"
 #~ msgstr "此工具找不到 %s 的更新詳細資料:%s"
+
 #~ msgid "This tool could not get the update details for %s: %s"
 #~ msgstr "此工具無法取得 %s 的更新詳細資料:%s"
+
 #~ msgid "Error:"
 #~ msgstr "錯誤:"
+
 #~ msgid "Do you agree to this license?"
 #~ msgstr "您是否同意此授權合約?"
+
 #~ msgid "The license was refused."
 #~ msgstr "已拒絕授權合約。"
+
 #~ msgid "This tool could not connect to system DBUS."
 #~ msgstr "此工具無法連接至系統的 DBUS。"
+
 #~ msgid "A list file name to create is required"
 #~ msgstr "需要想建立的清單檔名"
+
 #~ msgid "A list file to open is required"
 #~ msgstr "需要想開啟的清單檔案"
+
 #~ msgid "Incorrect privileges for this operation"
 #~ msgstr "執行這項操作的權限不對"
-
commit 8b5d9a7614132d74690b044a33a28dd3958acaa5
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Fri Aug 13 02:46:15 2010 -0300

    apcc: Improved user experience by setting subprogress on package installation/remove/update

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index f7a381d..d7892af 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1260,28 +1260,35 @@ void aptcc::updateInterface(int fd, int writeFd)
 					// Preparing to Install/configure
 					cout << "Found Preparing! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_PREPARING);
+					pk_backend_set_sub_percentage(m_backend, 0);
 				} else if (starts_with(str, "Unpacking")) {
 					cout << "Found Unpacking! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_DECOMPRESSING);
+					pk_backend_set_sub_percentage(m_backend, 25);
 				} else if (starts_with(str, "Configuring")) {
 					// Installing Package
 					cout << "Found Configuring! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_INSTALLING);
+					pk_backend_set_sub_percentage(m_backend, 50);
 				} else if (starts_with(str, "Running dpkg")) {
 					cout << "Found Running dpkg! " << line << endl;
 				} else if (starts_with(str, "Running")) {
 					cout << "Found Running! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_CLEANUP);
+					pk_backend_set_sub_percentage(m_backend, 75);
 				} else if (starts_with(str, "Installing")) {
 					cout << "Found Installing! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_INSTALLING);
+					pk_backend_set_sub_percentage(m_backend, 50);
 				} else if (starts_with(str, "Removing")) {
 					cout << "Found Removing! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_REMOVING);
+					pk_backend_set_sub_percentage(m_backend, 50);
 				} else if (starts_with(str, "Installed") ||
 					   starts_with(str, "Removed")) {
 					cout << "Found FINISHED! " << line << endl;
 					emitTransactionPackage(pkg, PK_INFO_ENUM_FINISHED);
+					pk_backend_set_sub_percentage(m_backend, 100);
 				} else {
 					cout << ">>>Unmaped value<<< :" << line << endl;
 				}
commit 43a8930a8a6f6ab0a3ff1af3496c35fd4355ae18
Merge: d5b0447... 1ea6518...
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 12 00:30:25 2010 -0300

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

commit d5b0447528ebd96fe0bad93c66c8e82800ed3841
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Thu Aug 12 00:29:32 2010 -0300

    aptcc: Improved logic for the updates category

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 2ba57d5..dda23d7 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -380,8 +380,7 @@ void aptcc::emit_packages(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterat
 void aptcc::emitUpdates(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator> > &output,
 			 PkBitfield filters)
 {
-	// the default update info
-	PkInfoEnum state = PK_INFO_ENUM_NORMAL;
+	PkInfoEnum state;
 	// Sort so we can remove the duplicated entries
 	sort(output.begin(), output.end(), compare());
 	// Remove the duplicated entries
@@ -397,6 +396,9 @@ void aptcc::emitUpdates(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator
 			break;
 		}
 
+		// the default update info
+		state = PK_INFO_ENUM_NORMAL;
+
 		// let find what kind of upgrade this is
 		pkgCache::VerFileIterator vf = i->second.FileList();
 		std::string origin  = vf.File().Origin();
@@ -412,7 +414,8 @@ void aptcc::emitUpdates(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterator
 			} else if (ends_with(archive, "-updates")) {
 				state = PK_INFO_ENUM_BUGFIX;
 			}
-		} else if (origin.compare("Backports.org archive") == 0) {
+		} else if (origin.compare("Backports.org archive") == 0 ||
+				   ends_with(origin, "-backports")) {
 			state = PK_INFO_ENUM_ENHANCEMENT;
 		}
 
@@ -491,7 +494,7 @@ void aptcc::povidesCodec(vector<pair<pkgCache::PkgIterator, pkgCache::VerIterato
 			}
 			g_free(itemreg);
 		} else {
-			egg_debug("Did not match: %", value);
+			egg_debug("Did not match: %s", value);
 		}
 	}
 	regfree(&pkre);
@@ -1247,7 +1250,10 @@ void aptcc::updateInterface(int fd, int writeFd)
 				pk_backend_message(m_backend,
 						   PK_MESSAGE_ENUM_CONFIG_FILES_CHANGED,
 						   confmsg);
-				write(writeFd, "N\n", 2);
+				if (write(writeFd, "N\n", 2) != 2) {
+					// TODO we need a DPKG patch to use debconf
+					egg_debug("Failed to write");
+				}
 			} else if (strstr(status, "pmstatus") != NULL) {
 				// Let's start parsing the status:
 				if (starts_with(str, "Preparing")) {
@@ -1563,7 +1569,7 @@ bool aptcc::installPackages(pkgCacheFile &Cache)
 	{
  	    cout << DebBytes << ',' << Cache->DebSize() << endl;
 cout << "How odd.. The sizes didn't match, email apt at packages.debian.org";
-		_error->Warning("How odd.. The sizes didn't match, email apt at packages.debian.org");
+/*		_error->Warning("How odd.. The sizes didn't match, email apt at packages.debian.org");*/
 	}
 
 	// Number of bytes
commit 1ea65183c3dff343d989fdec69d227c1965b62ca
Author: dapidc <dapidc at fedoraproject.org>
Date:   Thu Aug 12 01:23:52 2010 +0000

    l10n: Updates to Indonesian (id) translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/id.po b/po/id.po
index be6a568..6e1eaff 100644
--- a/po/id.po
+++ b/po/id.po
@@ -3,130 +3,136 @@
 # Dichi Al Faridi <dichi at alfaridi.info>, 2010.
 msgid ""
 msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-02-10 20:56+0000\n"
-"PO-Revision-Date: 2010-04-19 22:58+0700\n"
-"Last-Translator: Dichi Al Faridi <dichi at alfaridi.info>\n"
-"Language-Team: Fedora-id\n"
-"Language: id\n"
+"Project-Id-Version: packagekit master\n"
+"Report-Msgid-Bugs-To: https://bugs.freedesktop.org/enter_bug.cgi?product=PackageKit&component=General\n"
+"POT-Creation-Date: 2010-08-10 03:26+0000\n"
+"PO-Revision-Date: 2010-08-11 14:25+0700\n"
+"Last-Translator: Dapid Candra <dapidc at gmail.com>\n"
+"Language-Team: GNOME Indonesian Translation Team <gnome at i15n.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: id\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Virtaal 0.5.2\n"
+"X-Poedit-Language: Indonesian\n"
+"X-Poedit-Country: Indonesia\n"
 
 #. TRANSLATORS: this is an atomic transaction
 #. TRANSLATORS: the role is the point of the transaction, e.g. update-system
-#: ../client/pk-console.c:175 ../client/pk-console.c:597
+#: ../client/pk-console.c:176
+#: ../client/pk-console.c:598
 msgid "Transaction"
 msgstr "Transaksi"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:177
+#: ../client/pk-console.c:178
 msgid "System time"
 msgstr "Waktu sistem"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:179
+#: ../client/pk-console.c:180
 msgid "Succeeded"
 msgstr "Berhasil"
 
-#: ../client/pk-console.c:179
+#: ../client/pk-console.c:180
 msgid "True"
 msgstr "Benar"
 
-#: ../client/pk-console.c:179
+#: ../client/pk-console.c:180
 msgid "False"
 msgstr "Salah"
 
 #. 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:332
+#: ../client/pk-console.c:182
+#: ../src/pk-polkit-action-lookup.c:332
 msgid "Role"
 msgstr "Peran"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:186
+#: ../client/pk-console.c:187
 msgid "Duration"
 msgstr "Durasi"
 
-#: ../client/pk-console.c:186
+#: ../client/pk-console.c:187
 msgid "(seconds)"
 msgstr "(detik)"
 
 #. 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:346
+#: ../client/pk-console.c:191
+#: ../src/pk-polkit-action-lookup.c:346
 msgid "Command line"
 msgstr "Command line"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:192
+#: ../client/pk-console.c:193
 msgid "User ID"
 msgstr "User ID"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:199
+#: ../client/pk-console.c:200
 msgid "Username"
 msgstr "Username"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:203
+#: ../client/pk-console.c:204
 msgid "Real name"
 msgstr "Nama Sebenarnya"
 
-#: ../client/pk-console.c:211
+#: ../client/pk-console.c:212
 msgid "Affected packages:"
 msgstr "Paket yang berkaitan:"
 
-#: ../client/pk-console.c:213
+#: ../client/pk-console.c:214
 msgid "Affected packages: None"
 msgstr "Terpengaruh paket: Tidak ada"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:249
 msgid "Distribution"
 msgstr "Distribusi"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:250
+#: ../client/pk-console.c:251
 msgid "Type"
-msgstr "Tipe"
+msgstr "Jenis"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:252 ../client/pk-console.c:291
+#: ../client/pk-console.c:253
+#: ../client/pk-console.c:292
 msgid "Summary"
 msgstr "Ringkasan"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:280
+#: ../client/pk-console.c:281
 msgid "Category"
 msgstr "Kategori"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:282
+#: ../client/pk-console.c:283
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:285
+#: ../client/pk-console.c:286
 msgid "Parent"
 msgstr "Induk"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:288
+#: ../client/pk-console.c:289
 msgid "Name"
 msgstr "Nama"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:295
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:341
 msgid "Details about the update:"
 msgstr "Rincian tentang update:"
 
@@ -135,7 +141,8 @@ msgstr "Rincian tentang update:"
 #. TRANSLATORS: the package that is not signed by a known key
 #. TRANSLATORS: the package name that was trying to be installed
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:346 ../client/pk-console.c:616
+#: ../client/pk-console.c:347
+#: ../client/pk-console.c:617
 #: ../lib/packagekit-glib2/pk-task-text.c:126
 #: ../lib/packagekit-glib2/pk-task-text.c:208
 #: ../src/pk-polkit-action-lookup.c:357
@@ -144,201 +151,196 @@ msgid_plural "Packages"
 msgstr[0] "Paket"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:349
+#: ../client/pk-console.c:350
 msgid "Updates"
 msgstr "Update"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:353
+#: ../client/pk-console.c:354
 msgid "Obsoletes"
 msgstr "Non-aktif"
 
 #. TRANSLATORS: details about the update, the vendor URLs
 #. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
-#: ../client/pk-console.c:357 ../lib/packagekit-glib2/pk-task-text.c:211
+#: ../client/pk-console.c:358
+#: ../lib/packagekit-glib2/pk-task-text.c:211
 msgid "Vendor"
 msgstr "Vendor"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:361
+#: ../client/pk-console.c:362
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:365
+#: ../client/pk-console.c:366
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:369
+#: ../client/pk-console.c:370
 msgid "Restart"
 msgstr "Restart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:373
+#: ../client/pk-console.c:374
 msgid "Update text"
 msgstr "Teks update"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:377
+#: ../client/pk-console.c:378
 msgid "Changes"
 msgstr "Perubahan"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:382
 msgid "State"
 msgstr "Menyatakan"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:386
 msgid "Issued"
 msgstr "Diterbitkan"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:389 ../lib/packagekit-glib2/pk-console-shared.c:510
+#: ../client/pk-console.c:390
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updated"
 msgstr "Diperbarui"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:425
+#: ../client/pk-console.c:426
 msgid "Enabled"
 msgstr "Diaktifkan"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:428
+#: ../client/pk-console.c:429
 msgid "Disabled"
 msgstr "Dinonaktifkan"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:460
+#: ../client/pk-console.c:461
 msgid "System restart required by:"
 msgstr "Restart sistem yang diperlukan oleh:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:463
+#: ../client/pk-console.c:464
 msgid "Session restart required:"
 msgstr "Sesi restart diperlukan:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:466
+#: ../client/pk-console.c:467
 msgid "System restart (security) required by:"
 msgstr "Sistem restart (keamanan) yang diperlukan oleh:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:469
+#: ../client/pk-console.c:470
 msgid "Session restart (security) required:"
 msgstr "Session restart (keamanan) yang diperlukan:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:473
 msgid "Application restart required by:"
 msgstr "Restart aplikasi yang diperlukan oleh:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:507
+#: ../client/pk-console.c:508
 msgid "Package description"
-msgstr "Paket deskripsi"
+msgstr "Deskripsi paket"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:538
+#: ../client/pk-console.c:539
 msgid "Message:"
 msgstr "Pesan:"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:559
+#: ../client/pk-console.c:560
 msgid "No files"
 msgstr "Tidak ada file"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:564
+#: ../client/pk-console.c:565
 msgid "Package files"
-msgstr "File paket"
+msgstr "Berkas paket"
 
 #. TRANSLATORS: the percentage complete of the transaction
-#: ../client/pk-console.c:632
+#: ../client/pk-console.c:633
 msgid "Percentage"
-msgstr "Persentasi"
+msgstr "Persentase"
 
 #. TRANSLATORS: the status of the transaction (e.g. downloading)
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:651
 msgid "Status"
 msgstr "Status"
 
 #. TRANSLATORS: the results from the transaction
-#: ../client/pk-console.c:679
+#: ../client/pk-console.c:680
 msgid "Results:"
 msgstr "Hasil:"
 
 #. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
-#: ../client/pk-console.c:686
+#: ../client/pk-console.c:687
 msgid "Fatal error"
-msgstr "Kesalahan Fatal"
+msgstr "Kesalahan fatal"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../client/pk-console.c:695
-#: ../contrib/command-not-found/pk-command-not-found.c:432
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../client/pk-console.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:454
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transaksi gagal"
 
 #. TRANSLATORS: print a message when there are no updates
-#: ../client/pk-console.c:726
+#: ../client/pk-console.c:727
 msgid "There are no updates available at this time."
 msgstr "Tidak ada pembaruan tersedia saat ini."
 
+#: ../client/pk-console.c:750
+msgid "There are no upgrades available at this time."
+msgstr "Tidak ada peningkatan tersedia saat ini."
+
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:814
+#: ../client/pk-console.c:817
 msgid "Please restart the computer to complete the update."
 msgstr "Silakan restart komputer untuk menyelesaikan pembaruan."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:817
+#: ../client/pk-console.c:820
 msgid "Please logout and login to complete the update."
-msgstr "Silahkan logout dan login untuk menyelesaikan pembaruan."
+msgstr "Silakan logout dan login untuk menyelesaikan pembaruan."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:820
-msgid ""
-"Please restart the computer to complete the update as important security "
-"updates have been installed."
-msgstr ""
-"Silakan restart komputer untuk menyelesaikan pembaruan karena pembaruan "
-"penting untuk keamanan telah diinstal."
+#: ../client/pk-console.c:823
+msgid "Please restart the computer to complete the update as important security updates have been installed."
+msgstr "Silakan restart komputer untuk menyelesaikan pembaruan karena pembaruan penting untuk keamanan telah diinstal."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:823
-msgid ""
-"Please logout and login to complete the update as important security updates "
-"have been installed."
-msgstr ""
-"Silakan logout dan login untuk menyelesaikan pembaruan karena pembaruan "
-"penting untuk keamanan telah diinstal."
+#: ../client/pk-console.c:826
+msgid "Please logout and login to complete the update as important security updates have been installed."
+msgstr "Silakan logout dan login untuk menyelesaikan pembaruan karena pembaruan penting untuk keamanan telah diinstal."
 
 #. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
-#: ../client/pk-console.c:849
+#: ../client/pk-console.c:852
 #, c-format
-msgid ""
-"Extected package name, actually got file. Try using 'pkcon install-local %s' "
-"instead."
-msgstr ""
-"Dibutuhkan nama paket, benar-benar mendapatkan file. Coba gunakan 'pkcon "
-"install-lokal% s' sebagai gantinya."
+msgid "Expected package name, actually got file. Try using 'pkcon install-local %s' instead."
+msgstr "Mengharapkan nama paket, malah memperoleh berkas. Coba gunakan 'pkcon install-lokal %s' sebagai gantinya."
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:857
+#: ../client/pk-console.c:860
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Alat ini tidak dapat menemukan paket yang tersedia: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:885
+#: ../client/pk-console.c:888
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Alat ini tidak dapat menemukan paket yang tersedia: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:913 ../client/pk-console.c:941
+#: ../client/pk-console.c:916
+#: ../client/pk-console.c:944
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Alat ini tidak bisa menemukan paket: %s"
@@ -347,493 +349,511 @@ msgstr "Alat ini tidak bisa menemukan paket: %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:969 ../client/pk-console.c:997
-#: ../client/pk-console.c:1025 ../client/pk-console.c:1053
-#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1056
+#: ../client/pk-console.c:1084
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Alat ini tidak bisa menemukan semua paket: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1110
+#: ../client/pk-console.c:1113
 msgid "The daemon crashed mid-transaction!"
 msgstr "Daemon crash pada pertengahan transaksi!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1147
 msgid "PackageKit Console Interface"
-msgstr "Konsol Antarmuka PackageKit"
+msgstr "Antarmuka Konsol PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1146
+#: ../client/pk-console.c:1149
 msgid "Subcommands:"
-msgstr "Subcommands:"
+msgstr "Sub perintah:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1228
 msgid "Failed to get the time since this action was last completed"
 msgstr "Gagal mendapatkan waktu sejak tindakan ini terakhir selesai"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1261 ../client/pk-monitor.c:306
+#: ../client/pk-console.c:1268
+#: ../client/pk-monitor.c:373
 msgid "Show the program version and exit"
 msgstr "Tampilkan versi program dan keluar"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1271
 msgid "Set the filter, e.g. installed"
 msgstr "Set filter, misalnya diinstal"
 
+#. TRANSLATORS: command line argument, use a non-standard install prefix
+#: ../client/pk-console.c:1274
+msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
+msgstr "Tata akar pemasangan, misalnya '/' atau '/mnt/ltsp'"
+
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1267
+#: ../client/pk-console.c:1277
 msgid "Exit without waiting for actions to complete"
 msgstr "Keluar tanpa menunggu tindakan untuk selesai"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1280
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
 msgid "Install the packages without asking for confirmation"
 msgstr "Instal paket tanpa meminta konfirmasi"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1273
+#: ../client/pk-console.c:1283
 msgid "Run the command using idle network bandwidth and also using less power"
-msgstr ""
-"Jalankan perintah menggunakan bandwidth menganggur jaringan dan juga "
-"menggunakan daya yang lebih kecil"
+msgstr "Jalankan perintah menggunakan bandwidth menganggur jaringan dan juga menggunakan daya yang lebih kecil"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1276
-msgid ""
-"Print to screen a machine readable output, rather than using animated "
-"widgets"
-msgstr ""
-"Cetak ke layar output mesin yang dapat dibaca, daripada menggunakan widget "
-"animasi"
+#: ../client/pk-console.c:1286
+msgid "Print to screen a machine readable output, rather than using animated widgets"
+msgstr "Cetak ke layar output mesin yang dapat dibaca, daripada menggunakan widget animasi"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1308
 msgid "Failed to contact PackageKit"
 msgstr "Gagal untuk menghubungi PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1370
+msgid "The proxy could not be set"
+msgstr "Proksi tak dapat ditata"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1382
+msgid "The install root could not be set"
+msgstr "Akar pemasangan tak dapat ditata"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1394
 msgid "The filter specified was invalid"
 msgstr "Filter ditentukan tidak valid"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1413
 msgid "A search type is required, e.g. name"
 msgstr "Sebuah jenis pencarian diperlukan, misalnya nama"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1382 ../client/pk-console.c:1394
-#: ../client/pk-console.c:1406 ../client/pk-console.c:1418
+#: ../client/pk-console.c:1420
+#: ../client/pk-console.c:1432
+#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1456
 msgid "A search term is required"
 msgstr "Sebuah istilah pencarian diperlukan"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1428
+#: ../client/pk-console.c:1466
 msgid "Invalid search type"
 msgstr "Jenis pencarian tidak valid"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1434
+#: ../client/pk-console.c:1472
 msgid "A package name to install is required"
 msgstr "Sebuah nama paket diperlukan untuk menginstal"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1481
 msgid "A filename to install is required"
 msgstr "Sebuah nama file untuk menginstal diperlukan"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1455
+#: ../client/pk-console.c:1493
 msgid "A type, key_id and package_id are required"
 msgstr "Tipe A, key_id dan package_id diperlukan"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1504
 msgid "A package name to remove is required"
 msgstr "Diperlukan nama sebuah paket yang akan dihapus"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1475
+#: ../client/pk-console.c:1513
 msgid "A destination directory and the package names to download are required"
-msgstr ""
-"Sebuah direktori tujuan dan nama paket yang dibutuhkan untuk men-download"
+msgstr "Sebuah direktori tujuan dan nama paket yang dibutuhkan untuk men-download"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1482
+#: ../client/pk-console.c:1520
 msgid "Directory not found"
 msgstr "Direktori tidak ditemukan"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1529
 msgid "A licence identifier (eula-id) is required"
 msgstr "Sebuah pengenal lisensi (EULA-id) diperlukan"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1540
 msgid "A transaction identifier (tid) is required"
 msgstr "Suatu pengenal transaksi (tid) diperlukan"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1523
+#: ../client/pk-console.c:1561
 msgid "A package name to resolve is required"
 msgstr "Sebuah nama paket yang dibutuhkan untuk menyelesaikan"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1534 ../client/pk-console.c:1545
+#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1583
 msgid "A repository name is required"
 msgstr "Sebuah nama repositori diperlukan"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1556
+#: ../client/pk-console.c:1594
 msgid "A repo name, parameter and value are required"
 msgstr "Nama repo, parameter dan nilai yang diperlukan"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1573
+#: ../client/pk-console.c:1611
 msgid "An action, e.g. 'update-system' is required"
 msgstr "Sebuah tindakan, misalnya 'update-sistem' diperlukan"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1618
 msgid "A correct role is required"
 msgstr "Peran yang benar diperlukan"
 
 #. 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:1590 ../client/pk-console.c:1605
-#: ../client/pk-console.c:1614 ../client/pk-console.c:1634
-#: ../client/pk-console.c:1643 ../client/pk-generate-pack.c:316
+#: ../client/pk-console.c:1628
+#: ../client/pk-console.c:1643
+#: ../client/pk-console.c:1652
+#: ../client/pk-console.c:1672
+#: ../client/pk-console.c:1681
+#: ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "Sebuah nama paket yang dibutuhkan"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1623
+#: ../client/pk-console.c:1661
 msgid "A package provide string is required"
 msgstr "Sebuah paket memberikan string itu dibutuhkan"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1703
+#: ../client/pk-console.c:1742
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Opsi '%s' tidak didukung"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1752
 msgid "Command failed"
 msgstr "Perintah gagal"
 
 #. TRANSLATORS: we can exclude certain packages (glibc) when we know they'll exist on the target
 #: ../client/pk-generate-pack.c:255
 msgid "Set the file name of dependencies to be excluded"
-msgstr ""
+msgstr "Tata nama berkas dari kebergantungan yang tak akan disertakan"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:258
-msgid ""
-"The output file or directory (the current directory is used if ommitted)"
-msgstr ""
+msgid "The output file or directory (the current directory is used if omitted)"
+msgstr "Berkas atau direktori keluaran (direktori kini dipakai bila tak diberikan)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:261
 msgid "The package to be put into the service pack"
-msgstr ""
+msgstr "Paket yang akan diletakkan di pak layanan (service pack)"
 
 #. TRANSLATORS: put all pending updates in the pack
 #: ../client/pk-generate-pack.c:264
 msgid "Put all updates available in the service pack"
-msgstr ""
+msgstr "Letakkan semua pembaruan yang tersedia di pak layanan (service pack)"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:300
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "Tak satupun dari opsi --package atau --updates dipilih."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:308
 msgid "Both options selected."
-msgstr ""
+msgstr "Kedua opsi dipilih."
 
 #. TRANSLATORS: This is when the user fails to supply the output
 #: ../client/pk-generate-pack.c:324
 msgid "A output directory or file name is required"
-msgstr ""
+msgstr "Diperlukan suatu direktori keluaran atau nama berkas"
 
-#. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
+#. TRANSLATORS: This is when the daemon is not-installed/broken and fails to startup
 #: ../client/pk-generate-pack.c:342
-msgid "The dameon failed to startup"
-msgstr ""
+msgid "The daemon failed to startup"
+msgstr "Daemon gagal berjalan"
 
 #. 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:353 ../client/pk-generate-pack.c:359
+#: ../client/pk-generate-pack.c:353
+#: ../client/pk-generate-pack.c:359
 msgid "The package manager cannot perform this type of operation."
-msgstr ""
+msgstr "Manajer paket tak dapat melakukan operasi jenis ini."
 
 #. TRANSLATORS: This is when the distro didn't include libarchive support into PK
 #: ../client/pk-generate-pack.c:366
-msgid ""
-"Service packs cannot be created as PackageKit was not built with libarchive "
-"support."
-msgstr ""
+msgid "Service packs cannot be created as PackageKit was not built with libarchive support."
+msgstr "Pak layanan tak dapat dibuat karena PackageKit tak dibangun dengan dukungan libarchive."
 
 #. TRANSLATORS: the user specified an absolute path, but didn't get the extension correct
 #: ../client/pk-generate-pack.c:377
 msgid "If specifying a file, the service pack name must end with"
-msgstr ""
+msgstr "Bila menyatakan suatu berkas, nama pak layanan mesti diakhiri dengan"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:393
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
+msgstr "Pak dengan nama sama telah ada, Anda ingin menimpanya?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:396
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "Pak tak ditimpa."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows
 #: ../client/pk-generate-pack.c:409
 msgid "Failed to create directory:"
-msgstr ""
+msgstr "Gagal membuat direktori:"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:421
 msgid "Failed to open package list."
-msgstr ""
+msgstr "Gagal membuka daftar paket."
 
 #. TRANSLATORS: The package name is being matched up to available packages
 #: ../client/pk-generate-pack.c:430
 msgid "Finding package name."
-msgstr ""
+msgstr "Mencari nama paket."
 
 #. TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows
 #: ../client/pk-generate-pack.c:434
 #, c-format
 msgid "Failed to find package '%s': %s"
-msgstr ""
+msgstr "Gagal menemukan paket '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:442
 msgid "Creating service pack..."
-msgstr ""
+msgstr "Membuat pak layanan..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:457
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "Pak layanan dibuat '%s'"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:462
 #, c-format
 msgid "Failed to create '%s': %s"
-msgstr ""
+msgstr "Gagal membuat '%s': %s"
 
-#: ../client/pk-monitor.c:236
+#: ../client/pk-monitor.c:286
 msgid "Failed to get daemon state"
-msgstr ""
+msgstr "Gagal mendapat keadaan daemon"
+
+#: ../client/pk-monitor.c:351
+msgid "Failed to get properties"
+msgstr "Gagal memperoleh properti"
 
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:322
+#: ../client/pk-monitor.c:389
 msgid "PackageKit Monitor"
-msgstr ""
+msgstr "PackageKit Monitor"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:495
+#: ../contrib/browser-plugin/pk-plugin-install.c:497
 msgid "Getting package information..."
-msgstr ""
+msgstr "Mengambil informasi paket..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:501
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "Jalankan %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:507
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 msgid "Installed version"
-msgstr ""
+msgstr "Versi terpasang"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "Jalankan versi %s sekarang"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:521
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 msgid "Run now"
-msgstr ""
+msgstr "Jalankan sekarang"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:527
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 #, c-format
 msgid "Update to version %s"
-msgstr ""
+msgstr "Mutakhirkan ke versi %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:533
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Install %s now"
-msgstr ""
+msgstr "Pasang %s sekarang"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:536
+#: ../contrib/browser-plugin/pk-plugin-install.c:538
 msgid "Version"
-msgstr ""
+msgstr "Versi"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:541
+#: ../contrib/browser-plugin/pk-plugin-install.c:543
 msgid "No packages found for your system"
-msgstr ""
+msgstr "Tak ditemukan paket pada sistem Anda"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:546
+#: ../contrib/browser-plugin/pk-plugin-install.c:548
 msgid "Installing..."
-msgstr ""
+msgstr "Memasang..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:365
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading details about the software sources."
-msgstr ""
+msgstr "Mengunduh rincian tentang sumber perangkat lunak."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Downloading filelists (this may take some time to complete)."
-msgstr ""
+msgstr "Mengunduh filelist (mungkin ini makan waktu)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:373
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Waiting for package manager lock."
-msgstr ""
+msgstr "Menunggu kunci manajer paket."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:377
+#: ../contrib/command-not-found/pk-command-not-found.c:379
 msgid "Loading list of packages."
-msgstr ""
+msgstr "Memuat daftar paket."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:423
+#: ../contrib/command-not-found/pk-command-not-found.c:445
 msgid "Failed to search for file"
-msgstr ""
+msgstr "Gagal mencari berkas"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
-msgstr ""
+msgstr "Gagal meluncurkan:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
-msgstr ""
+msgstr "Gagal memasang paket"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:670
+#: ../contrib/command-not-found/pk-command-not-found.c:701
 msgid "PackageKit Command Not Found"
-msgstr ""
+msgstr "Perintah PackageKit Tak Ditemukan"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:699
+#: ../contrib/command-not-found/pk-command-not-found.c:727
 msgid "Command not found."
-msgstr ""
+msgstr "Perintah tak ditemukan."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:706
+#: ../contrib/command-not-found/pk-command-not-found.c:745
 msgid "Similar command is:"
-msgstr ""
+msgstr "Perintah serupa adalah:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:716
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
-msgstr ""
+msgstr "Jalankan perintah serupa:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:730
-#: ../contrib/command-not-found/pk-command-not-found.c:739
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
-msgstr ""
+msgstr "Perintah serupa adalah:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:746
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
-msgstr ""
+msgstr "Silakan pilih suatu perintah untuk dijalankan"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
-msgstr ""
+msgstr "Paket yang menyediakan berkas ini adalah:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:808
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
-msgstr ""
+msgstr "Pasang paket '%s' untuk menyediakan perintah '%s'?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:793
+#: ../contrib/command-not-found/pk-command-not-found.c:832
 msgid "Packages providing this file are:"
-msgstr ""
+msgstr "Paket-paket yang menyediakan berkas ini adalah:"
 
 #. 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:842
 msgid "Suitable packages are:"
-msgstr ""
+msgstr "Paket-paket yang cocok adalah:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:812
+#: ../contrib/command-not-found/pk-command-not-found.c:851
 msgid "Please choose a package to install"
-msgstr ""
+msgstr "Silakan pilih suatu paket untuk dipasang"
 
 #. TRANSLATORS: we are starting to install the packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:197
 msgid "Starting install"
-msgstr ""
+msgstr "Mulai memasang"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:409
 #, c-format
 msgid "Failed to find the package %s, or already installed: %s"
-msgstr ""
+msgstr "Gagal menemukan paket %s, atau sudah terpasang: %s"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:518
-msgid ""
-"Don't actually install any packages, only simulate what would be installed"
-msgstr ""
+msgid "Don't actually install any packages, only simulate what would be installed"
+msgstr "Jangan benar-benar memasang sebarang paket, hanya simulasikan apa yang akan dipasang"
 
 #. command line argument, do we skip packages that depend on the ones specified
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:521
 msgid "Do not install dependencies of the core packages"
-msgstr ""
+msgstr "Jangan pasang ketergantungan dari paket inti"
 
 #. command line argument, do we operate quietly
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:524
 msgid "Do not display information or progress"
-msgstr ""
+msgstr "Jangan tampilkan informasi atau kemajuan"
 
 #. TRANSLATORS: tool that gets called when the command is not found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:542
 msgid "PackageKit Debuginfo Installer"
-msgstr ""
+msgstr "Pemasang Debuginfo PackageKit"
 
 #. TRANSLATORS: the use needs to specify a list of package names on the command line
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:556
 #, c-format
 msgid "ERROR: Specify package names to install."
-msgstr ""
+msgstr "GALAT: Nyatakan nama paket yang akan dipasang."
 
 #. TRANSLATORS: we are getting the list of repositories
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:592
 #, c-format
 msgid "Getting sources list"
-msgstr ""
+msgstr "Sedang mengambil senarai sumber"
 
 #. TRANSLATORS: operation was not successful
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:602
@@ -843,7 +863,7 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:872
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:916
 msgid "FAILED."
-msgstr ""
+msgstr "GAGAL."
 
 #. TRANSLATORS: all completed 100%
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:617
@@ -855,838 +875,838 @@ msgstr ""
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:931
 #, c-format
 msgid "OK."
-msgstr ""
+msgstr "OK."
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:620
 #, c-format
 msgid "Found %i enabled and %i disabled sources."
-msgstr ""
+msgstr "Ditemukan %i sumber yang diaktifkan dan %i dimatikan."
 
 #. TRANSLATORS: we're finding repositories that match out pattern
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:627
 #, c-format
 msgid "Finding debugging sources"
-msgstr ""
+msgstr "Mencari sumber pengawakutuan"
 
 #. TRANSLATORS: tell the user what we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:660
 #, c-format
 msgid "Found %i disabled debuginfo repos."
-msgstr ""
+msgstr "Ditemukan %i repo debuginfo yang dimatikan."
 
 #. TRANSLATORS: we're now enabling all the debug sources we found
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:667
 #, c-format
 msgid "Enabling debugging sources"
-msgstr ""
+msgstr "Mengaktifkan sumber pengawakutuan"
 
 #. TRANSLATORS: tell the user how many we enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:695
 #, c-format
 msgid "Enabled %i debugging sources."
-msgstr ""
+msgstr "Diaktifkan %i sumber pengawakutuan."
 
 #. TRANSLATORS: we're now finding packages that match in all the repos
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:702
 #, c-format
 msgid "Finding debugging packages"
-msgstr ""
+msgstr "Mencari paket pengawakutuan"
 
 #. TRANSLATORS: we couldn't find the package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:714
 #, c-format
 msgid "Failed to find the package %s: %s"
-msgstr ""
+msgstr "Gagal temukan paket %s: %s"
 
 #. TRANSLATORS: we couldn't find the debuginfo package name, non-fatal
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:737
 #, c-format
 msgid "Failed to find the debuginfo package %s: %s"
-msgstr ""
+msgstr "Gagal menemukan paket debuginfo %s: %s"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:765
 #, c-format
 msgid "Found no packages to install."
-msgstr ""
+msgstr "Tak menemukan paket untuk dipasang."
 
 #. TRANSLATORS: tell the user we found some packages, and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:779
 #, c-format
 msgid "Found %i packages:"
-msgstr ""
+msgstr "Ditemukan %i paket:"
 
 #. TRANSLATORS: tell the user we are searching for deps
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:795
 #, c-format
 msgid "Finding packages that depend on these packages"
-msgstr ""
+msgstr "Mencari paket yang bergantung pada paket-paket ini"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:808
 #, c-format
 msgid "Could not find dependant packages: %s"
-msgstr ""
+msgstr "Tak bisa menemukan paket yang bergantung: %s"
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:824
 #, c-format
 msgid "Found %i extra packages."
-msgstr ""
+msgstr "Ditemukan %i paket ekstra."
 
 #. TRANSLATORS: tell the user we found some more packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:828
 #, c-format
 msgid "No extra packages required."
-msgstr ""
+msgstr "Tak diperlukan paket tambahan."
 
 #. TRANSLATORS: tell the user we found some packages (and deps), and then list them
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:837
 #, c-format
 msgid "Found %i packages to install:"
-msgstr ""
+msgstr "Ditemukan %i paket untuk dipasang:"
 
 #. TRANSLATORS: simulate mode is a testing mode where we quit before the action
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:850
 #, c-format
 msgid "Not installing packages in simulate mode"
-msgstr ""
+msgstr "Tak memasang paket pada mode simulasi"
 
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:862
-#: ../lib/packagekit-glib2/pk-console-shared.c:282
+#: ../lib/packagekit-glib2/pk-console-shared.c:289
 #, c-format
 msgid "Installing packages"
-msgstr ""
+msgstr "Sedang memasang paket"
 
 #. TRANSLATORS: could not install, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:875
 #, c-format
 msgid "Could not install packages: %s"
-msgstr ""
+msgstr "Tak bisa memasang paket: %s"
 
 #. TRANSLATORS: we are now disabling all debuginfo repos we previously enabled
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:907
 #, c-format
 msgid "Disabling sources previously enabled"
-msgstr ""
+msgstr "Mematikan sumber yang sebelumnya diaktifkan"
 
 #. TRANSLATORS: no debuginfo packages could be found to be installed, detailed error follows
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:919
 #, c-format
 msgid "Could not disable the debugging sources: %s"
-msgstr ""
+msgstr "Tak bisa mematikan sumber pengawakutuan: %s"
 
 #. TRANSLATORS: we disabled all the debugging repos that we enabled before
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:934
 #, c-format
 msgid "Disabled %i debugging sources."
-msgstr ""
+msgstr "Mematikan %i sumber pengawakutuan."
 
 #. TRANSLATORS: couldn't open device to write
 #: ../contrib/device-rebind/pk-device-rebind.c:62
 msgid "Failed to open file"
-msgstr ""
+msgstr "Gagal membuka berkas"
 
 #. TRANSLATORS: could not write to the device
 #: ../contrib/device-rebind/pk-device-rebind.c:71
 msgid "Failed to write to the file"
-msgstr ""
+msgstr "Gagal menulis ke berkas"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:111
 #: ../contrib/device-rebind/pk-device-rebind.c:148
 msgid "Failed to write to device"
-msgstr ""
+msgstr "Gagal menulis ke perangkat"
 
 #. TRANSLATORS: the device could not be found in sysfs
 #: ../contrib/device-rebind/pk-device-rebind.c:176
 msgid "Device could not be found"
-msgstr ""
+msgstr "Perangkat tak dapat ditemukan"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:203
 msgid "Failed to unregister driver"
-msgstr ""
+msgstr "Gagal mencabut pendaftaran penggerak"
 
 #. TRANSLATORS: we failed to bind the old driver
 #: ../contrib/device-rebind/pk-device-rebind.c:212
 msgid "Failed to register driver"
-msgstr ""
+msgstr "Gagal mendaftarkan penggerak"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:261
 msgid "Device path not found"
-msgstr ""
+msgstr "Path perangkat tak ditemukan"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:269
 msgid "Incorrect device path specified"
-msgstr ""
+msgstr "Path perangkat yang dinyatakan salah"
 
 #: ../contrib/device-rebind/pk-device-rebind.c:294
 msgid "Show extra debugging information"
-msgstr ""
+msgstr "Tampilkan informasi pengawakutuan tambahan"
 
 #. command line argument, simulate what would be done, but don't actually do it
 #: ../contrib/device-rebind/pk-device-rebind.c:297
 msgid "Don't actually touch the hardware, only simulate what would be done"
-msgstr ""
+msgstr "Jangan benar-benar menyentuh perangkat keras, hanya simulasikan apa yang akan dilakukan"
 
 #. TRANSLATORS: command line option: a list of files to install
 #: ../contrib/device-rebind/pk-device-rebind.c:300
 msgid "Device paths"
-msgstr ""
+msgstr "Path perangkat"
 
 #. TRANSLATORS: tool that gets called when the device needs reloading after installing firmware
 #: ../contrib/device-rebind/pk-device-rebind.c:315
 msgid "PackageKit Device Reloader"
-msgstr ""
+msgstr "Pemuat Ulang Perangkat PackageKit"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:323
 msgid "You need to specify at least one valid device path"
-msgstr ""
+msgstr "Anda perlu menyatakan paling tidak satu path perangkat yang valid"
 
 #. TRANSLATORS: user did not specify a valid device sysfs path
 #: ../contrib/device-rebind/pk-device-rebind.c:333
 msgid "This script can only be used by the root user"
-msgstr ""
+msgstr "Skrip ini hanya bisa dipakai oleh pengguna root"
 
 #. TRANSLATORS: we're going to verify the path first
 #: ../contrib/device-rebind/pk-device-rebind.c:342
 msgid "Verifying device path"
-msgstr ""
+msgstr "Memeriksa path perangkat"
 
 #. TRANSLATORS: user did not specify a device sysfs path that exists
 #: ../contrib/device-rebind/pk-device-rebind.c:347
 msgid "Failed to verify device path"
-msgstr ""
+msgstr "Gagal memeriksa path perangkat"
 
 #. TRANSLATORS: we're going to try
 #: ../contrib/device-rebind/pk-device-rebind.c:361
 msgid "Attempting to rebind device"
-msgstr ""
+msgstr "Mencoba mem-bind ulang perangkat"
 
 #. TRANSLATORS: we failed to release the current driver
 #: ../contrib/device-rebind/pk-device-rebind.c:366
 msgid "Failed to rebind device"
-msgstr ""
+msgstr "Gagal mem-bind ulang perangkat"
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
-msgstr ""
+msgstr "Katalog PackageKit"
 
 #: ../data/packagekit-package-list.xml.in.h:1
 msgid "PackageKit Package List"
-msgstr ""
+msgstr "Senarai Paket PackageKit"
 
 #: ../data/packagekit-servicepack.xml.in.h:1
 msgid "PackageKit Service Pack"
-msgstr ""
+msgstr "Pak Layanan PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:59
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
-msgstr ""
+msgstr "Silakan masukkan suatu angka dari 1 sampai %i:"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:183
+#: ../lib/packagekit-glib2/pk-console-shared.c:191
 msgid "More than one package matches:"
-msgstr ""
+msgstr "Lebih dari satu paket cocok:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:196
+#: ../lib/packagekit-glib2/pk-console-shared.c:202
 msgid "Please choose the correct package: "
-msgstr ""
+msgstr "Silakan pilih paket yang benar:"
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:250
+#: ../lib/packagekit-glib2/pk-console-shared.c:257
 msgid "Unknown state"
-msgstr ""
+msgstr "Keadaan tak dikenal"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:254
+#: ../lib/packagekit-glib2/pk-console-shared.c:261
 msgid "Starting"
-msgstr ""
+msgstr "Memulai"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:258
+#: ../lib/packagekit-glib2/pk-console-shared.c:265
 msgid "Waiting in queue"
-msgstr ""
+msgstr "Menunggu dalam antrian"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:262
+#: ../lib/packagekit-glib2/pk-console-shared.c:269
 msgid "Running"
-msgstr ""
+msgstr "Berjalan"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:266
+#: ../lib/packagekit-glib2/pk-console-shared.c:273
 msgid "Querying"
-msgstr ""
+msgstr "Sedang query"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:270
+#: ../lib/packagekit-glib2/pk-console-shared.c:277
 msgid "Getting information"
-msgstr ""
+msgstr "Sedang mengambil informasi"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:274
+#: ../lib/packagekit-glib2/pk-console-shared.c:281
 msgid "Removing packages"
-msgstr ""
+msgstr "Sedang menghapus paket"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:278
-#: ../lib/packagekit-glib2/pk-console-shared.c:656
+#: ../lib/packagekit-glib2/pk-console-shared.c:285
+#: ../lib/packagekit-glib2/pk-console-shared.c:663
 msgid "Downloading packages"
-msgstr ""
+msgstr "Sedang mengunduh paket"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:286
+#: ../lib/packagekit-glib2/pk-console-shared.c:293
 msgid "Refreshing software list"
-msgstr ""
+msgstr "Sedang menyegarkan daftar perangkat lunak"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:290
+#: ../lib/packagekit-glib2/pk-console-shared.c:297
 msgid "Installing updates"
-msgstr ""
+msgstr "Sedang memasang pemutakhiran"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config files
-#: ../lib/packagekit-glib2/pk-console-shared.c:294
+#: ../lib/packagekit-glib2/pk-console-shared.c:301
 msgid "Cleaning up packages"
-msgstr ""
+msgstr "Sedang membersihkan paket"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:298
+#: ../lib/packagekit-glib2/pk-console-shared.c:305
 msgid "Obsoleting packages"
-msgstr ""
+msgstr "Sedang mengusangkan paket"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:302
+#: ../lib/packagekit-glib2/pk-console-shared.c:309
 msgid "Resolving dependencies"
-msgstr ""
+msgstr "Sedang mengurai ketergantungan"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:306
+#: ../lib/packagekit-glib2/pk-console-shared.c:313
 msgid "Checking signatures"
-msgstr ""
+msgstr "Sedang memeriksa tanda tangan"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:310
-#: ../lib/packagekit-glib2/pk-console-shared.c:616
+#: ../lib/packagekit-glib2/pk-console-shared.c:317
+#: ../lib/packagekit-glib2/pk-console-shared.c:623
 msgid "Rolling back"
-msgstr ""
+msgstr "Sedang mengembalikan"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:314
+#: ../lib/packagekit-glib2/pk-console-shared.c:321
 msgid "Testing changes"
-msgstr ""
+msgstr "Sedang menguji perubahan"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package database
-#: ../lib/packagekit-glib2/pk-console-shared.c:318
+#: ../lib/packagekit-glib2/pk-console-shared.c:325
 msgid "Committing changes"
-msgstr ""
+msgstr "Menerapkan perubahan"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:322
+#: ../lib/packagekit-glib2/pk-console-shared.c:329
 msgid "Requesting data"
-msgstr ""
+msgstr "Meminta data"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:326
+#: ../lib/packagekit-glib2/pk-console-shared.c:333
 msgid "Finished"
-msgstr ""
+msgstr "Selesai"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:330
+#: ../lib/packagekit-glib2/pk-console-shared.c:337
 msgid "Cancelling"
-msgstr ""
+msgstr "Membatalkan"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:334
+#: ../lib/packagekit-glib2/pk-console-shared.c:341
 msgid "Downloading repository information"
-msgstr ""
+msgstr "Mengunduh informasi repositori"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:338
+#: ../lib/packagekit-glib2/pk-console-shared.c:345
 msgid "Downloading list of packages"
-msgstr ""
+msgstr "Mengunduh senarai paket"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:342
+#: ../lib/packagekit-glib2/pk-console-shared.c:349
 msgid "Downloading file lists"
-msgstr ""
+msgstr "Mengunduh senarai berkas"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:346
+#: ../lib/packagekit-glib2/pk-console-shared.c:353
 msgid "Downloading lists of changes"
-msgstr ""
+msgstr "Mengunduh senarai dari perubahan"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:350
+#: ../lib/packagekit-glib2/pk-console-shared.c:357
 msgid "Downloading groups"
-msgstr ""
+msgstr "Mengunduh grup"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:354
+#: ../lib/packagekit-glib2/pk-console-shared.c:361
 msgid "Downloading update information"
-msgstr ""
+msgstr "Mengunduh informasi pemutakhiran"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:358
+#: ../lib/packagekit-glib2/pk-console-shared.c:365
 msgid "Repackaging files"
-msgstr ""
+msgstr "Mengepak ulang berkas"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:362
+#: ../lib/packagekit-glib2/pk-console-shared.c:369
 msgid "Loading cache"
-msgstr ""
+msgstr "Memuat singgahan"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:366
+#: ../lib/packagekit-glib2/pk-console-shared.c:373
 msgid "Scanning applications"
-msgstr ""
+msgstr "Memindai aplikasi"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:370
+#: ../lib/packagekit-glib2/pk-console-shared.c:377
 msgid "Generating package lists"
-msgstr ""
+msgstr "Sedang membuat daftar paket"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:374
+#: ../lib/packagekit-glib2/pk-console-shared.c:381
 msgid "Waiting for package manager lock"
-msgstr ""
+msgstr "Menunggu kunci manajer paket"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:378
+#: ../lib/packagekit-glib2/pk-console-shared.c:385
 msgid "Waiting for authentication"
-msgstr ""
+msgstr "Menunggu otentikasi"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:382
+#: ../lib/packagekit-glib2/pk-console-shared.c:389
 msgid "Updating running applications"
-msgstr ""
+msgstr "Memutakhirkan aplikasi yang sedang berjalan"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:386
+#: ../lib/packagekit-glib2/pk-console-shared.c:393
 msgid "Checking applications in use"
-msgstr ""
+msgstr "Memeriksa aplikasi yang dipakai"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:390
+#: ../lib/packagekit-glib2/pk-console-shared.c:397
 msgid "Checking libraries in use"
-msgstr ""
+msgstr "Memeriksa pustaka yang dipakai"
 
 #. TRANSLATORS: transaction state, we are copying package files before or after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:394
+#: ../lib/packagekit-glib2/pk-console-shared.c:401
 msgid "Copying files"
-msgstr ""
+msgstr "Menyalin berkas"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:412
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Trivial"
-msgstr ""
+msgstr "Trivial"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:416
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Normal"
-msgstr ""
+msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:420
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Important"
-msgstr ""
+msgstr "Penting"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:424
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Security"
-msgstr ""
+msgstr "Keamanan"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:428
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Bug fix "
-msgstr ""
+msgstr "Perbaikan bug"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:432
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Enhancement"
-msgstr ""
+msgstr "Enhancement"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:436
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Blocked"
-msgstr ""
+msgstr "Diblok"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:441
-#: ../lib/packagekit-glib2/pk-console-shared.c:514
+#: ../lib/packagekit-glib2/pk-console-shared.c:448
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
 msgid "Installed"
-msgstr ""
+msgstr "Terpasang"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:453
 msgid "Available"
-msgstr ""
+msgstr "Tersedia"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:464
+#: ../lib/packagekit-glib2/pk-console-shared.c:471
 msgid "Downloading"
-msgstr ""
+msgstr "Mengunduh"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:468
+#: ../lib/packagekit-glib2/pk-console-shared.c:475
 msgid "Updating"
-msgstr ""
+msgstr "Memperbarui"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:472
-#: ../lib/packagekit-glib2/pk-console-shared.c:592
+#: ../lib/packagekit-glib2/pk-console-shared.c:479
+#: ../lib/packagekit-glib2/pk-console-shared.c:599
 msgid "Installing"
-msgstr ""
+msgstr "Memasang"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:476
-#: ../lib/packagekit-glib2/pk-console-shared.c:588
+#: ../lib/packagekit-glib2/pk-console-shared.c:483
+#: ../lib/packagekit-glib2/pk-console-shared.c:595
 msgid "Removing"
-msgstr ""
+msgstr "Menghapus"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:480
+#: ../lib/packagekit-glib2/pk-console-shared.c:487
 msgid "Cleaning up"
-msgstr ""
+msgstr "Membersihkan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:484
+#: ../lib/packagekit-glib2/pk-console-shared.c:491
 msgid "Obsoleting"
-msgstr ""
+msgstr "Mengadaluarsakan"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:488
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Reinstalling"
-msgstr ""
+msgstr "Memasang ulang"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:506
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloaded"
-msgstr ""
+msgstr "Terunduh"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:518
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
 msgid "Removed"
-msgstr ""
+msgstr "Dibuang"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:522
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaned up"
-msgstr ""
+msgstr "Dibersihkan"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:526
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleted"
-msgstr ""
+msgstr "Telah dikadaluarsakan"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:530
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalled"
-msgstr ""
+msgstr "Telah dipasang ulang"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:548
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Unknown role type"
-msgstr ""
+msgstr "Tipe peran tak dikenal"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:552
+#: ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Getting dependencies"
-msgstr ""
+msgstr "Sedang mengambil ketergantungan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:556
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Getting update details"
-msgstr ""
+msgstr "Sedang mengambil rincian pemutakhiran"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:560
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Getting details"
-msgstr ""
+msgstr "Sedang mengambil rincian"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:564
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Getting requires"
-msgstr ""
+msgstr "Sedang mengambil kebutuhan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:568
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Getting updates"
-msgstr ""
+msgstr "Sedang mengambil pemutakhiran"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:572
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Searching by details"
-msgstr ""
+msgstr "Sedang mencari berdasar rincian"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:576
+#: ../lib/packagekit-glib2/pk-console-shared.c:583
 msgid "Searching by file"
-msgstr ""
+msgstr "Sedang mencari berdasar berkas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:580
+#: ../lib/packagekit-glib2/pk-console-shared.c:587
 msgid "Searching groups"
-msgstr ""
+msgstr "Sedang mencari grup"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:584
+#: ../lib/packagekit-glib2/pk-console-shared.c:591
 msgid "Searching by name"
-msgstr ""
+msgstr "Sedang mencari berdasar nama"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:596
+#: ../lib/packagekit-glib2/pk-console-shared.c:603
 msgid "Installing files"
-msgstr ""
+msgstr "Sedang memasang berkas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:600
+#: ../lib/packagekit-glib2/pk-console-shared.c:607
 msgid "Refreshing cache"
-msgstr ""
+msgstr "Sedang menyegarkan singgahan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:604
+#: ../lib/packagekit-glib2/pk-console-shared.c:611
 msgid "Updating packages"
-msgstr ""
+msgstr "Memutakhirkan paket"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:608
+#: ../lib/packagekit-glib2/pk-console-shared.c:615
 msgid "Updating system"
-msgstr ""
+msgstr "Memutakhirkan sistem"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:612
+#: ../lib/packagekit-glib2/pk-console-shared.c:619
 msgid "Canceling"
-msgstr ""
+msgstr "Sedang membatalkan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:620
+#: ../lib/packagekit-glib2/pk-console-shared.c:627
 msgid "Getting repositories"
-msgstr ""
+msgstr "Sedang mengambil repositori"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:624
+#: ../lib/packagekit-glib2/pk-console-shared.c:631
 msgid "Enabling repository"
-msgstr ""
+msgstr "Sedang mengaktifkan repositori"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:628
+#: ../lib/packagekit-glib2/pk-console-shared.c:635
 msgid "Setting data"
-msgstr ""
+msgstr "Sedang menata data"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:632
+#: ../lib/packagekit-glib2/pk-console-shared.c:639
 msgid "Resolving"
-msgstr ""
+msgstr "Sedang memecahkan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:636
+#: ../lib/packagekit-glib2/pk-console-shared.c:643
 msgid "Getting file list"
-msgstr ""
+msgstr "Sedang mengambil daftar berkas"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:640
+#: ../lib/packagekit-glib2/pk-console-shared.c:647
 msgid "Getting provides"
-msgstr ""
+msgstr "Sedang mengambil penyedia"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:644
+#: ../lib/packagekit-glib2/pk-console-shared.c:651
 msgid "Installing signature"
-msgstr ""
+msgstr "Sedang memasang tanda tangan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:648
+#: ../lib/packagekit-glib2/pk-console-shared.c:655
 msgid "Getting packages"
-msgstr ""
+msgstr "Sedang mengambil paket"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:652
+#: ../lib/packagekit-glib2/pk-console-shared.c:659
 msgid "Accepting EULA"
-msgstr ""
+msgstr "Sedang menyetujui EULA"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:660
+#: ../lib/packagekit-glib2/pk-console-shared.c:667
 msgid "Getting upgrades"
-msgstr ""
+msgstr "Sedang mengambil peningkatan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:664
+#: ../lib/packagekit-glib2/pk-console-shared.c:671
 msgid "Getting categories"
-msgstr ""
+msgstr "Sedang mengambil katagori"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:668
+#: ../lib/packagekit-glib2/pk-console-shared.c:675
 msgid "Getting transactions"
-msgstr ""
+msgstr "Sedang mengambil transaksi"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:672
-#: ../lib/packagekit-glib2/pk-console-shared.c:676
+#: ../lib/packagekit-glib2/pk-console-shared.c:679
+#: ../lib/packagekit-glib2/pk-console-shared.c:683
 msgid "Simulating install"
-msgstr ""
+msgstr "Sedang mensimulasikan pemasangan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:680
+#: ../lib/packagekit-glib2/pk-console-shared.c:687
 msgid "Simulating remove"
-msgstr ""
+msgstr "Sedang mensimulasikan penghapusan"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:684
+#: ../lib/packagekit-glib2/pk-console-shared.c:691
 msgid "Simulating update"
-msgstr ""
+msgstr "Sedang mensimulasikan pemutakhiran"
 
 #. TRANSLATORS: ask the user if they are comfortable installing insecure packages
 #: ../lib/packagekit-glib2/pk-task-text.c:69
 msgid "Do you want to allow installing of unsigned software?"
-msgstr ""
+msgstr "Anda ingin mengijinkan pemasangan perangkat lunak tanpa tanda tangan?"
 
 #. TRANSLATORS: tell the user we've not done anything
 #: ../lib/packagekit-glib2/pk-task-text.c:74
 msgid "The unsigned software will not be installed."
-msgstr ""
+msgstr "Perangkat lunak tanpa tanda tangan tak akan dipasang."
 
 #. TRANSLATORS: the package repository is signed by a key that is not recognised
 #: ../lib/packagekit-glib2/pk-task-text.c:123
 msgid "Software source signature required"
-msgstr ""
+msgstr "Perlu tanda tangan sumber perangkat lunak"
 
 #. TRANSLATORS: the package repository name
 #: ../lib/packagekit-glib2/pk-task-text.c:129
 msgid "Software source name"
-msgstr ""
+msgstr "Nama sumber perangkat lunak"
 
 #. TRANSLATORS: the key URL
 #: ../lib/packagekit-glib2/pk-task-text.c:132
 msgid "Key URL"
-msgstr ""
+msgstr "URL kunci"
 
 #. TRANSLATORS: the username of the key
 #: ../lib/packagekit-glib2/pk-task-text.c:135
 msgid "Key user"
-msgstr ""
+msgstr "Pengguna kunci"
 
 #. TRANSLATORS: the key ID, usually a few hex digits
 #: ../lib/packagekit-glib2/pk-task-text.c:138
 msgid "Key ID"
-msgstr ""
+msgstr "ID Kunci"
 
 #. TRANSLATORS: the key fingerprint, again, yet more hex
 #: ../lib/packagekit-glib2/pk-task-text.c:141
 msgid "Key fingerprint"
-msgstr ""
+msgstr "Tanda tangan kunci"
 
 #. TRANSLATORS: the timestamp (a bit like a machine readable time)
 #: ../lib/packagekit-glib2/pk-task-text.c:144
 msgid "Key Timestamp"
-msgstr ""
+msgstr "Penanda Waktu Kunci"
 
 #. TRANSLATORS: ask the user if they want to import
 #: ../lib/packagekit-glib2/pk-task-text.c:157
 msgid "Do you accept this signature?"
-msgstr ""
+msgstr "Apakah Anda menyetujui tanda tangan ini?"
 
 #. TRANSLATORS: tell the user we've not done anything
 #: ../lib/packagekit-glib2/pk-task-text.c:162
 msgid "The signature was not accepted."
-msgstr ""
+msgstr "Tanda tangan tak diterima."
 
 #. TRANSLATORS: this is another name for a software licence that has to be read before installing
 #: ../lib/packagekit-glib2/pk-task-text.c:205
 msgid "End user licence agreement required"
-msgstr ""
+msgstr "Perlu persetujuan lisensi pengguna akhir"
 
 #. TRANSLATORS: the EULA text itself (long and boring)
 #: ../lib/packagekit-glib2/pk-task-text.c:214
 msgid "Agreement"
-msgstr ""
+msgstr "Persetujuan"
 
 #. TRANSLATORS: ask the user if they've read and accepted the EULA
 #: ../lib/packagekit-glib2/pk-task-text.c:223
 msgid "Do you accept this agreement?"
-msgstr ""
+msgstr "Anda menerima kesepakatan ini?"
 
 #. TRANSLATORS: tell the user we've not done anything
 #: ../lib/packagekit-glib2/pk-task-text.c:228
 msgid "The agreement was not accepted."
-msgstr ""
+msgstr "Persetujuan tak diterima."
 
 #. TRANSLATORS: the user needs to change media inserted into the computer
 #: ../lib/packagekit-glib2/pk-task-text.c:267
 msgid "Media change required"
-msgstr ""
+msgstr "Perlu ganti media"
 
 #. TRANSLATORS: the type, e.g. DVD, CD, etc
 #: ../lib/packagekit-glib2/pk-task-text.c:270
 msgid "Media type"
-msgstr ""
+msgstr "Jenis media"
 
 #. TRANSLATORS: the media label, usually like 'disk-1of3'
 #: ../lib/packagekit-glib2/pk-task-text.c:273
 msgid "Media label"
-msgstr ""
+msgstr "Label media"
 
 #. TRANSLATORS: the media description, usually like 'Fedora 12 disk 5'
 #: ../lib/packagekit-glib2/pk-task-text.c:276
 msgid "Text"
-msgstr ""
+msgstr "Teks"
 
 #. TRANSLATORS: ask the user to insert the media
 #: ../lib/packagekit-glib2/pk-task-text.c:282
 msgid "Please insert the correct media"
-msgstr ""
+msgstr "Silakan sisipkan media yang benar"
 
 #. TRANSLATORS: tell the user we've not done anything as they are lazy
 #: ../lib/packagekit-glib2/pk-task-text.c:287
 msgid "The correct media was not inserted."
-msgstr ""
+msgstr "Media yang benar tak disisipkan."
 
 #. TRANSLATORS: When processing, we might have to remove other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:302
 msgid "The following packages have to be removed:"
-msgstr ""
+msgstr "Paket berikut mesti dihapus:"
 
 #. TRANSLATORS: When processing, we might have to install other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:307
 msgid "The following packages have to be installed:"
-msgstr ""
+msgstr "Paket berikut mesti dipasang:"
 
 #. TRANSLATORS: When processing, we might have to update other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:312
 msgid "The following packages have to be updated:"
-msgstr ""
+msgstr "Paket berikut mesti dimutakhirkan:"
 
 #. TRANSLATORS: When processing, we might have to reinstall other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:317
 msgid "The following packages have to be reinstalled:"
-msgstr ""
+msgstr "Paket berikut mesti dipasang ulang:"
 
 #. TRANSLATORS: When processing, we might have to downgrade other dependencies
 #: ../lib/packagekit-glib2/pk-task-text.c:322
 msgid "The following packages have to be downgraded:"
-msgstr ""
+msgstr "Paket berikut mesti diturunkan versinya:"
 
 #. TRANSLATORS: ask the user if the proposed changes are okay
 #: ../lib/packagekit-glib2/pk-task-text.c:382
 msgid "Proceed with changes?"
-msgstr ""
+msgstr "Lanjut terapkan perubahan?"
 
 #. TRANSLATORS: tell the user we didn't do anything
 #: ../lib/packagekit-glib2/pk-task-text.c:387
 msgid "The transaction did not proceed."
-msgstr ""
+msgstr "Transaksi tak dilanjutkan."
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to accept new
@@ -1696,78 +1716,87 @@ msgstr ""
 #.
 #: ../policy/org.freedesktop.packagekit.policy.in.h:7
 msgid "Accept EULA"
-msgstr ""
+msgstr "Setujui EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:8
 msgid "Authentication is required to accept a EULA"
-msgstr ""
+msgstr "Perlu otentikasi untuk menyetujui suatu EULA"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid ""
-"Authentication is required to cancel a task that was not started by yourself"
-msgstr ""
+msgid "Authentication is required to cancel a task that was not started by yourself"
+msgstr "Perlu otentikasi untuk membatalkan suatu tugas yang tak dimulai oleh Anda sendiri"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:10
 msgid "Authentication is required to change software source parameters"
-msgstr ""
+msgstr "Perlu otentikasi untuk mengubah parameter sumber perangkat lunak"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
+msgid "Authentication is required to change the location used to decompress packages"
+msgstr "Perlu otentikasi untuk mengubah lokasi yang dipakai untuk mendekompresi paket"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Authentication is required to install a signed package"
-msgstr ""
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "Perlu otentikasi untuk menganggap suatu kunci yang dipakai untuk menandatangani paket sebagai terpercaya"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Authentication is required to install an untrusted package"
-msgstr ""
+msgid "Authentication is required to install a signed package"
+msgstr "Perlu otentikasi untuk memasang suatu paket bertanda tangan"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Authentication is required to refresh the system sources"
-msgstr ""
+msgid "Authentication is required to install an untrusted package"
+msgstr "Perlu otentikasi untuk memasang suatu paket tak terpercaya"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Authentication is required to reload the device with a new driver"
-msgstr ""
+msgid "Authentication is required to refresh the system sources"
+msgstr "Perlu otentikasi untuk menyegarkan sumber sistem"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Authentication is required to remove packages"
-msgstr ""
+msgid "Authentication is required to reload the device with a new driver"
+msgstr "Perlu otentikasi untuk memuat ulang perangkat dengan penggerak baru"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Authentication is required to rollback a transaction"
-msgstr ""
+msgid "Authentication is required to remove packages"
+msgstr "Perlu otentikasi untuk menghapus paket"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
+msgid "Authentication is required to rollback a transaction"
+msgstr "Perlu otentikasi untuk mengembalikan suatu transaksi"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "Perlu otentikasi untuk menata proksi jaringan yang dipakai untuk mengunduh paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:20
 msgid "Authentication is required to update packages"
-msgstr ""
+msgstr "Perlu otentikasi untuk memutakhirkan paket"
 
 #. SECURITY:
 #. - Normal users are allowed to cancel their own task without
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+#: ../policy/org.freedesktop.packagekit.policy.in.h:26
 msgid "Cancel foreign task"
-msgstr ""
+msgstr "Batalkan tugas asing"
+
+#. SECURITY:
+#. - This is used when users want to install to a different prefix, for
+#. instance to a LTSP image or a virtual machine.
+#. - This could be used to overwrite files not owned by the user using
+#. a carefully created package file.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:33
+msgid "Change location that packages are installed"
+msgstr "Ubah lokasi pemasangan paket"
 
 #. SECURITY:
 #. - Normal users require admin authentication to enable or disable
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+#: ../policy/org.freedesktop.packagekit.policy.in.h:39
 msgid "Change software source parameters"
-msgstr ""
+msgstr "Ubah parameter sumber perangkat lunak"
 
 #. SECURITY:
 #. - Normal users do not need authentication to install signed packages
@@ -1775,9 +1804,9 @@ msgstr ""
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+#: ../policy/org.freedesktop.packagekit.policy.in.h:46
 msgid "Install signed package"
-msgstr ""
+msgstr "Pasang paket bertanda tangan"
 
 #. SECURITY:
 #. - Normal users require admin authentication to install untrusted or
@@ -1785,17 +1814,17 @@ msgstr ""
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+#: ../policy/org.freedesktop.packagekit.policy.in.h:53
 msgid "Install untrusted local file"
-msgstr ""
+msgstr "Pasang berkas lokal yang tak terpercaya"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Refresh system sources"
-msgstr ""
+msgstr "Segarkan sumber sistem"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rebind a driver
@@ -1804,9 +1833,9 @@ msgstr ""
 #. try to rebind drivers in use, for instance security authentication
 #. devices.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+#: ../policy/org.freedesktop.packagekit.policy.in.h:66
 msgid "Reload a device"
-msgstr ""
+msgstr "Muat ulang suatu perangkat"
 
 #. SECURITY:
 #. - Normal users require admin authentication to remove packages as
@@ -1817,26 +1846,26 @@ msgstr ""
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+#: ../policy/org.freedesktop.packagekit.policy.in.h:76
 msgid "Remove package"
-msgstr ""
+msgstr "Hapus paket"
 
 #. SECURITY:
 #. - Normal users require admin authentication to rollback system state
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:74
+#: ../policy/org.freedesktop.packagekit.policy.in.h:82
 msgid "Rollback to a previous transaction"
-msgstr ""
+msgstr "Kembalikan ke transaksi sebelumnya"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+#: ../policy/org.freedesktop.packagekit.policy.in.h:87
 msgid "Set network proxy"
-msgstr ""
+msgstr "Tata proksi jaringan"
 
 #. SECURITY:
 #. - Normal users require admin authentication to add signing keys.
@@ -1844,9 +1873,9 @@ msgstr ""
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Trust a key used for signing packages"
-msgstr ""
+msgstr "Percayai suatu kunci yang dipakai untuk menandatangani paket"
 
 #. SECURITY:
 #. - Normal users do not require admin authentication to update the
@@ -1855,136 +1884,136 @@ msgstr ""
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+#: ../policy/org.freedesktop.packagekit.policy.in.h:102
 msgid "Update packages"
-msgstr ""
+msgstr "Memutakhirkan paket"
 
 #. TRANSLATORS: failed due to DBus security
 #: ../src/pk-main.c:87
 msgid "Startup failed due to security policies on this machine."
-msgstr ""
+msgstr "Startup gagal karena kebijakan keamanan pada mesin ini."
 
 #. TRANSLATORS: only two ways this can fail...
 #: ../src/pk-main.c:89
 msgid "This can happen for two reasons:"
-msgstr ""
+msgstr "Ini dapat terjadi karena dua alasan:"
 
 #. TRANSLATORS: only allowed to be owned by root
 #: ../src/pk-main.c:91
 msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
+msgstr "Yang meluncurkan executable bukan pengguna yang benar (biasanya root)"
 
 #. TRANSLATORS: or we are installed in a prefix
 #: ../src/pk-main.c:93
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system "
-"directory:"
-msgstr ""
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system directory:"
+msgstr "Berkas org.freedesktop.PackageKit.conf tak terpasang di direktori sistem:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:199
+#: ../src/pk-main.c:200
 msgid "Packaging backend to use, e.g. dummy"
-msgstr ""
+msgstr "Backend pemaketan yang dipakai, mis. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:203
 msgid "Daemonize and detach from the terminal"
-msgstr ""
+msgstr "Daemonkan dan lepas dari terminal"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:206
 msgid "Disable the idle timer"
-msgstr ""
+msgstr "Matikan pewaktu menganggur"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:209
 msgid "Show version and exit"
-msgstr ""
+msgstr "Tampilkan versi dan keluar"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:212
 msgid "Exit after a small delay"
-msgstr ""
+msgstr "Keluar setelah suatu jeda singkat"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:214
+#: ../src/pk-main.c:215
 msgid "Exit after the engine has loaded"
-msgstr ""
+msgstr "Keluar setelah mesin dimuat"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:230
 msgid "PackageKit service"
-msgstr ""
+msgstr "Layanan PackageKit"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:266
+#: ../src/pk-main.c:267
 msgid "Cannot connect to the system bus"
-msgstr ""
+msgstr "Tak bisa menyambung ke bus sistem"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:317
+#: ../src/pk-main.c:318
 msgid "Error trying to start:"
-msgstr ""
+msgstr "Galat mencoba memulai:"
 
 #: ../src/pk-polkit-action-lookup.c:150
 msgid "To install debugging packages, extra sources need to be enabled"
-msgstr ""
+msgstr "Untuk memasang paket pengawakutuan, sumber tambahan perlu diaktifkan"
 
 #. TRANSLATORS: is not GPG signed
-#: ../src/pk-polkit-action-lookup.c:171 ../src/pk-polkit-action-lookup.c:190
+#: ../src/pk-polkit-action-lookup.c:171
+#: ../src/pk-polkit-action-lookup.c:190
 msgid "The software is not from a trusted source."
-msgstr ""
+msgstr "Perangkat lunak bukan dari sumber yang terpercaya."
 
 #: ../src/pk-polkit-action-lookup.c:176
 msgid "Do not update this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Jangan mutakhirkan paket ini kecuali Anda yakin aman untuk dilakukan."
 
 #: ../src/pk-polkit-action-lookup.c:177
 msgid "Do not update these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Jangan mutakhirkan paket-paket ini kecuali Anda yakin aman untuk melakukannya."
 
 #: ../src/pk-polkit-action-lookup.c:195
 msgid "Do not install this package unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Jangan pasang paket ini kecuali Anda yakin aman untuk dilakukan."
 
 #: ../src/pk-polkit-action-lookup.c:196
 msgid "Do not install these packages unless you are sure it is safe to do so."
-msgstr ""
+msgstr "Jangan pasang paket-paket ini kecuali Anda yakin aman untuk melakukannya."
 
 #. TRANSLATORS: too many packages to list each one
 #: ../src/pk-polkit-action-lookup.c:273
 msgid "Many packages"
-msgstr ""
+msgstr "Banyak paket"
 
 #. TRANSLATORS: if the transaction is forced to install only trusted packages
 #: ../src/pk-polkit-action-lookup.c:339
 msgid "Only trusted"
-msgstr ""
+msgstr "Hanya yang terpercaya"
 
 #. TRANSLATORS: turn on all debugging
 #: ../src/egg-debug.c:388
 msgid "Show debugging information for all files"
-msgstr ""
+msgstr "Tampilkan informasi pengawakutuan bagi semua berkas"
 
 #. TRANSLATORS: a list of modules to debug
-#: ../src/egg-debug.c:459
+#: ../src/egg-debug.c:458
 msgid "Debug these specific modules"
-msgstr ""
+msgstr "Awakutukan modul spesifik ini"
 
 #. TRANSLATORS: a list of functions to debug
-#: ../src/egg-debug.c:462
+#: ../src/egg-debug.c:461
 msgid "Debug these specific functions"
-msgstr ""
+msgstr "Awakutukan fungsi spesifik ini"
 
 #. TRANSLATORS: save to a log
-#: ../src/egg-debug.c:465
+#: ../src/egg-debug.c:464
 msgid "Log debugging data to a file"
-msgstr ""
+msgstr "Log data pengawakutuan ke suatu berkas"
 
-#: ../src/egg-debug.c:469
+#: ../src/egg-debug.c:468
 msgid "Debugging Options"
-msgstr ""
+msgstr "Opsi Pengawakutuan"
 
-#: ../src/egg-debug.c:469
+#: ../src/egg-debug.c:468
 msgid "Show debugging options"
-msgstr ""
+msgstr "Tampilkan opsi pengawakutuan"
+
commit 8ff4922a07c911f14d32d75242dffb5508a7c244
Author: yeager <yeager at fedoraproject.org>
Date:   Wed Aug 11 23:21:07 2010 +0000

    l10n: Updates to Swedish (sv) translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/sv.po b/po/sv.po
index b22cca8..a578ef0 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-03-01 15:24+0000\n"
-"PO-Revision-Date: 2010-03-01 18:26+0100\n"
+"POT-Creation-Date: 2010-08-11 10:35+0000\n"
+"PO-Revision-Date: 2010-08-12 01:19+0100\n"
 "Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv at listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
@@ -18,119 +18,119 @@ msgstr ""
 
 #. TRANSLATORS: this is an atomic transaction
 #. TRANSLATORS: the role is the point of the transaction, e.g. update-system
-#: ../client/pk-console.c:175
-#: ../client/pk-console.c:597
+#: ../client/pk-console.c:176
+#: ../client/pk-console.c:598
 msgid "Transaction"
 msgstr "Transaktion"
 
 #. TRANSLATORS: this is the time the transaction was started in system timezone
-#: ../client/pk-console.c:177
+#: ../client/pk-console.c:178
 msgid "System time"
 msgstr "Systemtid"
 
 #. TRANSLATORS: this is if the transaction succeeded or not
-#: ../client/pk-console.c:179
+#: ../client/pk-console.c:180
 msgid "Succeeded"
 msgstr "Lyckades"
 
-#: ../client/pk-console.c:179
+#: ../client/pk-console.c:180
 msgid "True"
 msgstr "Sant"
 
-#: ../client/pk-console.c:179
+#: ../client/pk-console.c:180
 msgid "False"
 msgstr "Falskt"
 
 #. TRANSLATORS: this is the transactions role, e.g. "update-system"
 #. TRANSLATORS: the trasaction role, e.g. update-system
-#: ../client/pk-console.c:181
+#: ../client/pk-console.c:182
 #: ../src/pk-polkit-action-lookup.c:332
 msgid "Role"
 msgstr "Roll"
 
 #. TRANSLATORS: this is The duration of the transaction
-#: ../client/pk-console.c:186
+#: ../client/pk-console.c:187
 msgid "Duration"
 msgstr "Längd"
 
-#: ../client/pk-console.c:186
+#: ../client/pk-console.c:187
 msgid "(seconds)"
 msgstr "(sekunder)"
 
 #. 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
+#: ../client/pk-console.c:191
 #: ../src/pk-polkit-action-lookup.c:346
 msgid "Command line"
 msgstr "Kommandorad"
 
 #. TRANSLATORS: this is the user ID of the user that started the action
-#: ../client/pk-console.c:192
+#: ../client/pk-console.c:193
 msgid "User ID"
 msgstr "Användar-id"
 
 #. TRANSLATORS: this is the username, e.g. hughsie
-#: ../client/pk-console.c:199
+#: ../client/pk-console.c:200
 msgid "Username"
 msgstr "Användarnamn"
 
 #. TRANSLATORS: this is the users real name, e.g. "Richard Hughes"
-#: ../client/pk-console.c:203
+#: ../client/pk-console.c:204
 msgid "Real name"
 msgstr "Verkligt namn"
 
-#: ../client/pk-console.c:211
+#: ../client/pk-console.c:212
 msgid "Affected packages:"
 msgstr "PÃ¥verkade paket:"
 
-#: ../client/pk-console.c:213
+#: ../client/pk-console.c:214
 msgid "Affected packages: None"
 msgstr "PÃ¥verkade paket: Inga"
 
 #. TRANSLATORS: this is the distro, e.g. Fedora 10
-#: ../client/pk-console.c:248
+#: ../client/pk-console.c:249
 msgid "Distribution"
 msgstr "Distribution"
 
 #. TRANSLATORS: this is type of update, stable or testing
-#: ../client/pk-console.c:250
+#: ../client/pk-console.c:251
 msgid "Type"
 msgstr "Typ"
 
 #. TRANSLATORS: this is any summary text describing the upgrade
 #. TRANSLATORS: this is the summary of the group
-#: ../client/pk-console.c:252
-#: ../client/pk-console.c:291
+#: ../client/pk-console.c:253
+#: ../client/pk-console.c:292
 msgid "Summary"
 msgstr "Sammandrag"
 
 #. TRANSLATORS: this is the group category name
-#: ../client/pk-console.c:280
+#: ../client/pk-console.c:281
 msgid "Category"
 msgstr "Kategori"
 
 #. TRANSLATORS: this is group identifier
-#: ../client/pk-console.c:282
+#: ../client/pk-console.c:283
 msgid "ID"
 msgstr "ID"
 
 #. TRANSLATORS: this is the parent group
-#: ../client/pk-console.c:285
+#: ../client/pk-console.c:286
 msgid "Parent"
 msgstr "Förälder"
 
 #. TRANSLATORS: this is the name of the parent group
-#: ../client/pk-console.c:288
+#: ../client/pk-console.c:289
 msgid "Name"
 msgstr "Namn"
 
 #. TRANSLATORS: this is preferred icon for the group
-#: ../client/pk-console.c:294
+#: ../client/pk-console.c:295
 msgid "Icon"
 msgstr "Ikon"
 
 #. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:340
+#: ../client/pk-console.c:341
 msgid "Details about the update:"
 msgstr "Detaljer om uppdateringen:"
 
@@ -139,8 +139,8 @@ msgstr "Detaljer om uppdateringen:"
 #. TRANSLATORS: the package that is not signed by a known key
 #. TRANSLATORS: the package name that was trying to be installed
 #. TRANSLATORS: title, the names of the packages that the method is processing
-#: ../client/pk-console.c:346
-#: ../client/pk-console.c:616
+#: ../client/pk-console.c:347
+#: ../client/pk-console.c:617
 #: ../lib/packagekit-glib2/pk-task-text.c:126
 #: ../lib/packagekit-glib2/pk-task-text.c:208
 #: ../src/pk-polkit-action-lookup.c:357
@@ -150,192 +150,196 @@ msgstr[0] "Paket"
 msgstr[1] "Paket"
 
 #. TRANSLATORS: details about the update, any packages that this update updates
-#: ../client/pk-console.c:349
+#: ../client/pk-console.c:350
 msgid "Updates"
 msgstr "Uppdaterar"
 
 #. TRANSLATORS: details about the update, any packages that this update obsoletes
-#: ../client/pk-console.c:353
+#: ../client/pk-console.c:354
 msgid "Obsoletes"
 msgstr "Föräldrar"
 
 #. TRANSLATORS: details about the update, the vendor URLs
 #. TRANSLATORS: the vendor (e.g. vmware) that is providing the EULA
-#: ../client/pk-console.c:357
+#: ../client/pk-console.c:358
 #: ../lib/packagekit-glib2/pk-task-text.c:211
 msgid "Vendor"
 msgstr "Leverantör"
 
 #. TRANSLATORS: details about the update, the bugzilla URLs
-#: ../client/pk-console.c:361
+#: ../client/pk-console.c:362
 msgid "Bugzilla"
 msgstr "Bugzilla"
 
 #. TRANSLATORS: details about the update, the CVE URLs
-#: ../client/pk-console.c:365
+#: ../client/pk-console.c:366
 msgid "CVE"
 msgstr "CVE"
 
 #. TRANSLATORS: details about the update, if the package requires a restart
-#: ../client/pk-console.c:369
+#: ../client/pk-console.c:370
 msgid "Restart"
 msgstr "Omstart"
 
 #. TRANSLATORS: details about the update, any description of the update
-#: ../client/pk-console.c:373
+#: ../client/pk-console.c:374
 msgid "Update text"
 msgstr "Uppdateringstext"
 
 #. TRANSLATORS: details about the update, the changelog for the package
-#: ../client/pk-console.c:377
+#: ../client/pk-console.c:378
 msgid "Changes"
 msgstr "Ändringar"
 
 #. TRANSLATORS: details about the update, the ongoing state of the update
-#: ../client/pk-console.c:381
+#: ../client/pk-console.c:382
 msgid "State"
 msgstr "Tillstånd"
 
 #. TRANSLATORS: details about the update, date the update was issued
-#: ../client/pk-console.c:385
+#: ../client/pk-console.c:386
 msgid "Issued"
 msgstr "Utfärdad"
 
 #. TRANSLATORS: details about the update, date the update was updated
 #. TRANSLATORS: The action of the package, in past tense
-#: ../client/pk-console.c:389
-#: ../lib/packagekit-glib2/pk-console-shared.c:510
+#: ../client/pk-console.c:390
+#: ../lib/packagekit-glib2/pk-console-shared.c:517
 msgid "Updated"
 msgstr "Uppdaterad"
 
 #. TRANSLATORS: if the repo is enabled
-#: ../client/pk-console.c:425
+#: ../client/pk-console.c:426
 msgid "Enabled"
 msgstr "Aktiverad"
 
 #. TRANSLATORS: if the repo is disabled
-#: ../client/pk-console.c:428
+#: ../client/pk-console.c:429
 msgid "Disabled"
 msgstr "Inaktiverad"
 
 #. TRANSLATORS: a package requires the system to be restarted
-#: ../client/pk-console.c:460
+#: ../client/pk-console.c:461
 msgid "System restart required by:"
 msgstr "Omstart av systemet krävs:"
 
 #. TRANSLATORS: a package requires the session to be restarted
-#: ../client/pk-console.c:463
+#: ../client/pk-console.c:464
 msgid "Session restart required:"
 msgstr "Omstart av sessionen krävs:"
 
 #. TRANSLATORS: a package requires the system to be restarted due to a security update
-#: ../client/pk-console.c:466
+#: ../client/pk-console.c:467
 msgid "System restart (security) required by:"
 msgstr "Omstart av systemet (säkerhet) krävs av:"
 
 #. TRANSLATORS: a package requires the session to be restarted due to a security update
-#: ../client/pk-console.c:469
+#: ../client/pk-console.c:470
 msgid "Session restart (security) required:"
 msgstr "Omstart av sessionen (säkerhet) krävs:"
 
 #. TRANSLATORS: a package requires the application to be restarted
-#: ../client/pk-console.c:472
+#: ../client/pk-console.c:473
 msgid "Application restart required by:"
 msgstr "Omstart av program krävs av:"
 
 #. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:507
+#: ../client/pk-console.c:508
 msgid "Package description"
 msgstr "Paketbeskrivning"
 
 #. TRANSLATORS: This a message (like a little note that may be of interest) from the transaction
-#: ../client/pk-console.c:538
+#: ../client/pk-console.c:539
 msgid "Message:"
 msgstr "Meddelande:"
 
 #. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:559
+#: ../client/pk-console.c:560
 msgid "No files"
 msgstr "Inga filer"
 
 #. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:564
+#: ../client/pk-console.c:565
 msgid "Package files"
 msgstr "Paketfiler"
 
 #. TRANSLATORS: the percentage complete of the transaction
-#: ../client/pk-console.c:632
+#: ../client/pk-console.c:633
 msgid "Percentage"
 msgstr "Procentandel"
 
 #. TRANSLATORS: the status of the transaction (e.g. downloading)
-#: ../client/pk-console.c:650
+#: ../client/pk-console.c:651
 msgid "Status"
 msgstr "Status"
 
 #. TRANSLATORS: the results from the transaction
-#: ../client/pk-console.c:679
+#: ../client/pk-console.c:680
 msgid "Results:"
 msgstr "Resultat:"
 
 #. TRANSLATORS: we failed to get any results, which is pretty fatal in my book
-#: ../client/pk-console.c:686
+#: ../client/pk-console.c:687
 msgid "Fatal error"
 msgstr "Ödesdigert fel"
 
 #. TRANSLATORS: the transaction failed in a way we could not expect
-#: ../client/pk-console.c:695
-#: ../contrib/command-not-found/pk-command-not-found.c:432
-#: ../contrib/command-not-found/pk-command-not-found.c:603
+#: ../client/pk-console.c:696
+#: ../contrib/command-not-found/pk-command-not-found.c:454
+#: ../contrib/command-not-found/pk-command-not-found.c:634
 msgid "The transaction failed"
 msgstr "Transaktionen misslyckades"
 
 #. TRANSLATORS: print a message when there are no updates
-#: ../client/pk-console.c:726
+#: ../client/pk-console.c:727
 msgid "There are no updates available at this time."
 msgstr "Det finns inga uppdateringar tillgängliga just nu."
 
+#: ../client/pk-console.c:750
+msgid "There are no upgrades available at this time."
+msgstr "Det finns inga uppgraderingar tillgängliga just nu."
+
 #. TRANSLATORS: a package needs to restart their system
-#: ../client/pk-console.c:814
+#: ../client/pk-console.c:817
 msgid "Please restart the computer to complete the update."
 msgstr "Starta om datorn för att färdigställa uppdateringen."
 
 #. TRANSLATORS: a package needs to restart the session
-#: ../client/pk-console.c:817
+#: ../client/pk-console.c:820
 msgid "Please logout and login to complete the update."
 msgstr "Logga ut och logga in igen för att färdigställa uppdateringen."
 
 #. TRANSLATORS: a package needs to restart their system (due to security)
-#: ../client/pk-console.c:820
+#: ../client/pk-console.c:823
 msgid "Please restart the computer to complete the update as important security updates have been installed."
 msgstr "Starta om datorn för att färdigställa uppdateringen eftersom viktiga säkerhetsuppdateringar har installerats."
 
 #. TRANSLATORS: a package needs to restart the session (due to security)
-#: ../client/pk-console.c:823
+#: ../client/pk-console.c:826
 msgid "Please logout and login to complete the update as important security updates have been installed."
 msgstr "Logga ut och logga in igen för att färdigställa uppdateringen eftersom viktiga säkerhetsuppdateringar har installerats."
 
 #. TRANSLATORS: The user used 'pkcon install dave.rpm' rather than 'pkcon install-local dave.rpm'
-#: ../client/pk-console.c:849
+#: ../client/pk-console.c:852
 #, c-format
-msgid "Extected package name, actually got file. Try using 'pkcon install-local %s' instead."
-msgstr "Förväntade paketnamn men fick filen. Prova använda \"pkcon install-local %s\" istället."
+msgid "Expected package name, actually got file. Try using 'pkcon install-local %s' instead."
+msgstr "Förväntade paketnamn men fick fil. Prova att använda \"pkcon install-local %s\" istället."
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:857
+#: ../client/pk-console.c:860
 #, c-format
 msgid "This tool could not find any available package: %s"
 msgstr "Detta verktyg kunde inte hitta några tillgängliga paket: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:885
+#: ../client/pk-console.c:888
 #, c-format
 msgid "This tool could not find the installed package: %s"
 msgstr "Detta verktyg kunde inte hitta det installerade paketet: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:913
-#: ../client/pk-console.c:941
+#: ../client/pk-console.c:916
+#: ../client/pk-console.c:944
 #, c-format
 msgid "This tool could not find the package: %s"
 msgstr "Detta verktyg kunde inte hitta paketet: %s"
@@ -344,185 +348,200 @@ msgstr "Detta verktyg kunde inte hitta paketet: %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:969
-#: ../client/pk-console.c:997
-#: ../client/pk-console.c:1025
-#: ../client/pk-console.c:1053
-#: ../client/pk-console.c:1081
+#: ../client/pk-console.c:972
+#: ../client/pk-console.c:1000
+#: ../client/pk-console.c:1028
+#: ../client/pk-console.c:1056
+#: ../client/pk-console.c:1084
 #, c-format
 msgid "This tool could not find all the packages: %s"
 msgstr "Detta verktyg kunde inte hitta alla paketen: %s"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1110
+#: ../client/pk-console.c:1113
 msgid "The daemon crashed mid-transaction!"
 msgstr "Bakgrundsprocessen kraschade mitt under transaktionen!"
 
 #. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1144
+#: ../client/pk-console.c:1147
 msgid "PackageKit Console Interface"
 msgstr "Konsollgränssnitt för PackageKit"
 
 #. these are commands we can use with pkcon
-#: ../client/pk-console.c:1146
+#: ../client/pk-console.c:1149
 msgid "Subcommands:"
 msgstr "Underkommandon:"
 
 #. TRANSLATORS: we keep a database updated with the time that an action was last executed
-#: ../client/pk-console.c:1225
+#: ../client/pk-console.c:1228
 msgid "Failed to get the time since this action was last completed"
 msgstr "Misslyckades med att få tiden sedan denna åtgärd senast färdigställdes"
 
 #. TRANSLATORS: command line argument, just show the version string
-#: ../client/pk-console.c:1261
-#: ../client/pk-monitor.c:306
+#: ../client/pk-console.c:1268
+#: ../client/pk-monitor.c:373
 msgid "Show the program version and exit"
 msgstr "Visa programversion och avsluta"
 
 #. TRANSLATORS: command line argument, use a filter to narrow down results
-#: ../client/pk-console.c:1264
+#: ../client/pk-console.c:1271
 msgid "Set the filter, e.g. installed"
 msgstr "Ange filtret, t.ex. installed"
 
+#. TRANSLATORS: command line argument, use a non-standard install prefix
+#: ../client/pk-console.c:1274
+msgid "Set the install root, e.g. '/' or '/mnt/ltsp'"
+msgstr "Ställ in installationsroten, t.ex. \"/\" eller \"/mnt/ltsp\""
+
 #. TRANSLATORS: command line argument, work asynchronously
-#: ../client/pk-console.c:1267
+#: ../client/pk-console.c:1277
 msgid "Exit without waiting for actions to complete"
 msgstr "Avsluta utan att vänta på att åtgärder ska färdigställas"
 
 #. command line argument, do we ask questions
-#: ../client/pk-console.c:1270
+#: ../client/pk-console.c:1280
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:527
 msgid "Install the packages without asking for confirmation"
 msgstr "Installera paketen utan att fråga efter bekräftelse"
 
 #. TRANSLATORS: command line argument, this command is not a priority
-#: ../client/pk-console.c:1273
+#: ../client/pk-console.c:1283
 msgid "Run the command using idle network bandwidth and also using less power"
 msgstr "Kör kommandot med inaktiv nätverksbandbredd och även med mindre ström"
 
 #. TRANSLATORS: command line argument, just output without fancy formatting
-#: ../client/pk-console.c:1276
+#: ../client/pk-console.c:1286
 msgid "Print to screen a machine readable output, rather than using animated widgets"
 msgstr "Skriv ut maskinläsbart utdata på skärmen istället för att använda animerade widgetar"
 
 #. TRANSLATORS: we failed to contact the daemon
-#: ../client/pk-console.c:1298
+#: ../client/pk-console.c:1308
 msgid "Failed to contact PackageKit"
 msgstr "Misslyckades med att kontakta PackageKit"
 
 #. TRANSLATORS: The user specified an incorrect filter
-#: ../client/pk-console.c:1356
+#: ../client/pk-console.c:1370
+msgid "The proxy could not be set"
+msgstr "Proxyservern kunde inte ställas in"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1382
+msgid "The install root could not be set"
+msgstr "Installationsroten kunde inte ställas in"
+
+#. TRANSLATORS: The user specified an incorrect filter
+#: ../client/pk-console.c:1394
 msgid "The filter specified was invalid"
 msgstr "Angivet filter var ogiltigt"
 
 #. TRANSLATORS: a search type can be name, details, file, etc
-#: ../client/pk-console.c:1375
+#: ../client/pk-console.c:1413
 msgid "A search type is required, e.g. name"
 msgstr "En söktyp krävs, t.ex. namn"
 
 #. TRANSLATORS: the user needs to provide a search term
-#: ../client/pk-console.c:1382
-#: ../client/pk-console.c:1394
-#: ../client/pk-console.c:1406
-#: ../client/pk-console.c:1418
+#: ../client/pk-console.c:1420
+#: ../client/pk-console.c:1432
+#: ../client/pk-console.c:1444
+#: ../client/pk-console.c:1456
 msgid "A search term is required"
 msgstr "Ett sökvillkor krävs"
 
 #. TRANSLATORS: the search type was provided, but invalid
-#: ../client/pk-console.c:1428
+#: ../client/pk-console.c:1466
 msgid "Invalid search type"
 msgstr "Ogiltig söktyp"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1434
+#: ../client/pk-console.c:1472
 msgid "A package name to install is required"
 msgstr "Ett paketnamn att installera krävs"
 
 #. TRANSLATORS: the user did not specify what they wanted to install
-#: ../client/pk-console.c:1443
+#: ../client/pk-console.c:1481
 msgid "A filename to install is required"
 msgstr "Ett filnamn att installera krävs"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1455
+#: ../client/pk-console.c:1493
 msgid "A type, key_id and package_id are required"
 msgstr "En type, key_id och package_id krävs"
 
 #. TRANSLATORS: the user did not specify what they wanted to remove
-#: ../client/pk-console.c:1466
+#: ../client/pk-console.c:1504
 msgid "A package name to remove is required"
 msgstr "Ett paketnamn att ta bort krävs"
 
 #. TRANSLATORS: the user did not specify anything about what to download or where
-#: ../client/pk-console.c:1475
+#: ../client/pk-console.c:1513
 msgid "A destination directory and the package names to download are required"
 msgstr "En målkatalog och paketnamn att hämta ner krävs"
 
 #. TRANSLATORS: the directory does not exist, so we can't continue
-#: ../client/pk-console.c:1482
+#: ../client/pk-console.c:1520
 msgid "Directory not found"
 msgstr "Katalogen hittades inte"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1491
+#: ../client/pk-console.c:1529
 msgid "A licence identifier (eula-id) is required"
 msgstr "En licensidentifierare (eula-id) krävs"
 
 #. TRANSLATORS: geeky error, 99.9999% of users won't see this
-#: ../client/pk-console.c:1502
+#: ../client/pk-console.c:1540
 msgid "A transaction identifier (tid) is required"
 msgstr "En transaktionsidentifierare (tid) krävs"
 
 #. TRANSLATORS: The user did not specify a package name
-#: ../client/pk-console.c:1523
+#: ../client/pk-console.c:1561
 msgid "A package name to resolve is required"
 msgstr "Ett paketnamn att slå upp krävs"
 
 #. TRANSLATORS: The user did not specify a repository (software source) name
-#: ../client/pk-console.c:1534
-#: ../client/pk-console.c:1545
+#: ../client/pk-console.c:1572
+#: ../client/pk-console.c:1583
 msgid "A repository name is required"
 msgstr "Ett förrådsnamn krävs"
 
 #. TRANSLATORS: The user didn't provide any data
-#: ../client/pk-console.c:1556
+#: ../client/pk-console.c:1594
 msgid "A repo name, parameter and value are required"
 msgstr "Ett förrådsnamn, parameter och värde krävs"
 
 #. TRANSLATORS: The user didn't specify what action to use
-#: ../client/pk-console.c:1573
+#: ../client/pk-console.c:1611
 msgid "An action, e.g. 'update-system' is required"
 msgstr "En åtgärd, t.ex. \"update-system\" krävs"
 
 #. TRANSLATORS: The user specified an invalid action
-#: ../client/pk-console.c:1580
+#: ../client/pk-console.c:1618
 msgid "A correct role is required"
 msgstr "En korrekt roll krävs"
 
 #. 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:1590
-#: ../client/pk-console.c:1605
-#: ../client/pk-console.c:1614
-#: ../client/pk-console.c:1634
+#: ../client/pk-console.c:1628
 #: ../client/pk-console.c:1643
+#: ../client/pk-console.c:1652
+#: ../client/pk-console.c:1672
+#: ../client/pk-console.c:1681
 #: ../client/pk-generate-pack.c:316
 msgid "A package name is required"
 msgstr "Ett paketnamn krävs"
 
 #. TRANSLATORS: each package "provides" certain things, e.g. mime(gstreamer-decoder-mp3), the user didn't specify it
-#: ../client/pk-console.c:1623
+#: ../client/pk-console.c:1661
 msgid "A package provide string is required"
 msgstr "En sträng för vad paketet tillhandahåller krävs"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1703
+#: ../client/pk-console.c:1742
 #, c-format
 msgid "Option '%s' is not supported"
 msgstr "Flaggan \"%s\" stöds inte"
 
 #. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1713
+#: ../client/pk-console.c:1752
 msgid "Command failed"
 msgstr "Kommandot misslyckades"
 
@@ -533,8 +552,8 @@ msgstr "Ange filnamnet för beroenden att undanta"
 
 #. TRANSLATORS: the output location
 #: ../client/pk-generate-pack.c:258
-msgid "The output file or directory (the current directory is used if ommitted)"
-msgstr "Fil eller katalog för utdata (den aktuella katalogen används om den inte anges)"
+msgid "The output file or directory (the current directory is used if omitted)"
+msgstr "Fil eller katalog för utdata (aktuell katalog används om inte angiven)"
 
 #. TRANSLATORS: put a list of packages in the pack
 #: ../client/pk-generate-pack.c:261
@@ -561,10 +580,10 @@ msgstr "BÃ¥da flaggorna angavs."
 msgid "A output directory or file name is required"
 msgstr "En utmatningskatalog eller filnamn krävs"
 
-#. TRANSLATORS: This is when the dameon is not-installed/broken and fails to startup
+#. TRANSLATORS: This is when the daemon is not-installed/broken and fails to startup
 #: ../client/pk-generate-pack.c:342
-msgid "The dameon failed to startup"
-msgstr "Bakgrundsprocessen misslyckades att starta upp"
+msgid "The daemon failed to startup"
+msgstr "Bakgrundsprocessen misslyckades med att starta upp"
 
 #. 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
@@ -631,160 +650,164 @@ msgstr "Servicepaket skapades \"%s\""
 msgid "Failed to create '%s': %s"
 msgstr "Misslyckades med att skapa \"%s\": %s"
 
-#: ../client/pk-monitor.c:236
+#: ../client/pk-monitor.c:286
 msgid "Failed to get daemon state"
 msgstr "Misslyckades med läsa av tillstånd för bakgrundsprocess"
 
+#: ../client/pk-monitor.c:351
+msgid "Failed to get properties"
+msgstr "Misslyckades med att få egenskaper"
+
 #. TRANSLATORS: this is a program that monitors PackageKit
-#: ../client/pk-monitor.c:322
+#: ../client/pk-monitor.c:389
 msgid "PackageKit Monitor"
 msgstr "Övervakare för PackageKit"
 
 #. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/browser-plugin/pk-plugin-install.c:495
+#: ../contrib/browser-plugin/pk-plugin-install.c:497
 msgid "Getting package information..."
 msgstr "Hämtar paketinformation..."
 
 #. TRANSLATORS: run an applicaiton
-#: ../contrib/browser-plugin/pk-plugin-install.c:501
+#: ../contrib/browser-plugin/pk-plugin-install.c:503
 #, c-format
 msgid "Run %s"
 msgstr "Kör %s"
 
 #. TRANSLATORS: show the installed version of a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:507
+#: ../contrib/browser-plugin/pk-plugin-install.c:509
 msgid "Installed version"
 msgstr "Installerad version"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:515
+#: ../contrib/browser-plugin/pk-plugin-install.c:517
 #, c-format
 msgid "Run version %s now"
 msgstr "Kör version %s nu"
 
 #. TRANSLATORS: run the application now
-#: ../contrib/browser-plugin/pk-plugin-install.c:521
+#: ../contrib/browser-plugin/pk-plugin-install.c:523
 msgid "Run now"
 msgstr "Kör nu"
 
 #. TRANSLATORS: update to a new version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:527
+#: ../contrib/browser-plugin/pk-plugin-install.c:529
 #, c-format
 msgid "Update to version %s"
 msgstr "Uppdatera till version %s"
 
 #. TRANSLATORS: To install a package
-#: ../contrib/browser-plugin/pk-plugin-install.c:533
+#: ../contrib/browser-plugin/pk-plugin-install.c:535
 #, c-format
 msgid "Install %s now"
 msgstr "Installera %s nu"
 
 #. TRANSLATORS: the version of the package
-#: ../contrib/browser-plugin/pk-plugin-install.c:536
+#: ../contrib/browser-plugin/pk-plugin-install.c:538
 msgid "Version"
 msgstr "Version"
 
 #. TRANSLATORS: noting found, so can't install
-#: ../contrib/browser-plugin/pk-plugin-install.c:541
+#: ../contrib/browser-plugin/pk-plugin-install.c:543
 msgid "No packages found for your system"
 msgstr "Inga paket hittades för ditt system"
 
 #. TRANSLATORS: package is being installed
-#: ../contrib/browser-plugin/pk-plugin-install.c:546
+#: ../contrib/browser-plugin/pk-plugin-install.c:548
 msgid "Installing..."
 msgstr "Installerar..."
 
 #. TRANSLATORS: downloading repo data so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:365
+#: ../contrib/command-not-found/pk-command-not-found.c:367
 msgid "Downloading details about the software sources."
 msgstr "Hämtar detaljer om programkällorna."
 
 #. TRANSLATORS: downloading file lists so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:369
+#: ../contrib/command-not-found/pk-command-not-found.c:371
 msgid "Downloading filelists (this may take some time to complete)."
 msgstr "Hämtar fillistor (detta kan ta lite tid att färdigställa)."
 
 #. TRANSLATORS: waiting for native lock
-#: ../contrib/command-not-found/pk-command-not-found.c:373
+#: ../contrib/command-not-found/pk-command-not-found.c:375
 msgid "Waiting for package manager lock."
 msgstr "Väntar på låset för pakethanteraren."
 
 #. TRANSLATORS: loading package cache so we can search
-#: ../contrib/command-not-found/pk-command-not-found.c:377
+#: ../contrib/command-not-found/pk-command-not-found.c:379
 msgid "Loading list of packages."
 msgstr "Läser in lista över paket."
 
 #. TRANSLATORS: we failed to find the package, this shouldn't happen
-#: ../contrib/command-not-found/pk-command-not-found.c:423
+#: ../contrib/command-not-found/pk-command-not-found.c:445
 msgid "Failed to search for file"
 msgstr "Misslyckades med att söka efter filen"
 
 #. TRANSLATORS: we failed to launch the executable, the error follows
-#: ../contrib/command-not-found/pk-command-not-found.c:566
+#: ../contrib/command-not-found/pk-command-not-found.c:597
 msgid "Failed to launch:"
 msgstr "Misslyckades med att starta:"
 
 #. TRANSLATORS: we failed to install the package
-#: ../contrib/command-not-found/pk-command-not-found.c:594
+#: ../contrib/command-not-found/pk-command-not-found.c:625
 msgid "Failed to install packages"
 msgstr "Misslyckades med att installera paket"
 
 #. TRANSLATORS: tool that gets called when the command is not found
-#: ../contrib/command-not-found/pk-command-not-found.c:670
+#: ../contrib/command-not-found/pk-command-not-found.c:701
 msgid "PackageKit Command Not Found"
 msgstr "PackageKit - Kommandot hittades inte"
 
 #. TRANSLATORS: the prefix of all the output telling the user why it's not executing
-#: ../contrib/command-not-found/pk-command-not-found.c:699
+#: ../contrib/command-not-found/pk-command-not-found.c:727
 msgid "Command not found."
 msgstr "Kommandot hittades inte."
 
 #. TRANSLATORS: tell the user what we think the command is
-#: ../contrib/command-not-found/pk-command-not-found.c:706
+#: ../contrib/command-not-found/pk-command-not-found.c:745
 msgid "Similar command is:"
 msgstr "Liknande kommando är:"
 
 #. TRANSLATORS: Ask the user if we should run the similar command
-#: ../contrib/command-not-found/pk-command-not-found.c:716
+#: ../contrib/command-not-found/pk-command-not-found.c:755
 msgid "Run similar command:"
 msgstr "Kör liknande command:"
 
 #. TRANSLATORS: show the user a list of commands that they could have meant
 #. TRANSLATORS: show the user a list of commands we could run
-#: ../contrib/command-not-found/pk-command-not-found.c:730
-#: ../contrib/command-not-found/pk-command-not-found.c:739
+#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:778
 msgid "Similar commands are:"
 msgstr "Liknande kommandon är:"
 
 #. TRANSLATORS: ask the user to choose a file to run
-#: ../contrib/command-not-found/pk-command-not-found.c:746
+#: ../contrib/command-not-found/pk-command-not-found.c:785
 msgid "Please choose a command to run"
 msgstr "Välj ett kommando att köra"
 
 #. TRANSLATORS: tell the user what package provides the command
-#: ../contrib/command-not-found/pk-command-not-found.c:764
+#: ../contrib/command-not-found/pk-command-not-found.c:803
 msgid "The package providing this file is:"
 msgstr "Paketet som tillhandahåller denna fil är:"
 
 #. TRANSLATORS: as the user if we want to install a package to provide the command
-#: ../contrib/command-not-found/pk-command-not-found.c:769
+#: ../contrib/command-not-found/pk-command-not-found.c:808
 #, c-format
 msgid "Install package '%s' to provide command '%s'?"
 msgstr "Installera paketet \"%s\" för att tillhandahålla kommandot \"%s\"?"
 
 #. TRANSLATORS: Show the user a list of packages that provide this command
-#: ../contrib/command-not-found/pk-command-not-found.c:793
+#: ../contrib/command-not-found/pk-command-not-found.c:832
 msgid "Packages providing this file are:"
 msgstr "Paket som tillhandahåller denna fil är:"
 
 #. 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:803
+#: ../contrib/command-not-found/pk-command-not-found.c:842
 msgid "Suitable packages are:"
 msgstr "Lämpliga paket är:"
 
 #. get selection
 #. TRANSLATORS: ask the user to choose a file to install
-#: ../contrib/command-not-found/pk-command-not-found.c:812
+#: ../contrib/command-not-found/pk-command-not-found.c:851
 msgid "Please choose a package to install"
 msgstr "Välj ett paket att installera"
 
@@ -952,7 +975,7 @@ msgstr "Installerar inte paket i simuleringsläget"
 #. TRANSLATORS: we are now installing the debuginfo packages we found earlier
 #. TRANSLATORS: transaction state, installing packages
 #: ../contrib/debuginfo-install/pk-debuginfo-install.c:862
-#: ../lib/packagekit-glib2/pk-console-shared.c:282
+#: ../lib/packagekit-glib2/pk-console-shared.c:289
 #, c-format
 msgid "Installing packages"
 msgstr "Installerar paket"
@@ -1083,464 +1106,464 @@ msgstr "Paketlista för PackageKit"
 msgid "PackageKit Service Pack"
 msgstr "Servicepaket för PackageKit"
 
-#: ../lib/packagekit-glib2/pk-console-shared.c:59
+#: ../lib/packagekit-glib2/pk-console-shared.c:65
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Ange ett tal från 1 till %i: "
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:183
+#: ../lib/packagekit-glib2/pk-console-shared.c:191
 msgid "More than one package matches:"
 msgstr "Det finns fler än ett paket som matchar:"
 
 #. TRANSLATORS: This finds out which package in the list to use
-#: ../lib/packagekit-glib2/pk-console-shared.c:196
+#: ../lib/packagekit-glib2/pk-console-shared.c:202
 msgid "Please choose the correct package: "
 msgstr "Välj det korrekta paketet: "
 
 #. TRANSLATORS: This is when the transaction status is not known
-#: ../lib/packagekit-glib2/pk-console-shared.c:250
+#: ../lib/packagekit-glib2/pk-console-shared.c:257
 msgid "Unknown state"
 msgstr "Okänt tillstånd"
 
 #. TRANSLATORS: transaction state, the daemon is in the process of starting
-#: ../lib/packagekit-glib2/pk-console-shared.c:254
+#: ../lib/packagekit-glib2/pk-console-shared.c:261
 msgid "Starting"
 msgstr "Startar"
 
 #. TRANSLATORS: transaction state, the transaction is waiting for another to complete
-#: ../lib/packagekit-glib2/pk-console-shared.c:258
+#: ../lib/packagekit-glib2/pk-console-shared.c:265
 msgid "Waiting in queue"
 msgstr "Väntar i kö"
 
 #. TRANSLATORS: transaction state, just started
-#: ../lib/packagekit-glib2/pk-console-shared.c:262
+#: ../lib/packagekit-glib2/pk-console-shared.c:269
 msgid "Running"
 msgstr "Kör"
 
 #. TRANSLATORS: transaction state, is querying data
-#: ../lib/packagekit-glib2/pk-console-shared.c:266
+#: ../lib/packagekit-glib2/pk-console-shared.c:273
 msgid "Querying"
 msgstr "Frågar"
 
 #. TRANSLATORS: transaction state, getting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:270
+#: ../lib/packagekit-glib2/pk-console-shared.c:277
 msgid "Getting information"
 msgstr "Hämtar information"
 
 #. TRANSLATORS: transaction state, removing packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:274
+#: ../lib/packagekit-glib2/pk-console-shared.c:281
 msgid "Removing packages"
 msgstr "Tar bort paket"
 
 #. TRANSLATORS: transaction state, downloading package files
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:278
-#: ../lib/packagekit-glib2/pk-console-shared.c:656
+#: ../lib/packagekit-glib2/pk-console-shared.c:285
+#: ../lib/packagekit-glib2/pk-console-shared.c:663
 msgid "Downloading packages"
 msgstr "Hämtar paket"
 
 #. TRANSLATORS: transaction state, refreshing internal lists
-#: ../lib/packagekit-glib2/pk-console-shared.c:286
+#: ../lib/packagekit-glib2/pk-console-shared.c:293
 msgid "Refreshing software list"
 msgstr "Uppdaterar programlista"
 
 #. TRANSLATORS: transaction state, installing updates
-#: ../lib/packagekit-glib2/pk-console-shared.c:290
+#: ../lib/packagekit-glib2/pk-console-shared.c:297
 msgid "Installing updates"
 msgstr "Installerar uppdateringar"
 
 #. TRANSLATORS: transaction state, removing old packages, and cleaning config files
-#: ../lib/packagekit-glib2/pk-console-shared.c:294
+#: ../lib/packagekit-glib2/pk-console-shared.c:301
 msgid "Cleaning up packages"
 msgstr "Rensar upp paket"
 
 #. TRANSLATORS: transaction state, obsoleting old packages
-#: ../lib/packagekit-glib2/pk-console-shared.c:298
+#: ../lib/packagekit-glib2/pk-console-shared.c:305
 msgid "Obsoleting packages"
 msgstr "Föråldrar paket"
 
 #. TRANSLATORS: transaction state, checking the transaction before we do it
-#: ../lib/packagekit-glib2/pk-console-shared.c:302
+#: ../lib/packagekit-glib2/pk-console-shared.c:309
 msgid "Resolving dependencies"
 msgstr "Löser beroenden"
 
 #. TRANSLATORS: transaction state, checking if we have all the security keys for the operation
-#: ../lib/packagekit-glib2/pk-console-shared.c:306
+#: ../lib/packagekit-glib2/pk-console-shared.c:313
 msgid "Checking signatures"
 msgstr "Kontrollerar signaturer"
 
 #. TRANSLATORS: transaction state, when we return to a previous system state
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:310
-#: ../lib/packagekit-glib2/pk-console-shared.c:616
+#: ../lib/packagekit-glib2/pk-console-shared.c:317
+#: ../lib/packagekit-glib2/pk-console-shared.c:623
 msgid "Rolling back"
 msgstr "Rullar tillbaka"
 
 #. TRANSLATORS: transaction state, when we're doing a test transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:314
+#: ../lib/packagekit-glib2/pk-console-shared.c:321
 msgid "Testing changes"
 msgstr "Testar ändringar"
 
 #. TRANSLATORS: transaction state, when we're writing to the system package database
-#: ../lib/packagekit-glib2/pk-console-shared.c:318
+#: ../lib/packagekit-glib2/pk-console-shared.c:325
 msgid "Committing changes"
 msgstr "Verkställer ändringar"
 
 #. TRANSLATORS: transaction state, requesting data from a server
-#: ../lib/packagekit-glib2/pk-console-shared.c:322
+#: ../lib/packagekit-glib2/pk-console-shared.c:329
 msgid "Requesting data"
 msgstr "Begär data"
 
 #. TRANSLATORS: transaction state, all done!
-#: ../lib/packagekit-glib2/pk-console-shared.c:326
+#: ../lib/packagekit-glib2/pk-console-shared.c:333
 msgid "Finished"
 msgstr "Färdigställd"
 
 #. TRANSLATORS: transaction state, in the process of cancelling
-#: ../lib/packagekit-glib2/pk-console-shared.c:330
+#: ../lib/packagekit-glib2/pk-console-shared.c:337
 msgid "Cancelling"
 msgstr "Avbryter"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:334
+#: ../lib/packagekit-glib2/pk-console-shared.c:341
 msgid "Downloading repository information"
 msgstr "Hämtar förrådsinformation"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:338
+#: ../lib/packagekit-glib2/pk-console-shared.c:345
 msgid "Downloading list of packages"
 msgstr "Hämtar lista över paket"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:342
+#: ../lib/packagekit-glib2/pk-console-shared.c:349
 msgid "Downloading file lists"
 msgstr "Hämtar fillistor"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:346
+#: ../lib/packagekit-glib2/pk-console-shared.c:353
 msgid "Downloading lists of changes"
 msgstr "Hämtar listor över ändringar"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:350
+#: ../lib/packagekit-glib2/pk-console-shared.c:357
 msgid "Downloading groups"
 msgstr "Hämtar grupper"
 
 #. TRANSLATORS: transaction state, downloading metadata
-#: ../lib/packagekit-glib2/pk-console-shared.c:354
+#: ../lib/packagekit-glib2/pk-console-shared.c:361
 msgid "Downloading update information"
 msgstr "Hämtar uppdateringsinformation"
 
 #. TRANSLATORS: transaction state, repackaging delta files
-#: ../lib/packagekit-glib2/pk-console-shared.c:358
+#: ../lib/packagekit-glib2/pk-console-shared.c:365
 msgid "Repackaging files"
 msgstr "Paketerar om filer"
 
 #. TRANSLATORS: transaction state, loading databases
-#: ../lib/packagekit-glib2/pk-console-shared.c:362
+#: ../lib/packagekit-glib2/pk-console-shared.c:369
 msgid "Loading cache"
 msgstr "Läser in cache"
 
 #. TRANSLATORS: transaction state, scanning for running processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:366
+#: ../lib/packagekit-glib2/pk-console-shared.c:373
 msgid "Scanning applications"
 msgstr "Söker igenom program"
 
 #. TRANSLATORS: transaction state, generating a list of packages installed on the system
-#: ../lib/packagekit-glib2/pk-console-shared.c:370
+#: ../lib/packagekit-glib2/pk-console-shared.c:377
 msgid "Generating package lists"
 msgstr "Genererar paketlistor"
 
 #. TRANSLATORS: transaction state, when we're waiting for the native tools to exit
-#: ../lib/packagekit-glib2/pk-console-shared.c:374
+#: ../lib/packagekit-glib2/pk-console-shared.c:381
 msgid "Waiting for package manager lock"
 msgstr "Väntar på låset för pakethanteraren"
 
 #. TRANSLATORS: transaction state, waiting for user to type in a password
-#: ../lib/packagekit-glib2/pk-console-shared.c:378
+#: ../lib/packagekit-glib2/pk-console-shared.c:385
 msgid "Waiting for authentication"
 msgstr "Väntar på autentisering"
 
 #. TRANSLATORS: transaction state, we are updating the list of processes
-#: ../lib/packagekit-glib2/pk-console-shared.c:382
+#: ../lib/packagekit-glib2/pk-console-shared.c:389
 msgid "Updating running applications"
 msgstr "Uppdaterar körande program"
 
 #. TRANSLATORS: transaction state, we are checking executable files currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:386
+#: ../lib/packagekit-glib2/pk-console-shared.c:393
 msgid "Checking applications in use"
 msgstr "Kontrollerar använda program"
 
 #. TRANSLATORS: transaction state, we are checking for libraries currently in use
-#: ../lib/packagekit-glib2/pk-console-shared.c:390
+#: ../lib/packagekit-glib2/pk-console-shared.c:397
 msgid "Checking libraries in use"
 msgstr "Kontrollerar använda bibliotek"
 
 #. TRANSLATORS: transaction state, we are copying package files before or after the transaction
-#: ../lib/packagekit-glib2/pk-console-shared.c:394
+#: ../lib/packagekit-glib2/pk-console-shared.c:401
 msgid "Copying files"
 msgstr "Kopierar filer"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:412
+#: ../lib/packagekit-glib2/pk-console-shared.c:419
 msgid "Trivial"
 msgstr "Enkel"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:416
+#: ../lib/packagekit-glib2/pk-console-shared.c:423
 msgid "Normal"
 msgstr "Normal"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:420
+#: ../lib/packagekit-glib2/pk-console-shared.c:427
 msgid "Important"
 msgstr "Viktig"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:424
+#: ../lib/packagekit-glib2/pk-console-shared.c:431
 msgid "Security"
 msgstr "Säkerhet"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:428
+#: ../lib/packagekit-glib2/pk-console-shared.c:435
 msgid "Bug fix "
 msgstr "Felrättning"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:432
+#: ../lib/packagekit-glib2/pk-console-shared.c:439
 msgid "Enhancement"
 msgstr "Förbättring"
 
 #. TRANSLATORS: The type of update
-#: ../lib/packagekit-glib2/pk-console-shared.c:436
+#: ../lib/packagekit-glib2/pk-console-shared.c:443
 msgid "Blocked"
 msgstr "Blockerad"
 
 #. TRANSLATORS: The state of a package
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:441
-#: ../lib/packagekit-glib2/pk-console-shared.c:514
+#: ../lib/packagekit-glib2/pk-console-shared.c:448
+#: ../lib/packagekit-glib2/pk-console-shared.c:521
 msgid "Installed"
 msgstr "Installerade"
 
 #. TRANSLATORS: The state of a package, i.e. not installed
-#: ../lib/packagekit-glib2/pk-console-shared.c:446
+#: ../lib/packagekit-glib2/pk-console-shared.c:453
 msgid "Available"
 msgstr "Tillgänglig"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:464
+#: ../lib/packagekit-glib2/pk-console-shared.c:471
 msgid "Downloading"
 msgstr "Hämtar"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:468
+#: ../lib/packagekit-glib2/pk-console-shared.c:475
 msgid "Updating"
 msgstr "Uppdaterade"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:472
-#: ../lib/packagekit-glib2/pk-console-shared.c:592
+#: ../lib/packagekit-glib2/pk-console-shared.c:479
+#: ../lib/packagekit-glib2/pk-console-shared.c:599
 msgid "Installing"
 msgstr "Installerade"
 
 #. TRANSLATORS: The action of the package, in present tense
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:476
-#: ../lib/packagekit-glib2/pk-console-shared.c:588
+#: ../lib/packagekit-glib2/pk-console-shared.c:483
+#: ../lib/packagekit-glib2/pk-console-shared.c:595
 msgid "Removing"
 msgstr "Tar bort"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:480
+#: ../lib/packagekit-glib2/pk-console-shared.c:487
 msgid "Cleaning up"
 msgstr "Rensar upp"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:484
+#: ../lib/packagekit-glib2/pk-console-shared.c:491
 msgid "Obsoleting"
 msgstr "Föråldrade"
 
 #. TRANSLATORS: The action of the package, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:488
+#: ../lib/packagekit-glib2/pk-console-shared.c:495
 msgid "Reinstalling"
 msgstr "Installerade om"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:506
+#: ../lib/packagekit-glib2/pk-console-shared.c:513
 msgid "Downloaded"
 msgstr "Hämtade"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:518
+#: ../lib/packagekit-glib2/pk-console-shared.c:525
 msgid "Removed"
 msgstr "Borttagen"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:522
+#: ../lib/packagekit-glib2/pk-console-shared.c:529
 msgid "Cleaned up"
 msgstr "Upprensad"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:526
+#: ../lib/packagekit-glib2/pk-console-shared.c:533
 msgid "Obsoleted"
 msgstr "Föråldrade"
 
 #. TRANSLATORS: The action of the package, in past tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:530
+#: ../lib/packagekit-glib2/pk-console-shared.c:537
 msgid "Reinstalled"
 msgstr "Installerade om"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:548
+#: ../lib/packagekit-glib2/pk-console-shared.c:555
 msgid "Unknown role type"
 msgstr "Okänd rolltyp"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:552
+#: ../lib/packagekit-glib2/pk-console-shared.c:559
 msgid "Getting dependencies"
 msgstr "Hämtar beroenden"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:556
+#: ../lib/packagekit-glib2/pk-console-shared.c:563
 msgid "Getting update details"
 msgstr "Hämtar uppdateringsdetaljer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:560
+#: ../lib/packagekit-glib2/pk-console-shared.c:567
 msgid "Getting details"
 msgstr "Hämtar detaljer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:564
+#: ../lib/packagekit-glib2/pk-console-shared.c:571
 msgid "Getting requires"
 msgstr "Hämtar krav"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:568
+#: ../lib/packagekit-glib2/pk-console-shared.c:575
 msgid "Getting updates"
 msgstr "Hämtar uppdateringar"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:572
+#: ../lib/packagekit-glib2/pk-console-shared.c:579
 msgid "Searching by details"
 msgstr "Sökning efter detaljer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:576
+#: ../lib/packagekit-glib2/pk-console-shared.c:583
 msgid "Searching by file"
 msgstr "Sökning efter fil"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:580
+#: ../lib/packagekit-glib2/pk-console-shared.c:587
 msgid "Searching groups"
 msgstr "Sökning i grupper"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:584
+#: ../lib/packagekit-glib2/pk-console-shared.c:591
 msgid "Searching by name"
 msgstr "Sökning efter namn"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:596
+#: ../lib/packagekit-glib2/pk-console-shared.c:603
 msgid "Installing files"
 msgstr "Installerade filer"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:600
+#: ../lib/packagekit-glib2/pk-console-shared.c:607
 msgid "Refreshing cache"
 msgstr "Uppdatering av cache"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:604
+#: ../lib/packagekit-glib2/pk-console-shared.c:611
 msgid "Updating packages"
 msgstr "Uppdaterade paket"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:608
+#: ../lib/packagekit-glib2/pk-console-shared.c:615
 msgid "Updating system"
 msgstr "Uppdaterade systemet"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:612
+#: ../lib/packagekit-glib2/pk-console-shared.c:619
 msgid "Canceling"
 msgstr "Avbryter"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:620
+#: ../lib/packagekit-glib2/pk-console-shared.c:627
 msgid "Getting repositories"
 msgstr "Hämtade förråd"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:624
+#: ../lib/packagekit-glib2/pk-console-shared.c:631
 msgid "Enabling repository"
 msgstr "Aktivering av förråd"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:628
+#: ../lib/packagekit-glib2/pk-console-shared.c:635
 msgid "Setting data"
 msgstr "Inställning av data"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:632
+#: ../lib/packagekit-glib2/pk-console-shared.c:639
 msgid "Resolving"
 msgstr "Löser"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:636
+#: ../lib/packagekit-glib2/pk-console-shared.c:643
 msgid "Getting file list"
 msgstr "Hämtning av fillista"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:640
+#: ../lib/packagekit-glib2/pk-console-shared.c:647
 msgid "Getting provides"
 msgstr "Hämtning av tillhandahåller"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:644
+#: ../lib/packagekit-glib2/pk-console-shared.c:651
 msgid "Installing signature"
 msgstr "Installerade signatur"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:648
+#: ../lib/packagekit-glib2/pk-console-shared.c:655
 msgid "Getting packages"
 msgstr "Hämtning av paket"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:652
+#: ../lib/packagekit-glib2/pk-console-shared.c:659
 msgid "Accepting EULA"
 msgstr "Accepterade slutanvändaravtal"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:660
+#: ../lib/packagekit-glib2/pk-console-shared.c:667
 msgid "Getting upgrades"
 msgstr "Hämtning av uppgraderingar"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:664
+#: ../lib/packagekit-glib2/pk-console-shared.c:671
 msgid "Getting categories"
 msgstr "Hämtning av kategorier"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:668
+#: ../lib/packagekit-glib2/pk-console-shared.c:675
 msgid "Getting transactions"
 msgstr "Hämtning av transaktioner"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:672
-#: ../lib/packagekit-glib2/pk-console-shared.c:676
+#: ../lib/packagekit-glib2/pk-console-shared.c:679
+#: ../lib/packagekit-glib2/pk-console-shared.c:683
 msgid "Simulating install"
 msgstr "Simulerade installation"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:680
+#: ../lib/packagekit-glib2/pk-console-shared.c:687
 msgid "Simulating remove"
 msgstr "Simulering av borttagning"
 
 #. TRANSLATORS: The role of the transaction, in present tense
-#: ../lib/packagekit-glib2/pk-console-shared.c:684
+#: ../lib/packagekit-glib2/pk-console-shared.c:691
 msgid "Simulating update"
 msgstr "Simulering av uppdatering"
 
@@ -1707,38 +1730,42 @@ msgid "Authentication is required to change software source parameters"
 msgstr "Autentisering krävs för att ändra parametrar för programvarukällor"
 
 #: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid "Authentication is required to change the location used to decompress packages"
+msgstr "Autentisering krävs för att ändra platsen som används för att dekomprimera paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
 msgid "Authentication is required to consider a key used for signing packages as trusted"
 msgstr "Autentisering krävs för att anse att en nyckel som används för paketsignering ska vara pålitlig"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
 msgid "Authentication is required to install a signed package"
 msgstr "Autentisering krävs för att installera ett signerat paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
 msgid "Authentication is required to install an untrusted package"
 msgstr "Autentisering krävs för att installera ett opålitligt paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
 msgid "Authentication is required to refresh the system sources"
 msgstr "Autentisering krävs för att uppdatera systemkällorna"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
 msgid "Authentication is required to reload the device with a new driver"
 msgstr "Autentisering krävs för att uppdatera enheten med en ny drivrutin"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
 msgid "Authentication is required to remove packages"
 msgstr "Autentisering krävs för att ta bort paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
 msgid "Authentication is required to rollback a transaction"
 msgstr "Autentisering krävs för att rulla tillbaka en transaktion"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
 msgid "Authentication is required to set the network proxy used for downloading packages"
 msgstr "Autentisering krävs för att ange nätverksproxyservern som ska användas för hämtning av paket"
 
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+#: ../policy/org.freedesktop.packagekit.policy.in.h:20
 msgid "Authentication is required to update packages"
 msgstr "Autentisering krävs för att uppdatera paket"
 
@@ -1747,16 +1774,26 @@ msgstr "Autentisering krävs för att uppdatera paket"
 #. authentication, but a different user id needs the admin password
 #. to cancel another users task.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:25
+#: ../policy/org.freedesktop.packagekit.policy.in.h:26
 msgid "Cancel foreign task"
 msgstr "Avbryt främmande åtgärd"
 
 #. SECURITY:
+#. - This is used when users want to install to a different prefix, for
+#. instance to a LTSP image or a virtual machine.
+#. - This could be used to overwrite files not owned by the user using
+#. a carefully created package file.
+#.
+#: ../policy/org.freedesktop.packagekit.policy.in.h:33
+msgid "Change location that packages are installed"
+msgstr "Ändra platsen för var paketen installeras"
+
+#. SECURITY:
 #. - Normal users require admin authentication to enable or disable
 #. software sources as this can be used to enable new updates or
 #. install different versions of software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:31
+#: ../policy/org.freedesktop.packagekit.policy.in.h:39
 msgid "Change software source parameters"
 msgstr "Ändra parametrar för programvarukällor"
 
@@ -1766,7 +1803,7 @@ msgstr "Ändra parametrar för programvarukällor"
 #. - Paranoid users (or parents!) can change this to 'auth_admin' or
 #. 'auth_admin_keep'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:38
+#: ../policy/org.freedesktop.packagekit.policy.in.h:46
 msgid "Install signed package"
 msgstr "Installera signerat paket"
 
@@ -1776,7 +1813,7 @@ msgstr "Installera signerat paket"
 #. password would be a massive security hole.
 #. - This is not retained as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:45
+#: ../policy/org.freedesktop.packagekit.policy.in.h:53
 msgid "Install untrusted local file"
 msgstr "Installera opålitlig lokal fil"
 
@@ -1784,7 +1821,7 @@ msgstr "Installera opålitlig lokal fil"
 #. - Normal users do not require admin authentication to refresh the
 #. cache, as this doesn't actually install or remove software.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:50
+#: ../policy/org.freedesktop.packagekit.policy.in.h:58
 msgid "Refresh system sources"
 msgstr "Uppdatera systemkällor"
 
@@ -1795,7 +1832,7 @@ msgstr "Uppdatera systemkällor"
 #. try to rebind drivers in use, for instance security authentication
 #. devices.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:58
+#: ../policy/org.freedesktop.packagekit.policy.in.h:66
 msgid "Reload a device"
 msgstr "Uppdatera en enhet"
 
@@ -1808,7 +1845,7 @@ msgstr "Uppdatera en enhet"
 #. be removed. If this is not possible, change this authentication to
 #. 'auth_admin'.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:68
+#: ../policy/org.freedesktop.packagekit.policy.in.h:76
 msgid "Remove package"
 msgstr "Ta bort paket"
 
@@ -1817,7 +1854,7 @@ msgstr "Ta bort paket"
 #. as this will change a large number of packages, and could expose the
 #. system to previously patched security vulnerabilities.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:74
+#: ../policy/org.freedesktop.packagekit.policy.in.h:82
 msgid "Rollback to a previous transaction"
 msgstr "Rulla tillbaka till en tidigare transaktion"
 
@@ -1825,7 +1862,7 @@ msgstr "Rulla tillbaka till en tidigare transaktion"
 #. - Normal users do not require admin authentication to set the proxy
 #. used for downloading packages.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:79
+#: ../policy/org.freedesktop.packagekit.policy.in.h:87
 msgid "Set network proxy"
 msgstr "Ange nätverksproxyserver"
 
@@ -1835,7 +1872,7 @@ msgstr "Ange nätverksproxyserver"
 #. without a secure authentication.
 #. - This is not kept as each package should be authenticated.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:86
+#: ../policy/org.freedesktop.packagekit.policy.in.h:94
 msgid "Trust a key used for signing packages"
 msgstr "Lita på en nyckel som används för signering av paket"
 
@@ -1846,7 +1883,7 @@ msgstr "Lita på en nyckel som används för signering av paket"
 #. - Changing this to anything other than 'yes' will break unattended
 #. updates.
 #.
-#: ../policy/org.freedesktop.packagekit.policy.in.h:94
+#: ../policy/org.freedesktop.packagekit.policy.in.h:102
 msgid "Update packages"
 msgstr "Uppdatera paket"
 
@@ -1871,47 +1908,47 @@ msgid "The org.freedesktop.PackageKit.conf file is not installed in the system d
 msgstr "Filen org.freedesktop.PackageKit.conf är inte installerad i systemkatalogen:"
 
 #. TRANSLATORS: a backend is the system package tool, e.g. yum, apt
-#: ../src/pk-main.c:199
+#: ../src/pk-main.c:200
 msgid "Packaging backend to use, e.g. dummy"
 msgstr "Paketingsbakände att använda, t.ex. dummy"
 
 #. TRANSLATORS: if we should run in the background
-#: ../src/pk-main.c:202
+#: ../src/pk-main.c:203
 msgid "Daemonize and detach from the terminal"
 msgstr "Kör som bakgrundsprocess och koppla loss från terminalen"
 
 #. TRANSLATORS: if we should not monitor how long we are inactive for
-#: ../src/pk-main.c:205
+#: ../src/pk-main.c:206
 msgid "Disable the idle timer"
 msgstr "Inaktivera tidsgräns för inaktivitet"
 
 #. TRANSLATORS: show version
-#: ../src/pk-main.c:208
+#: ../src/pk-main.c:209
 msgid "Show version and exit"
 msgstr "Visa version och avsluta"
 
 #. TRANSLATORS: exit after we've started up, used for user profiling
-#: ../src/pk-main.c:211
+#: ../src/pk-main.c:212
 msgid "Exit after a small delay"
 msgstr "Avsluta efter en mindre fördröjning"
 
 #. TRANSLATORS: exit straight away, used for automatic profiling
-#: ../src/pk-main.c:214
+#: ../src/pk-main.c:215
 msgid "Exit after the engine has loaded"
 msgstr "Avsluta efter att motorn har lästs in"
 
 #. TRANSLATORS: describing the service that is running
-#: ../src/pk-main.c:229
+#: ../src/pk-main.c:230
 msgid "PackageKit service"
 msgstr "PackageKit-tjänst"
 
 #. TRANSLATORS: fatal error, dbus is not running
-#: ../src/pk-main.c:266
+#: ../src/pk-main.c:267
 msgid "Cannot connect to the system bus"
 msgstr "Kan inte ansluta till systembussen"
 
 #. TRANSLATORS: cannot register on system bus, unknown reason -- geeky error follows
-#: ../src/pk-main.c:317
+#: ../src/pk-main.c:318
 msgid "Error trying to start:"
 msgstr "Fel vid försök att starta:"
 
@@ -1957,25 +1994,25 @@ msgid "Show debugging information for all files"
 msgstr "Visa felsökningsinformation för alla filer"
 
 #. TRANSLATORS: a list of modules to debug
-#: ../src/egg-debug.c:459
+#: ../src/egg-debug.c:458
 msgid "Debug these specific modules"
 msgstr "Felsök dessa specifika moduler"
 
 #. TRANSLATORS: a list of functions to debug
-#: ../src/egg-debug.c:462
+#: ../src/egg-debug.c:461
 msgid "Debug these specific functions"
 msgstr "Felsök dessa specifika funktioner"
 
 #. TRANSLATORS: save to a log
-#: ../src/egg-debug.c:465
+#: ../src/egg-debug.c:464
 msgid "Log debugging data to a file"
 msgstr "Logga felsökningsdata till en fil"
 
-#: ../src/egg-debug.c:469
+#: ../src/egg-debug.c:468
 msgid "Debugging Options"
 msgstr "Felsökningsflaggor"
 
-#: ../src/egg-debug.c:469
+#: ../src/egg-debug.c:468
 msgid "Show debugging options"
 msgstr "Visa felsökningsflaggor"
 
@@ -1989,8 +2026,6 @@ msgstr "Visa felsökningsflaggor"
 #~ msgstr "Paketet %s är redan installerat"
 #~ msgid "This tool could not install the files: %s"
 #~ msgstr "Detta verktyg kunde inte installera filerna: %s"
-#~ msgid "This tool could not remove %s: %s"
-#~ msgstr "Detta verktyg kunde inte ta bort %s: %s"
 #~ msgid "This tool could not remove the packages: %s"
 #~ msgstr "Detta verktyg kunde inte ta bort paketen: %s"
 #~ msgid "Proceed removing additional packages?"
@@ -2052,8 +2087,6 @@ msgstr "Visa felsökningsflaggor"
 #~ msgstr "Felaktig behörighet för denna åtgärd"
 #~ msgid "Cannot show the list of transactions"
 #~ msgstr "Kan inte visa listan över transaktioner"
-#~ msgid "The package could not be found"
-#~ msgstr "Paketet kunde inte hittas"
 #~ msgid "You need to specify a search type, e.g. name"
 #~ msgstr "Du måste ange en söktyp, t.ex. name"
 #~ msgid "You need to specify a search term"
commit 9d2c36d5b35d39d33674b50d817d2256712ca41f
Author: Daniel Nicoletti <dantti85-pk at yahoo.com.br>
Date:   Wed Aug 11 17:14:51 2010 -0300

    aptcc: Show apt error message when we could not get the cache lock

diff --git a/backends/aptcc/apt.cpp b/backends/aptcc/apt.cpp
index 2ba57d5..1139454 100644
--- a/backends/aptcc/apt.cpp
+++ b/backends/aptcc/apt.cpp
@@ -1375,11 +1375,10 @@ bool aptcc::runTransaction(vector<pair<pkgCache::PkgIterator, pkgCache::VerItera
 		// failed to open cache, try checkDeps then..
 		// || Cache.CheckDeps(CmdL.FileSize() != 1) == false
 		if (WithLock == false || (timeout <= 0)) {
-			pk_backend_error_code(m_backend,
-					      PK_ERROR_ENUM_NO_CACHE,
-					      "Could not open package cache.");
+			show_errors(m_backend, PK_ERROR_ENUM_CANNOT_GET_LOCK);
 			return false;
 		} else {
+			_error->Discard();
 			pk_backend_set_status (m_backend, PK_STATUS_ENUM_WAITING_FOR_LOCK);
 			sleep(1);
 			timeout--;
commit d44a9f81e4cd180fe58ebec293cff11a8da8f20c
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 10 13:27:01 2010 +0100

    Fix compile with the latest PolicyKit release
    
    Do not raise the PolicyKit build dep, as that's going to anger distro folk...

diff --git a/configure.ac b/configure.ac
index 6806c6b..3e9c29e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -585,9 +585,20 @@ AC_DEFINE_UNQUOTED(security_framework, "$with_security_framework", [default secu
 AC_SUBST(security_framework, "$with_security_framework")
 
 if test x$with_security_framework = xpolkit; then
+	# polkit >= 0.97 uses polkit_authority_get_sync() rather than
+	# polkit_authority_get
 	PKG_CHECK_MODULES(POLKIT, \
 			  polkit-backend-1 \
-			  polkit-gobject-1 >= $POLKIT_GOBJECT_REQUIRED)
+			  polkit-gobject-1 >= 0.97,
+			  has_new_polkit=yes,
+			  has_new_polkit=no)
+	if test x$has_new_polkit = xno; then
+		PKG_CHECK_MODULES(POLKIT, \
+				  polkit-backend-1 \
+				  polkit-gobject-1 >= $POLKIT_GOBJECT_REQUIRED)
+	else
+		AC_DEFINE(USE_SECURITY_POLKIT_NEW, 1, [if we should use PolicyKit's new API])
+	fi
 	AC_DEFINE(USE_SECURITY_POLKIT, 1, [if we should use PolicyKit])
 elif test x$with_security_framework = xdummy; then
 	AC_DEFINE(USE_SECURITY_DUMMY, 1, [if we should use a dummy security framework])
diff --git a/src/pk-engine.c b/src/pk-engine.c
index 1beac89..0f7c410 100644
--- a/src/pk-engine.c
+++ b/src/pk-engine.c
@@ -1596,6 +1596,9 @@ pk_engine_init (PkEngine *engine)
 	gchar *root;
 	gchar *proxy_http;
 	gchar *proxy_ftp;
+#ifdef USE_SECURITY_POLKIT_NEW
+	GError *error = NULL;
+#endif
 
 	engine->priv = PK_ENGINE_GET_PRIVATE (engine);
 	engine->priv->notify_clients_of_upgrade = FALSE;
@@ -1686,8 +1689,16 @@ pk_engine_init (PkEngine *engine)
 
 #ifdef USE_SECURITY_POLKIT
 	/* protect the session SetProxy with a PolicyKit action */
+#ifdef USE_SECURITY_POLKIT_NEW
+	engine->priv->authority = polkit_authority_get_sync (NULL, &error);
+	if (engine->priv->authority == NULL) {
+		g_error ("failed to get pokit authority: %s", error->message);
+		g_error_free (error);
+	}
+#else
 	engine->priv->authority = polkit_authority_get ();
 #endif
+#endif
 
 	/* monitor the binary file for changes */
 	engine->priv->file_monitor_binary = pk_file_monitor_new ();
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 157117e..29b0545 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -5488,6 +5488,9 @@ pk_transaction_class_init (PkTransactionClass *klass)
 static void
 pk_transaction_init (PkTransaction *transaction)
 {
+#ifdef USE_SECURITY_POLKIT_NEW
+	GError *error = NULL;
+#endif
 	transaction->priv = PK_TRANSACTION_GET_PRIVATE (transaction);
 	transaction->priv->finished = FALSE;
 	transaction->priv->running = FALSE;
@@ -5537,7 +5540,15 @@ pk_transaction_init (PkTransaction *transaction)
 	transaction->priv->dbus = pk_dbus_new ();
 	transaction->priv->results = pk_results_new ();
 #ifdef USE_SECURITY_POLKIT
+#ifdef USE_SECURITY_POLKIT_NEW
+	transaction->priv->authority = polkit_authority_get_sync (NULL, &error);
+	if (transaction->priv->authority == NULL) {
+		g_error ("failed to get pokit authority: %s", error->message);
+		g_error_free (error);
+	}
+#else
 	transaction->priv->authority = polkit_authority_get ();
+#endif
 	transaction->priv->cancellable = g_cancellable_new ();
 #endif
 
commit 021248e8acccc1fcc7dc1f4257b64879822a6a29
Author: Richard Hughes <richard at hughsie.com>
Date:   Tue Aug 10 09:37:52 2010 +0100

    yum: Add selinux-policy to the list of infrastructure packages

diff --git a/backends/yum/Yum.conf b/backends/yum/Yum.conf
index 79ca313..ac6b080 100644
--- a/backends/yum/Yum.conf
+++ b/backends/yum/Yum.conf
@@ -34,8 +34,8 @@ SystemPackages=yum;rpm;glibc;PackageKit
 # If these packages depend on any other updates, then these are considered
 # infrastructure packages too, and are included in the update viewer.
 #
-# default=PackageKit;yum;rpm
-InfrastructurePackages=PackageKit;yum;rpm;gnome-packagekit;kpackagekit
+# default=PackageKit;yum;rpm;gnome-packagekit;kpackagekit;selinux-policy
+InfrastructurePackages=PackageKit;yum;rpm;gnome-packagekit;kpackagekit;selinux-policy
 
 # Yum is slow, and we can use Zif to accelerate some simple transactions
 #
commit cd7b3a68a23a8be243c4f71a3f7950c13a641435
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Thu Aug 5 12:40:46 2010 +0100

    immediately abort transactions that set errors relating to signature interactions.
    Extended comment on how this works before (zypp_refresh_meta_and_cache).

diff --git a/backends/zypp/TODO b/backends/zypp/TODO
index 3146de0..e534348 100644
--- a/backends/zypp/TODO
+++ b/backends/zypp/TODO
@@ -5,6 +5,9 @@ progress reporting
 			+ but nothing more (?)
 		+ do we only notify on a 'sub' progress %age ?
 
+cancallation ...
+	+ lots of threading nasties here
+
 Root handling
 	+ get_zypp needs to handle multiple roots properly /
 	  more carefully.
diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index f95b962..4d94fd1 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -187,12 +187,12 @@ backend_get_requires_thread (PkBackend *backend)
 		}
 
 		// look for packages which would be uninstalled
+		bool error = false;
 		for (zypp::ResPool::byKind_iterator it = pool.byKindBegin (zypp::ResKind::package);
 				it != pool.byKindEnd (zypp::ResKind::package); it++) {
 
-			if (!zypp_filter_solvable (_filters, it->resolvable()->satSolvable())) {
-				zypp_backend_pool_item_notify (backend, *it);
-			}
+			if (!error && !zypp_filter_solvable (_filters, it->resolvable()->satSolvable()))
+				error = !zypp_backend_pool_item_notify (backend, *it);
 
 			it->statusReset ();
 		}
@@ -741,8 +741,8 @@ backend_install_files_thread (PkBackend *backend)
 		zypp::RepoManager manager;
 		manager.addRepository (tmpRepo);
 
-		manager.refreshMetadata (tmpRepo);
-		manager.buildCache (tmpRepo);
+		if (!zypp_refresh_meta_and_cache (manager, tmpRepo))
+			return FALSE;
 
 	} catch (const zypp::url::UrlException &ex) {
 		return zypp_backend_finished_error (
@@ -752,6 +752,7 @@ backend_install_files_thread (PkBackend *backend)
 			backend, PK_ERROR_ENUM_INTERNAL_ERROR, ex.asUserString ().c_str ());
 	}
 
+	bool error = false;
 	for (guint i = 0; full_paths[i]; i++) {
 
 		zypp::Pathname rpmPath (full_paths[i]);
@@ -772,11 +773,13 @@ backend_install_files_thread (PkBackend *backend)
 		}
 
 		if (!found) {
+			error = true;
 			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, "Could not find the rpm-Package in Pool");
-		} else {
+		} else if (!error) {
 			zypp::ResStatus status = item->status ().setToBeInstalled (zypp::ResStatus::USER);
 		}
-		if (!zypp_perform_execution (backend, INSTALL, FALSE)) {
+		if (!error && !zypp_perform_execution (backend, INSTALL, FALSE)) {
+			error = true;
 			pk_backend_error_code (backend, PK_ERROR_ENUM_LOCAL_INSTALL_FAILED, "Could not install the rpm-file.");
 		}
 
@@ -785,7 +788,7 @@ backend_install_files_thread (PkBackend *backend)
 		delete (item);
 	}
 
-	//remove tmp-dir and the tmp-repo
+	// remove tmp-dir and the tmp-repo
 	try {
 		zypp::RepoManager manager;
 		manager.removeRepository (tmpRepo);
@@ -794,7 +797,7 @@ backend_install_files_thread (PkBackend *backend)
 	}
 
 	pk_backend_finished (backend);
-	return TRUE;
+	return !error;
 }
 
 /**
diff --git a/backends/zypp/zypp-events.h b/backends/zypp/zypp-events.h
index c7d4bd0..4f76bbb 100644
--- a/backends/zypp/zypp-events.h
+++ b/backends/zypp/zypp-events.h
@@ -325,6 +325,38 @@ struct DownloadProgressReportReceiver : public zypp::callback::ReceiveReport<zyp
 	}
 };
 
+struct MediaChangeReportReceiver : public zypp::callback::ReceiveReport<zypp::media::MediaChangeReport>, ZyppBackendReceiver
+{
+	virtual Action requestMedia (zypp::Url &url, unsigned mediaNr, const std::string &label, zypp::media::MediaChangeReport::Error error, const std::string &description, const std::vector<std::string> & devices, unsigned int &dev_current)
+	{
+		pk_backend_error_code (_backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, description.c_str ());
+		// We've to abort here, because there is currently no feasible way to inform the user to insert/change media
+		return ABORT;
+	}
+};
+
+struct ProgressReportReceiver : public zypp::callback::ReceiveReport<zypp::ProgressReport>, ZyppBackendReceiver
+{
+        virtual void start (const zypp::ProgressData &progress)
+        {
+                reset_sub_percentage ();
+        }
+
+        virtual bool progress (const zypp::ProgressData &progress)
+        {
+                update_sub_percentage ((int)progress.val ());
+		return true;
+        }
+
+        virtual void finish (const zypp::ProgressData &progress)
+        {
+                update_sub_percentage ((int)progress.val ());
+        }
+};
+
+// These last two are called -only- from zypp_refresh_meta_and_cache
+// *if this is not true* - we will get un-caught Abort exceptions.
+
 struct KeyRingReportReceiver : public zypp::callback::ReceiveReport<zypp::KeyRingReport>, ZyppBackendReceiver
 {
 	virtual zypp::KeyRingReport::KeyTrust askUserToAcceptKey (const zypp::PublicKey &key, const zypp::KeyContext &keycontext)
@@ -336,23 +368,17 @@ struct KeyRingReportReceiver : public zypp::callback::ReceiveReport<zypp::KeyRin
 
         virtual bool askUserToAcceptUnsignedFile (const std::string &file, const zypp::KeyContext &keycontext)
         {
-                gboolean ok = zypp_signature_required(_backend, file);
-
-                return ok;
+                return zypp_signature_required (_backend, file);
         }
 
         virtual bool askUserToAcceptUnknownKey (const std::string &file, const std::string &id, const zypp::KeyContext &keycontext)
         {
-                gboolean ok = zypp_signature_required(_backend, file, id);
-
-                return ok;
+                return zypp_signature_required(_backend, file, id);
         }
 
 	virtual bool askUserToAcceptVerificationFailed (const std::string &file, const zypp::PublicKey &key,  const zypp::KeyContext &keycontext)
 	{
-		gboolean ok = zypp_signature_required(_backend, key);
-
-		return ok;
+		return zypp_signature_required(_backend, key);
 	}
 
 };
@@ -361,58 +387,23 @@ struct DigestReportReceiver : public zypp::callback::ReceiveReport<zypp::DigestR
 {
 	virtual bool askUserToAcceptNoDigest (const zypp::Pathname &file)
 	{
-		gboolean ok = zypp_signature_required(_backend, file.asString ());
-
-		return ok;
+		return zypp_signature_required(_backend, file.asString ());
 	}
 
 	virtual bool askUserToAcceptUnknownDigest (const zypp::Pathname &file, const std::string &name)
 	{
 		pk_backend_error_code(_backend, PK_ERROR_ENUM_GPG_FAILURE, "Repo: %s Digest: %s", file.c_str (), name.c_str ());
-		gboolean ok = zypp_signature_required(_backend, file.asString ());
-
-		return ok;
+		return zypp_signature_required(_backend, file.asString ());
 	}
 
 	virtual bool askUserToAcceptWrongDigest (const zypp::Pathname &file, const std::string &requested, const std::string &found)
 	{
 		pk_backend_error_code(_backend, PK_ERROR_ENUM_GPG_FAILURE, "For repo %s %s is requested but %s was found!",
 				file.c_str (), requested.c_str (), found.c_str ());
-		gboolean ok = zypp_signature_required(_backend, file.asString ());
-
-		return ok;
-	}
-};
-
-struct MediaChangeReportReceiver : public zypp::callback::ReceiveReport<zypp::media::MediaChangeReport>, ZyppBackendReceiver
-{
-	virtual Action requestMedia (zypp::Url &url, unsigned mediaNr, const std::string &label, zypp::media::MediaChangeReport::Error error, const std::string &description, const std::vector<std::string> & devices, unsigned int &dev_current)
-	{
-		pk_backend_error_code (_backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, description.c_str ());
-		// We've to abort here, because there is currently no feasible way to inform the user to insert/change media
-		return ABORT;
+		return zypp_signature_required(_backend, file.asString ());
 	}
 };
 
-struct ProgressReportReceiver : public zypp::callback::ReceiveReport<zypp::ProgressReport>, ZyppBackendReceiver
-{
-        virtual void start (const zypp::ProgressData &progress)
-        {
-                reset_sub_percentage ();
-        }
-
-        virtual bool progress (const zypp::ProgressData &progress)
-        {
-                update_sub_percentage ((int)progress.val ());
-		return true;
-        }
-
-        virtual void finish (const zypp::ProgressData &progress)
-        {
-                update_sub_percentage ((int)progress.val ());
-        }
-};
-
 }; // namespace ZyppBackend
 
 class EventDirector
diff --git a/backends/zypp/zypp-utils.cpp b/backends/zypp/zypp-utils.cpp
index 0ab8320..d78b118 100644
--- a/backends/zypp/zypp-utils.cpp
+++ b/backends/zypp/zypp-utils.cpp
@@ -432,6 +432,41 @@ zypp_get_Repository (PkBackend *backend, const gchar *alias)
 	return info;
 }
 
+/*
+ * PK requires a transaction (backend method call) to abort immediately
+ * after an error is set. Unfortunately, zypp's 'refresh' methods call
+ * these signature methods on errors - and provide no way to signal an
+ * abort - instead the refresh continuing on with the next repository.
+ * PK (pk_backend_error_timeout_delay_cb) uses this as an excuse to
+ * abort the (still running) transaction, and to start another - which
+ * leads to multi-threaded use of zypp and hence sudden, random death.
+ *
+ * To cure this, we throw this custom exception across zypp and catch
+ * it outside (hopefully) the only entry point (zypp_refresh_meta_and_cache)
+ * that can cause these (zypp_signature_required) methods to be called.
+ *
+ */
+class AbortTransactionException {
+ public:
+	AbortTransactionException() {}
+};
+
+gboolean
+zypp_refresh_meta_and_cache (zypp::RepoManager &manager, zypp::RepoInfo &repo, bool force)
+{
+	try {
+		manager.refreshMetadata (repo, force ?
+					 zypp::RepoManager::RefreshForced :
+					 zypp::RepoManager::RefreshIfNeeded);
+		manager.buildCache (repo, force ?
+				    zypp::RepoManager::BuildForced :
+				    zypp::RepoManager::BuildIfNeeded);
+		return TRUE;
+	} catch (const AbortTransactionException &ex) {
+		return FALSE;
+	}
+}
+
 gboolean
 zypp_signature_required (PkBackend *backend, const zypp::PublicKey &key)
 {
@@ -439,12 +474,11 @@ zypp_signature_required (PkBackend *backend, const zypp::PublicKey &key)
 
 	if (std::find (_signatures[backend]->begin (), _signatures[backend]->end (), key.id ()) == _signatures[backend]->end ()) {
 		zypp::RepoInfo info = zypp_get_Repository (backend, _repoName);
-		if (info.type () == zypp::repo::RepoType::NONE) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, "Repository unknown");
-			return FALSE;
-		}
-
-        	pk_backend_repo_signature_required (backend,
+		if (info.type () == zypp::repo::RepoType::NONE)
+			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR,
+					       "Repository unknown");
+		else {
+			pk_backend_repo_signature_required (backend,
 				"dummy;0.0.1;i386;data",
 	                        _repoName,
         	                info.baseUrlsBegin ()->asString ().c_str (),
@@ -453,10 +487,12 @@ zypp_signature_required (PkBackend *backend, const zypp::PublicKey &key)
 	                        key.fingerprint ().c_str (),
         	                key.created ().asString ().c_str (),
                 	        PK_SIGTYPE_ENUM_GPG);
-		pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE, "Signature verification for Repository %s failed", _repoName);
-	} else {
+			pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE,
+					       "Signature verification for Repository %s failed", _repoName);
+		}
+		throw AbortTransactionException();
+	} else
 		ok = TRUE;
-	}
 
         return ok;
 }
@@ -468,12 +504,11 @@ zypp_signature_required (PkBackend *backend, const std::string &file, const std:
 
 	if (std::find (_signatures[backend]->begin (), _signatures[backend]->end (), id) == _signatures[backend]->end ()) {
 		zypp::RepoInfo info = zypp_get_Repository (backend, _repoName);
-		if (info.type () == zypp::repo::RepoType::NONE) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, "Repository unknown");
-			return FALSE;
-		}
-
-		pk_backend_repo_signature_required (backend,
+		if (info.type () == zypp::repo::RepoType::NONE)
+			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR,
+					       "Repository unknown");
+		else {
+			pk_backend_repo_signature_required (backend,
 				"dummy;0.0.1;i386;data",
 	                        _repoName,
         	                info.baseUrlsBegin ()->asString ().c_str (),
@@ -482,10 +517,12 @@ zypp_signature_required (PkBackend *backend, const std::string &file, const std:
 	                        "UNKNOWN",
         	                "UNKNOWN",
                 	        PK_SIGTYPE_ENUM_GPG);
-		pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE, "Signature verification for Repository %s failed", _repoName);
-	} else {
+			pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE,
+					       "Signature verification for Repository %s failed", _repoName);
+		}
+		throw AbortTransactionException();
+	} else
 		ok = TRUE;
-	}
 
         return ok;
 }
@@ -497,12 +534,11 @@ zypp_signature_required (PkBackend *backend, const std::string &file)
 
 	if (std::find (_signatures[backend]->begin (), _signatures[backend]->end (), file) == _signatures[backend]->end ()) {
         	zypp::RepoInfo info = zypp_get_Repository (backend, _repoName);
-		if (info.type () == zypp::repo::RepoType::NONE) {
-			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR, "Repository unknown");
-			return FALSE;
-		}
-
-		pk_backend_repo_signature_required (backend,
+		if (info.type () == zypp::repo::RepoType::NONE)
+			pk_backend_error_code (backend, PK_ERROR_ENUM_INTERNAL_ERROR,
+					       "Repository unknown");
+		else {
+			pk_backend_repo_signature_required (backend,
 				"dummy;0.0.1;i386;data",
 	                        _repoName,
         	                info.baseUrlsBegin ()->asString ().c_str (),
@@ -511,10 +547,12 @@ zypp_signature_required (PkBackend *backend, const std::string &file)
                 	        "UNKNOWN",
                         	"UNKNOWN",
 	                        PK_SIGTYPE_ENUM_GPG);
-		pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE, "Signature verification for Repository %s failed", _repoName);
-	} else {
+			pk_backend_error_code (backend, PK_ERROR_ENUM_GPG_FAILURE,
+					       "Signature verification for Repository %s failed", _repoName);
+		}
+		throw AbortTransactionException();
+	} else
 		ok = TRUE;
-	}
 
         return ok;
 }
@@ -1035,6 +1073,9 @@ zypp_refresh_cache (PkBackend *backend, gboolean force)
 	for (std::list <zypp::RepoInfo>::iterator it = repos.begin(); it != repos.end(); it++, i++) {
 		zypp::RepoInfo repo (*it);
 
+		if (pk_backend_get_is_error_set (backend))
+			break;
+
 		// skip disabled repos
 		if (repo.enabled () == false)
 			continue;
@@ -1046,13 +1087,10 @@ zypp_refresh_cache (PkBackend *backend, gboolean force)
 
 		try {
 			// Refreshing metadata
+			g_free (_repoName);
 			_repoName = g_strdup (repo.alias ().c_str ());
-			manager.refreshMetadata (repo, force ?
-				zypp::RepoManager::RefreshForced :
-				zypp::RepoManager::RefreshIfNeeded);
-			manager.buildCache (repo, force ?
-				zypp::RepoManager::BuildForced :
-				zypp::RepoManager::BuildIfNeeded);
+			if (zypp_refresh_meta_and_cache (manager, repo, force))
+				break;
 		} 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");
diff --git a/backends/zypp/zypp-utils.h b/backends/zypp/zypp-utils.h
index 540d9e1..c1de0ee 100644
--- a/backends/zypp/zypp-utils.h
+++ b/backends/zypp/zypp-utils.h
@@ -228,5 +228,11 @@ gboolean zypp_ver_and_arch_equal (const zypp::sat::Solvable &pkg,
 				   const char *name, const char *arch);
 
 
+/**
+ * helper to refresh a repo's metadata and cache, catching signature
+ * exceptions in a safe way.
+ */
+gboolean zypp_refresh_meta_and_cache (zypp::RepoManager &manager, zypp::RepoInfo &repo, bool force = false);
+
 #endif // _ZYPP_UTILS_H_
 
commit 587f0a543777417e5eb53802d56c7603f3a93c1f
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Thu Aug 5 12:40:22 2010 +0100

    add accessor to detect if an error is already set on a backend.

diff --git a/src/pk-backend.c b/src/pk-backend.c
index 10ac2ed..85257d5 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -1801,6 +1801,15 @@ pk_backend_get_is_finished (PkBackend *backend)
 }
 
 /**
+ * pk_backend_get_is_error_set:
+ **/
+gboolean
+pk_backend_get_is_error_set (PkBackend *backend)
+{
+	return backend->priv->set_error;
+}
+
+/**
  * pk_backend_error_timeout_delay_cb:
  *
  * We have to call Finished() within PK_BACKEND_FINISHED_ERROR_TIMEOUT of ErrorCode(), enforce this.
diff --git a/src/pk-backend.h b/src/pk-backend.h
index 7f805f3..c9b6171 100644
--- a/src/pk-backend.h
+++ b/src/pk-backend.h
@@ -77,6 +77,7 @@ gboolean	 pk_backend_set_frontend_socket		(PkBackend	*backend,
 
 /* get the state */
 gboolean	 pk_backend_get_allow_cancel		(PkBackend	*backend);
+gboolean         pk_backend_get_is_error_set		(PkBackend	*backend);
 gboolean	 pk_backend_get_progress		(PkBackend	*backend,
 							 guint		*percentage,
 							 guint		*subpercentage,
commit 010125bc1cbf57a979e617c4afeb3881ce273590
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Thu Aug 5 11:14:32 2010 +0100

    Accept not Accep

diff --git a/backends/zypp/zypp-events.h b/backends/zypp/zypp-events.h
index bccc31f..c7d4bd0 100644
--- a/backends/zypp/zypp-events.h
+++ b/backends/zypp/zypp-events.h
@@ -366,7 +366,7 @@ struct DigestReportReceiver : public zypp::callback::ReceiveReport<zypp::DigestR
 		return ok;
 	}
 
-	virtual bool askUserToAccepUnknownDigest (const zypp::Pathname &file, const std::string &name)
+	virtual bool askUserToAcceptUnknownDigest (const zypp::Pathname &file, const std::string &name)
 	{
 		pk_backend_error_code(_backend, PK_ERROR_ENUM_GPG_FAILURE, "Repo: %s Digest: %s", file.c_str (), name.c_str ());
 		gboolean ok = zypp_signature_required(_backend, file.asString ());
commit 6f109602acccfe6b84b9876df33aded3e216ecba
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Thu Aug 5 10:59:05 2010 +0100

    Increase timeout between an error message and assuming the thread is dead.
    Cleanup pk backend destruction

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index f66bc6f..f95b962 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -100,13 +100,13 @@ static void
 backend_destroy (PkBackend *backend)
 {
 	egg_debug ("zypp_backend_destroy");
-	EventDirector *eventDirector = _eventDirectors [backend];
-	if (eventDirector != NULL) {
-		delete (eventDirector);
-		_eventDirectors.erase (backend);
-	}
+
+	delete (_eventDirectors [backend]);
+	_eventDirectors.erase (backend);
 
 	delete (_signatures[backend]);
+	_signatures.erase (backend);
+
 	g_free (_repoName);
 }
 
diff --git a/src/pk-backend.c b/src/pk-backend.c
index e168c41..10ac2ed 100644
--- a/src/pk-backend.c
+++ b/src/pk-backend.c
@@ -67,7 +67,7 @@
  * If backends do not do this, they will be Finished() manually,
  * and a Message() will be sent to warn the developer
  */
-#define PK_BACKEND_FINISHED_ERROR_TIMEOUT	500 /* ms */
+#define PK_BACKEND_FINISHED_ERROR_TIMEOUT	2000 /* ms */
 
 /**
  * PK_BACKEND_FINISHED_TIMEOUT_GRACE:
@@ -1822,7 +1822,10 @@ pk_backend_error_timeout_delay_cb (gpointer data)
 	item = pk_message_new ();
 	g_object_set (item,
 		      "type", PK_MESSAGE_ENUM_BACKEND_ERROR,
-		      "details", "ErrorCode() has to be followed with Finished()!",
+		      "details", "ErrorCode() has to be followed immediately with Finished()!\n"
+		      "Failure to do so, results in PK assuming the thread has hung, and desparately "
+		      " starting another backend thread to process future requests: be warned, "
+		      " your code is about to break in exotic ways.",
 		      NULL);
 
 	/* warn the backend developer that they've done something worng
commit 7ecec05029c23ccd2e6c25e50474768db3eb5876
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Thu Aug 5 10:46:55 2010 +0100

    set allow_cancel default in init to match that in pk_transaction_set_running ie. FALSE

diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index db7adc0..157117e 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -5493,7 +5493,7 @@ pk_transaction_init (PkTransaction *transaction)
 	transaction->priv->running = FALSE;
 	transaction->priv->has_been_run = FALSE;
 	transaction->priv->waiting_for_auth = FALSE;
-	transaction->priv->allow_cancel = TRUE;
+	transaction->priv->allow_cancel = FALSE;
 	transaction->priv->emit_eula_required = FALSE;
 	transaction->priv->emit_signature_required = FALSE;
 	transaction->priv->emit_media_change_required = FALSE;
commit 4457ede65970686e3fc447ffd47428b1d48b552f
Author: Michael Meeks <michael.meeks at novell.com>
Date:   Wed Aug 4 14:50:56 2010 +0100

    Remove a double pk_backend_finish path, and an incorrect update_packages callback

diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index b371424..f66bc6f 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -1609,11 +1609,11 @@ backend_update_packages_thread (PkBackend *backend)
 	}
 
 	retval = zypp_perform_execution (backend, UPDATE, FALSE);
-	pk_backend_finished (backend);
 
 	if (restart != PK_RESTART_ENUM_NONE)
 		pk_backend_require_restart (backend, restart, "A restart is needed");
 
+	pk_backend_finished (backend);
 	return retval;
 }
 
diff --git a/backends/zypp/zypp-utils.cpp b/backends/zypp/zypp-utils.cpp
index 7fb3aca..0ab8320 100644
--- a/backends/zypp/zypp-utils.cpp
+++ b/backends/zypp/zypp-utils.cpp
@@ -1025,7 +1025,6 @@ zypp_refresh_cache (PkBackend *backend, gboolean force)
 	{
 		// FIXME: make sure this dumps out the right sring.
 		pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_FOUND, e.asUserString().c_str() );
-		pk_backend_finished (backend);
 		return FALSE;
 	}
 
commit eff5e8ba6225a71d8dfe44b787996845d1c6f726
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 4 11:43:17 2010 +0100

    trivial: update RELEASE

diff --git a/RELEASE b/RELEASE
index 4555441..3023208 100644
--- a/RELEASE
+++ b/RELEASE
@@ -2,10 +2,10 @@ PackageKit Release Notes
 
 1. Write NEWS entries for PackageKit in the same format as usual.
 
-git shortlog PACKAGEKIT_0_6_6.. | grep -i -v trivial | grep -v Merge > NEWS.new
+git shortlog PACKAGEKIT_0_6_7.. | grep -i -v trivial | grep -v Merge > NEWS.new
 
 --------------------------------------------------------------------------------
-Version 0.6.7
+Version 0.6.8
 ~~~~~~~~~~~~~
 Released: 2010-xx-xx
 
@@ -28,8 +28,8 @@ Bugfixes:
 
 4. Commit changes in PackageKit git:
 
-git commit -a -m "Release version 0.6.7"
-git tag -s -f -m "Release 0.6.7" PACKAGEKIT_0_6_7
+git commit -a -m "Release version 0.6.8"
+git tag -s -f -m "Release 0.6.8" PACKAGEKIT_0_6_8
 <gpg password>
 git push --tags
 git push
@@ -54,14 +54,13 @@ git push
 10. Send an email to packagekit at lists.freedesktop.org
 
 =================================================
-Subject: PackageKit 0.6.7 released!
+Subject: PackageKit 0.6.8 released!
 
-Today I released PackageKit 0.6.7.
+Today I released PackageKit 0.6.8.
 
 PackageKit release notes: http://cgit.freedesktop.org/packagekit/tree/NEWS
 
 Tarballs available here: http://www.packagekit.org/releases/
 
-Thanks to all those who made this possible.
 =================================================
 
commit f3eafa3e21aa1bba1da6dfb1c7f702b99cb5f8d7
Author: Richard Hughes <richard at hughsie.com>
Date:   Wed Aug 4 11:42:29 2010 +0100

    trivial: post release version bump

diff --git a/configure.ac b/configure.ac
index c9b3ddc..6806c6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ(2.63)
 
 m4_define([pk_major_version], [0])
 m4_define([pk_minor_version], [6])
-m4_define([pk_micro_version], [7])
+m4_define([pk_micro_version], [8])
 m4_define([pk_version],
           [pk_major_version.pk_minor_version.pk_micro_version])
 


More information about the PackageKit-commit mailing list