From 766a2c1a87a6e1a2ecde9a65937fd3fd1c32335b Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Wed, 21 Jan 2015 13:28:21 +0100 Subject: [PATCH] fix solver_addpkgrulesforweak missing some splitprovide packages This was because the updatemap gets extended when the dup rules are created, but the map already gets used in solver_splitprovides. So temporarily set updatemap_all in that case. --- src/solver.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/solver.c b/src/solver.c index 14fe78d7..e6996a2f 100644 --- a/src/solver.c +++ b/src/solver.c @@ -3644,7 +3644,16 @@ solver_solve(Solver *solv, Queue *job) * add rules for suggests, enhances */ oldnrules = solv->nrules; - solver_addpkgrulesforweak(solv, &addedmap); + if (hasdupjob && !solv->updatemap_all && solv->dosplitprovides && solv->installed) + { + /* solver_splitprovides checks if the package is in the update map, but the update + * map is extended for dup jobs. So temporarily set updatemap_all */ + solv->updatemap_all = 1; + solver_addpkgrulesforweak(solv, &addedmap); + solv->updatemap_all = 0; + } + else + solver_addpkgrulesforweak(solv, &addedmap); POOL_DEBUG(SOLV_DEBUG_STATS, "added %d pkg rules because of weak dependencies\n", solv->nrules - oldnrules); #ifdef ENABLE_LINKED_PKGS -- 2.47.2