}
qs.elements[j++] = qs.elements[i];
}
- if (j == 0 && p == -SYSTEMSOLVABLE && solv->distupgrade)
- {
- queue_push(&solv->orphaned, s - pool->solvables); /* treat as orphaned */
- j = qs.count;
- }
if (j < qs.count)
{
if (d && solv->updatesystem && solv->installed && s->repo == solv->installed)
solv->multiversionupdaters = sat_calloc(solv->installed->end - solv->installed->start, sizeof(Id));
solv->multiversionupdaters[s - pool->solvables - solv->installed->start] = d;
}
+ if (j == 0 && p == -SYSTEMSOLVABLE && solv->distupgrade)
+ {
+ queue_push(&solv->orphaned, s - pool->solvables); /* treat as orphaned */
+ j = qs.count;
+ }
qs.count = j;
}
}
if (!installed)
return;
if (solv->noobsoletes.size && MAPTST(&solv->noobsoletes, what))
- return;
+ {
+ /* XXX: remove if we always do distupgrade with DUP rules */
+ if (solv->distupgrade && s->repo == installed)
+ {
+ queue_push(q, DISABLE_UPDATE);
+ queue_push(q, what);
+ return;
+ }
+ return;
+ }
if (s->repo == installed)
{
queue_push(q, DISABLE_UPDATE);
{
case SOLVER_TRANSACTION_INSTALL:
case SOLVER_TRANSACTION_ERASE:
+ case SOLVER_TRANSACTION_MULTIINSTALL:
+ case SOLVER_TRANSACTION_MULTIREINSTALL:
POOL_DEBUG(SAT_DEBUG_RESULT, "\n");
break;
case SOLVER_TRANSACTION_REINSTALL: