commit:     ab6a74c11df188a902c1d2a007661a4334d558bc
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Jul  1 10:02:22 2021 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Jul  1 10:02:22 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=ab6a74c1

qmerge: ignore REPO in version replacement calculation

When we up/downgrade a package, or replace it, we don't care what
repository it comes from.  Since atom_compare checks it when it's in
query, simply drop it for that call.

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 qmerge.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/qmerge.c b/qmerge.c
index 2323f78..bf8dc21 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -1095,8 +1095,13 @@ pkg_merge(int level, const depend_atom *qatom, const 
tree_match_ctx *mpkg)
 
        previnst = best_version(slotatom, BV_INSTALLED);
        if (previnst != NULL) {
+               char *orepo = previnst->atom->REPO;
+               previnst->atom->REPO = NULL;
+               /* drop REPO from query, we don't care about where the
+                * replacement comes from here */
                replacing = atom_compare(mpkg->atom, previnst->atom);
                replver = previnst->atom->PVR;
+               previnst->atom->REPO = orepo;
        }
 
        (void)qprint_tree_node(level, mpkg, previnst, replacing);

Reply via email to