make sure that the selection only contains installed packages if SELECTION_INSTALLED_...
[platform/upstream/libsolv.git] / src / rules.c
index 1c3244c..677807c 100644 (file)
@@ -719,7 +719,7 @@ solver_addrpmrulesforsolvable(Solver *solv, Solvable *s, Map *m)
                    continue;
                  if (!pool->implicitobsoleteusesprovides && s->name != ps->name)
                    continue;
-                 if (pool->obsoleteusescolors && !pool_colormatch(pool, s, ps))
+                 if (pool->implicitobsoleteusescolors && !pool_colormatch(pool, s, ps))
                    continue;
                  if (s->name == ps->name)
                    addrpmrule(solv, -n, -p, SOLVER_RULE_RPM_SAME_NAME, 0);
@@ -1496,7 +1496,7 @@ add_obsoletes(Solver *solv, Id p, Queue *q)
            continue;
          if (!pool->implicitobsoleteusesprovides && ps->name != s->name)
            continue;
-         if (pool->obsoleteusescolors && !pool_colormatch(pool, s, ps)) 
+         if (pool->implicitobsoleteusescolors && !pool_colormatch(pool, s, ps)) 
            continue;
          queue_push(q, p2);
          lastp2 = p2;
@@ -2307,6 +2307,16 @@ solver_rule2job(Solver *solv, Id rid, Id *whatp)
   return solv->job.elements[idx];
 }
 
+Id
+solver_rule2solvable(Solver *solv, Id rid)
+{
+  if (rid >= solv->updaterules && rid < solv->updaterules_end)
+    return rid - solv->updaterules;
+  if (rid >= solv->featurerules && rid < solv->featurerules_end)
+    return rid - solv->featurerules;
+  return 0;
+}
+
 /* check if the newest versions of pi still provides the dependency we're looking for */
 static int
 solver_choicerulecheck(Solver *solv, Id pi, Rule *r, Map *m)
@@ -2420,7 +2430,7 @@ solver_addchoicerules(Solver *solv)
                continue;
              if (!pool->implicitobsoleteusesprovides && s->name != s2->name)
                continue;
-             if (pool->obsoleteusescolors && !pool_colormatch(pool, s, s2))
+             if (pool->implicitobsoleteusescolors && !pool_colormatch(pool, s, s2))
                continue;
              break;
            }