From: Michael Schroeder Date: Wed, 21 Jan 2015 12:28:21 +0000 (+0100) Subject: fix solver_addpkgrulesforweak missing some splitprovide packages X-Git-Tag: 0.6.9~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=766a2c1a87a6e1a2ecde9a65937fd3fd1c32335b;p=thirdparty%2Flibsolv.git 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. --- 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