File 0008-zypp-no-longer-use-the-old-and-deprecated-ZYppCommit.patch of Package PackageKit
From 8e010c204c348892a7dd5ee11cdb30a24ded3563 Mon Sep 17 00:00:00 2001
From: Michael Andres <ma@suse.de>
Date: Fri, 6 Jul 2012 13:25:25 +0200
Subject: [PATCH 8/9] zypp: no longer use the old and deprecated
ZYppCommitResult members (bnc#769764)
---
backends/zypp/zypp-utils.cpp | 54 +++++++++++++-----------------------------
1 file changed, 17 insertions(+), 37 deletions(-)
diff --git a/backends/zypp/zypp-utils.cpp b/backends/zypp/zypp-utils.cpp
index 726b9da..55e13a3 100644
--- a/backends/zypp/zypp-utils.cpp
+++ b/backends/zypp/zypp-utils.cpp
@@ -956,50 +956,30 @@ zypp_perform_execution (PkBackend *backend, PerformType type, gboolean force)
ZYppCommitResult result = zypp->commit (policy);
- if(!result._errors.empty () || !result._remaining.empty () || !result._srcremaining.empty ()){
-
- ZYppCommitResult::PoolItemList errors = result._errors;
- gchar *emsg = NULL, *tmpmsg = NULL;
-
- for (ZYppCommitResult::PoolItemList::iterator it = errors.begin (); it != errors.end (); ++it){
- if (emsg == NULL) {
- emsg = g_strdup ((*it)->name ().c_str ());
- } else {
- tmpmsg = emsg;
- emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
- g_free (tmpmsg);
- }
- }
-
- ZYppCommitResult::PoolItemList remaining = result._remaining;
- for (ZYppCommitResult::PoolItemList::iterator it = remaining.begin (); it != remaining.end (); ++it){
- if (emsg == NULL) {
- emsg = g_strdup ((*it)->name ().c_str ());
- } else {
- tmpmsg = emsg;
- emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
- g_free (tmpmsg);
- }
- }
-
- ZYppCommitResult::PoolItemList srcremaining = result._srcremaining;
- for (ZYppCommitResult::PoolItemList::iterator it = srcremaining.begin (); it != srcremaining.end (); ++it){
- if (emsg == NULL) {
- emsg = g_strdup ((*it)->name ().c_str ());
- } else {
- tmpmsg = emsg;
- emsg = g_strconcat (emsg, "\n", (*it)->name ().c_str (), NULL);
- g_free (tmpmsg);
+ if ( ! result.allDone() )
+ {
+ std::ostringstream todolist;
+ char separator = '\0';
+
+ // process all steps not DONE (ERROR and TODO)
+ const sat::Transaction & trans( result.transaction() );
+ for_( it, trans.actionBegin(~sat::Transaction::STEP_DONE), trans.actionEnd() )
+ {
+ if ( separator )
+ todolist << separator << it->ident();
+ else
+ {
+ todolist << it->ident();
+ separator = '\n';
}
}
pk_backend_error_code (backend, PK_ERROR_ENUM_TRANSACTION_ERROR,
"Transaction could not be completed.\n Theses packages could not be installed: %s",
- emsg);
+ todolist.str().c_str());
- g_free (emsg);
goto exit;
- }
+ }
ret = TRUE;
} catch (const repo::RepoNotFoundException &ex) {
--
1.7.10.4