[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [discover/Plasma/5.12] libdiscover/backends/PackageKitBackend: Abort transaction on PackageKit error
From: Aleix Pol <null () kde ! org>
Date: 2018-05-28 16:06:06
Message-ID: E1fNKes-0003St-Sw () code ! kde ! org
[Download RAW message or body]
Git commit c0277f806a6eab8e9850e4d022ebc0419dd8efc1 by Aleix Pol, on behalf of \
Antonio Rojas. Committed on 28/05/2018 at 16:05.
Pushed by apol into branch 'Plasma/5.12'.
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/c0277f806a6eab8e9850e4d022ebc0419dd8efc1
diff --git a/libdiscover/backends/PackageKitBackend/PKTransaction.cpp \
b/libdiscover/backends/PackageKitBackend/PKTransaction.cpp index 135c628c..a8d2036e \
100644
--- a/libdiscover/backends/PackageKitBackend/PKTransaction.cpp
+++ b/libdiscover/backends/PackageKitBackend/PKTransaction.cpp
@@ -134,6 +134,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);
@@ -141,7 +142,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; @@ -172,7 +173,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