diff options
author | Timo Teräs <timo.teras@iki.fi> | 2022-12-22 14:41:47 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2022-12-22 14:41:47 +0200 |
commit | d561bd7c86f63ec3693e3c3c8479302b8c6bdc5f (patch) | |
tree | 5b3e4d4b96a2c2ad1807776bcaaf3160da77c5bb /src | |
parent | 92970a8fea45345fcfca3ba03f3ebbfdf48d6597 (diff) | |
download | apk-tools-d561bd7c86f63ec3693e3c3c8479302b8c6bdc5f.tar.gz apk-tools-d561bd7c86f63ec3693e3c3c8479302b8c6bdc5f.tar.bz2 apk-tools-d561bd7c86f63ec3693e3c3c8479302b8c6bdc5f.tar.xz apk-tools-d561bd7c86f63ec3693e3c3c8479302b8c6bdc5f.zip |
solver: move install if discovery after all dependencies are done
Diffstat (limited to 'src')
-rw-r--r-- | src/solver.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/solver.c b/src/solver.c index 24643f5..2548de7 100644 --- a/src/solver.c +++ b/src/solver.c @@ -230,13 +230,6 @@ 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), @@ -252,6 +245,16 @@ 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(p, name->providers) { + struct apk_package *pkg = p->pkg; + 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); + } + } } static void name_requirers_changed(struct apk_solver_state *ss, struct apk_name *name) |