X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fsolver.c;h=c6cad6b51da28a49baae47a052362c56eef1b200;hb=fd257fb9c490f4af3fbfb71c4d099fe876be28eb;hp=3358b6b07f55063b74cb4180e4b80b2da0cea80b;hpb=70c6207bfdb27f170377015f65f22e8ba50f6a10;p=platform%2Fupstream%2Flibsolv.git diff --git a/src/solver.c b/src/solver.c index 3358b6b..c6cad6b 100644 --- a/src/solver.c +++ b/src/solver.c @@ -2544,13 +2544,20 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) continue; if (solv->decisionmap[p] <= 0) continue; - if (solv->multiversion.size && MAPTST(&solv->multiversion, p)) + if (!solv->keepexplicitobsoletes && solv->multiversion.size && MAPTST(&solv->multiversion, p)) continue; obsp = s->repo->idarraydata + s->obsoletes; /* foreach obsoletes */ while ((obs = *obsp++) != 0) FOR_PROVIDES(po, ppo, obs) - MAPSET(&obsmap, po); + { + Solvable *pos = pool->solvables + po; + if (!pool->obsoleteusesprovides && !pool_match_nevr(pool, pos, obs)) + continue; + if (pool->obsoleteusescolors && !pool_colormatch(pool, s, pos)) + continue; + MAPSET(&obsmap, po); + } } for (i = j = 0; i < dqs.count; i++) if (!MAPTST(&obsmap, dqs.elements[i]))