SET(LIBSATSOLVER_MAJOR "0")
SET(LIBSATSOLVER_MINOR "14")
-SET(LIBSATSOLVER_PATCH "9")
+SET(LIBSATSOLVER_PATCH "10")
-# last released 0.14.9
+# last released 0.14.10
-------------------------------------------------------------------
+Mon Nov 2 14:10:23 CET 2009 - mls@suse.de
+
+- look at infarch/dup rules when creating choice rules, makes dup
+ also install 32bit packages [bnc#551637]
+- 0.14.10
+
+-------------------------------------------------------------------
Wed Oct 14 16:21:32 CEST 2009 - mls@suse.de
- ignore products element so that repo2solv works
addchoicerules(Solver *solv)
{
Pool *pool = solv->pool;
- Map m;
+ Map m, mneg;
Rule *r;
Queue q, qi;
int i, j, rid, havechoice;
queue_init(&q);
queue_init(&qi);
map_init(&m, pool->nsolvables);
+ map_init(&mneg, pool->nsolvables);
+ /* set up negative assertion map from infarch and dup rules */
+ for (rid = solv->infarchrules, r = solv->rules + rid; rid < solv->infarchrules_end; rid++, r++)
+ if (r->p < 0 && !r->w2 && (r->d == 0 || r->d == -1))
+ MAPSET(&mneg, -r->p);
+ for (rid = solv->duprules, r = solv->rules + rid; rid < solv->duprules_end; rid++, r++)
+ if (r->p < 0 && !r->w2 && (r->d == 0 || r->d == -1))
+ MAPSET(&mneg, -r->p);
for (rid = 1; rid < solv->rpmrules_end ; rid++)
{
r = solv->rules + rid;
continue;
if (!solv->allowvendorchange && s->vendor != s2->vendor && policy_illegal_vendorchange(solv, s, s2))
continue;
+ if (MAPSET(&mneg, p2))
+ continue;
queue_push(&qi, p2);
queue_push(&q, p);
continue;
continue;
if (!solv->allowvendorchange && s->vendor != s2->vendor && policy_illegal_vendorchange(solv, s, s2))
continue;
+ if (MAPSET(&mneg, p2))
+ continue;
queue_push(&qi, p2);
queue_push(&q, p);
continue;
queue_free(&q);
queue_free(&qi);
map_free(&m);
+ map_free(&mneg);
solv->choicerules_end = solv->nrules;
}