File PackageKit-zypp-restore-pool-status-after-simulating-update.patch of Package PackageKit.33122
From 8843cdf4de151d6a515bb3c42ca02774573bb370 Mon Sep 17 00:00:00 2001
From: Jonathan Kang <jonathankang@gnome.org>
Date: Mon, 1 Aug 2022 10:08:19 +0800
Subject: [PATCH] zypp: restore pool status after simulating an update
Previously, when simulating an update, doUpgrade() or doUpdate() is
called. But the changes to the pool never got commited nor cancelled.
This leads to the result that locked packages are updated in a later
update/upgrade.
Fix that by restoring the ResPool status to the state before simulating
an update.
https://bugzilla.suse.com/show_bug.cgi?id=1199895
---
backends/zypp/pk-backend-zypp.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/backends/zypp/pk-backend-zypp.cpp b/backends/zypp/pk-backend-zypp.cpp
index 271cc0a6c..ecdfc9c89 100644
--- a/backends/zypp/pk-backend-zypp.cpp
+++ b/backends/zypp/pk-backend-zypp.cpp
@@ -3451,6 +3451,7 @@ upgrade_system (PkBackendJob *job,
if (!zypp_refresh_cache (job, zypp, FALSE)) {
return;
}
+ PoolStatusSaver saver;
zypp_get_updates (job, zypp, candidates);
if (candidates.empty ()) {
pk_backend_job_error_code (job, PK_ERROR_ENUM_NO_DISTRO_UPGRADE_DATA,
--
2.37.1