projects
/
platform
/
upstream
/
libsolv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Imported Upstream version 0.6.14
[platform/upstream/libsolv.git]
/
src
/
solver.c
diff --git
a/src/solver.c
b/src/solver.c
index
3358b6b
..
c6cad6b
100644
(file)
--- 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;
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)
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]))
}
for (i = j = 0; i < dqs.count; i++)
if (!MAPTST(&obsmap, dqs.elements[i]))