From e60a6eb372ced4ad4953fce22ac932e57731c119 Mon Sep 17 00:00:00 2001 From: Timo Teräs Date: Wed, 21 Dec 2022 21:16:41 +0200 Subject: solver: fix install_if via provides only fixes #10721 --- src/solver.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/solver.c') diff --git a/src/solver.c b/src/solver.c index 2a15d7e..24643f5 100644 --- a/src/solver.c +++ b/src/solver.c @@ -230,6 +230,13 @@ static void discover_name(struct apk_solver_state *ss, struct apk_name *name) pkg->ss.max_dep_chain = max(pkg->ss.max_dep_chain, dep->name->ss.max_dep_chain+1); } + foreach_array_item(pname0, pkg->name->rinstall_if) + discover_name(ss, *pname0); + foreach_array_item(dep, pkg->provides) { + if (dep->name->ss.seen) continue; + foreach_array_item(pname0, dep->name->rinstall_if) + discover_name(ss, *pname0); + } dbg_printf("discover " PKG_VER_FMT ": tag_ok=%d, tag_pref=%d max_dep_chain=%d selectable=%d\n", PKG_VER_PRINTF(pkg), @@ -245,8 +252,6 @@ static void discover_name(struct apk_solver_state *ss, struct apk_name *name) dbg_printf("discover %s: max_dep_chain=%d no_iif=%d\n", name->name, name->ss.max_dep_chain, name->ss.no_iif); } - foreach_array_item(pname0, name->rinstall_if) - discover_name(ss, *pname0); } static void name_requirers_changed(struct apk_solver_state *ss, struct apk_name *name) -- cgit v1.2.3-60-g2f50