Blame SOURCES/0001-versionlock-Do-not-exclude-locked-obsoleters-RhBug1957280.patch

237e18
From a3b9e17628994b43080b8c03b9f665a0e6514cd6 Mon Sep 17 00:00:00 2001
237e18
From: Marek Blaha <mblaha@redhat.com>
237e18
Date: Tue, 11 May 2021 08:29:31 +0200
237e18
Subject: [PATCH] versionlock: Do not exclude locked obsoleters (RhBug:1957280)
237e18
237e18
The versionlock plugin excludes all obsoleters of locked packages. If
237e18
both versions (obsoleted package and its obsoleter) are locked, this
237e18
leads to the inability to install the obsoleter package. The patch
237e18
protects all locked packages from being excluded as obsoleters.
237e18
237e18
= changelog =
237e18
msg:           versionlock: Locking obsoleted package does not make the obsoleter unavailable
237e18
type:          bugfix
237e18
resolves:      https://bugzilla.redhat.com/show_bug.cgi?id=1957280
237e18
---
237e18
 plugins/versionlock.py | 6 ++++--
237e18
 1 file changed, 4 insertions(+), 2 deletions(-)
237e18
237e18
diff --git a/plugins/versionlock.py b/plugins/versionlock.py
237e18
index d997130..c89a75d 100644
237e18
--- a/plugins/versionlock.py
237e18
+++ b/plugins/versionlock.py
237e18
@@ -113,8 +113,10 @@ class VersionLock(dnf.Plugin):
237e18
             other_versions = all_versions.difference(locked_query)
237e18
             excludes_query = excludes_query.union(other_versions)
237e18
             # exclude also anything that obsoletes the locked versions of packages
237e18
-            excludes_query = excludes_query.union(
237e18
-                self.base.sack.query().filterm(obsoletes=locked_query))
237e18
+            obsoletes_query = self.base.sack.query().filterm(obsoletes=locked_query)
237e18
+            # leave out obsoleters that are also part of locked versions (otherwise the obsoleter package
237e18
+            # would not be installable at all)
237e18
+            excludes_query = excludes_query.union(obsoletes_query.difference(locked_query))
237e18
 
237e18
         excludes_query.filterm(reponame__neq=hawkey.SYSTEM_REPO_NAME)
237e18
         if excludes_query:
237e18
--
237e18
libgit2 1.0.1
237e18