commit:     eb752dfa3135774ddd9e409f007356528fba4391
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Mon Jul  5 08:39:24 2021 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Mon Jul  5 08:39:24 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=eb752dfa

qmerge: ignore subslot in calculating replacing version

Original patch by Joakim Tjernlund <Joakim.Tjernlund <AT> infinera.com>

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

 qmerge.c | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/qmerge.c b/qmerge.c
index 9cbcc45..a624b89 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -1095,13 +1095,23 @@ 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;
+               char *orepo;
+               char *osubslot;
+
+               /* drop REPO and SUBSLOT from query, we don't care about where
+                * the replacement comes from here, SUBSLOT only affects rebuild
+                * triggering */
+               orepo                   = previnst->atom->REPO;
+               osubslot                = previnst->atom->SUBSLOT;
+               previnst->atom->REPO    = NULL;
+               previnst->atom->SUBSLOT = NULL;
+
+               replacing               = atom_compare(mpkg->atom, 
previnst->atom);
+               replver                 = previnst->atom->PVR;
+
+               /* restore atom for later printing/handling */
+               previnst->atom->REPO    = orepo;
+               previnst->atom->SUBSLOT = osubslot;
        }
 
        (void)qprint_tree_node(level, mpkg, previnst, replacing);

Reply via email to