libdnf/0004-Set-pool-flag-to-fix-pool_addfileprovides_queue-with.patch

41 lines
1.5 KiB
Diff
Raw Normal View History

From a6d89d66698f75c01539cd03c04a87ab52b6db7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
Date: Tue, 25 Jun 2024 13:38:14 +0200
Subject: [PATCH] Set pool flag to fix pool_addfileprovides_queue() without
filelists.xml
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since dnf4 now also conditionally load filelists it ran into the same
problem as dnf5 here: https://github.com/rpm-software-management/dnf5/issues/520
Additional details in: https://github.com/openSUSE/libsolv/pull/531
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
libdnf/dnf-sack.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/libdnf/dnf-sack.cpp b/libdnf/dnf-sack.cpp
index 3c3a7657..e95009fb 100644
--- a/libdnf/dnf-sack.cpp
+++ b/libdnf/dnf-sack.cpp
@@ -185,6 +185,13 @@ dnf_sack_init(DnfSack *sack)
DnfSackPrivate *priv = GET_PRIVATE(sack);
priv->pool = pool_create();
pool_set_flag(priv->pool, POOL_FLAG_WHATPROVIDESWITHDISABLED, 1);
+
+ // Configures the pool_addfileprovides_queue() method to only add files from primary.xml.
+ // This ensures the method works correctly even if filelist.xml metadata are not loaded.
+ // At the same time when filelist.xml are loaded libsolv is able to search them for required
+ // files if needed.
+ pool_set_flag(priv->pool, POOL_FLAG_ADDFILEPROVIDESFILTERED, 1);
+
priv->running_kernel_id = -1;
priv->running_kernel_fn = running_kernel;
priv->considered_uptodate = TRUE;
--
2.45.2