[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [discover/Plasma/5.13] libdiscover/backends/PackageKitBackend: Abort transaction on PackageKit error
From: Antonio Rojas <null () kde ! org>
Date: 2018-05-26 7:14:17
Message-ID: E1fMTP7-0001lz-4y () code ! kde ! org
[Download RAW message or body]
Git commit ee8e49422118895f0c75b5ea67308ac15d69a476 by Antonio Rojas.
Committed on 26/05/2018 at 07:13.
Pushed by arojas into branch 'Plasma/5.13'.
Abort transaction on PackageKit errors
If PackageKit throws an error, abort the transaction instead of finishing it anyway \
(potentially breaking the user's installation). This is far from ideal, but prevents \
Discover from performing destructive operations while the PackageKit issues are fixed
BUG: 394327
Differential Revision: https://phabricator.kde.org/D13119
M +6 -2 libdiscover/backends/PackageKitBackend/PKTransaction.cpp
https://commits.kde.org/discover/ee8e49422118895f0c75b5ea67308ac15d69a476
diff --git a/libdiscover/backends/PackageKitBackend/PKTransaction.cpp \
b/libdiscover/backends/PackageKitBackend/PKTransaction.cpp index 5ceefad6..1431b039 \
100644
--- a/libdiscover/backends/PackageKitBackend/PKTransaction.cpp
+++ b/libdiscover/backends/PackageKitBackend/PKTransaction.cpp
@@ -137,6 +137,7 @@ void PKTransaction::cleanup(PackageKit::Transaction::Exit exit, \
uint runtime) {
Q_UNUSED(runtime)
const bool cancel = !m_proceedFunctions.isEmpty() || exit == \
PackageKit::Transaction::ExitCancelled; + const bool failed = exit == \
PackageKit::Transaction::ExitFailed;
const bool simulate = m_trans->transactionFlags() & \
PackageKit::Transaction::TransactionFlagSimulate;
disconnect(m_trans, nullptr, this, nullptr);
@@ -144,7 +145,7 @@ void PKTransaction::cleanup(PackageKit::Transaction::Exit exit, \
uint runtime)
const auto backend = qobject_cast<PackageKitBackend*>(resource()->backend());
- if (!cancel && simulate) {
+ if (!cancel && !failed && simulate) {
auto packagesToRemove = \
m_newPackageStates.value(PackageKit::Transaction::InfoRemoving); \
QMutableListIterator<QString> i(packagesToRemove); QSet<AbstractResource*> \
removedResources; @@ -175,7 +176,10 @@ void \
PKTransaction::cleanup(PackageKit::Transaction::Exit exit, uint runtime) }
this->submitResolve();
- setStatus(Transaction::CancelledStatus);
+ if (failed)
+ setStatus(Transaction::DoneWithErrorStatus);
+ else
+ setStatus(Transaction::CancelledStatus);
}
void PKTransaction::processProceedFunction()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic