1
0
mirror of https://github.com/openSUSE/libsolv.git synced 2026-02-05 12:45:46 +01:00

Transaction ordering: Allow more uninst->uninst edges

Only skip uninst->uninst edges if both elements are build to
inst elements.
This commit is contained in:
Michael Schroeder
2025-06-02 11:30:59 +02:00
parent 74cbf3026f
commit f721a4c9fc

View File

@@ -407,10 +407,11 @@ addsolvableedges(struct orderdata *od, Solvable *s)
if (s->repo != installed)
continue; /* no inst->uninst edges, please! */
/* uninst -> uninst edge. Those make trouble. Only add if we must */
if (trans->transaction_installed[p - installed->start] && !havescripts(pool, p, &ignoreinst))
/* uninst -> uninst edge. Those can make trouble, as uninst elements are often bound to
* inst elements which use the opposite order. */
if (trans->transaction_installed[p2 - installed->start] && trans->transaction_installed[p - installed->start] && !havescripts(pool, p, &ignoreinst))
{
/* p is obsoleted by another package and has no scripts */
/* both p and p2 are bound to inst elements and p has no scripts */
/* we assume that the obsoleter is good enough to replace p */
continue;
}