ref: refs/heads/SuSE-Code-11-Branch
commit 1e67cac4a49c1fc0385a57bf43bd162b61f565fb
Author: Michael Schroeder
Date: Wed May 20 12:31:29 2009 +0200
- add workaround for multversion supplements (bnc#5018088)
---
src/solver.c | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/src/solver.c b/src/solver.c
index 65da12c..97d1879 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -2980,6 +2980,29 @@ run_solver(Solver *solv, int disablerules, int doweak)
}
}
+ /* multiversion doesn't mix well with supplements.
+ * filter supplemented packages where we already decided
+ * to install a different version (see bnc#501088) */
+ if (dqs.count && solv->noobsoletes.size)
+ {
+ for (i = j = 0; i < dqs.count; i++)
+ {
+ p = dqs.elements[i];
+ if (MAPTST(&solv->noobsoletes, p))
+ {
+ Id p2, pp2;
+ s = pool->solvables + p;
+ FOR_PROVIDES(p2, pp2, s->name)
+ if (solv->decisionmap[p2] > 0 && pool->solvables[p2].name == s->name)
+ break;
+ if (p2)
+ continue; /* ignore this package */
+ }
+ dqs.elements[j++] = p;
+ }
+ dqs.count = j;
+ }
+
/* make dq contain both recommended and supplemented pkgs */
if (dqs.count)
{
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org