+ int obsoleteusesprovides = pool_get_flag(pool, POOL_FLAG_OBSOLETEUSESPROVIDES);
+ int obsoleteusescolors = pool_get_flag(pool, POOL_FLAG_OBSOLETEUSESCOLORS);
+
+ for (i = 0; i < cand.count; i++)
+ {
+ Solvable *s;
+ s = pool->solvables + cand.elements[i];
+
+ if (s->obsoletes)
+ {
+ Id obs, *obsp = s->repo->idarraydata + s->obsoletes;
+
+ while ((obs = *obsp++) != 0)
+ {
+ Id op, opp;
+ FOR_PROVIDES(op, opp, obs)
+ {
+ Solvable *os = pool->solvables + op;
+ if (nocheck && op >= nocheck)
+ continue;
+ if (solvable_identical(s, os))
+ continue;
+ if (!obsoleteusesprovides && !pool_match_nevr(pool, os, obs))
+ continue;
+ if (obsoleteusescolors && !pool_colormatch(pool, s, os))
+ continue;
+ status = 2;
+ printf("can't install %s:\n", pool_solvid2str(pool, op));
+ printf(" package is obsoleted by %s\n", pool_solvable2str(pool, s));
+ }
+ }
+ }
+ }