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);