From e8be63f81baad5b251fa4ddad4c1c2eac626f821 Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Mon, 14 Sep 2009 16:33:36 +0200 Subject: [PATCH] - fix assertion failue... again - allow installed packages in infarch rule generation --- src/rules.c | 2 ++ src/solver.c | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rules.c b/src/rules.c index d264647..28111de 100644 --- a/src/rules.c +++ b/src/rules.c @@ -1067,6 +1067,8 @@ solver_addinfarchrules(Solver *solv, Map *addedmap) a = (a <= pool->lastarch) ? pool->id2arch[a] : 0; if (a != 1 && bestarch && ((a ^ bestarch) & 0xffff0000) != 0) { + if (pool->installed && ps->repo == pool->installed) + continue; /* always ok to keep an installed package */ for (j = 0; j < allowedarchs.count; j++) { aa = allowedarchs.elements[j]; diff --git a/src/solver.c b/src/solver.c index da5493c..6c1c34c 100644 --- a/src/solver.c +++ b/src/solver.c @@ -1534,7 +1534,7 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) } if (level <= olevel) { - if (level < passlevel) + if (level == 1 || level < passlevel) break; /* trouble */ if (level < olevel) n = installed->start; /* redo all */ @@ -1557,7 +1557,7 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) } if (level <= olevel) { - if (level < passlevel) + if (level == 1 || level < passlevel) break; /* trouble */ if (level < olevel) n = installed->start; /* redo all */ -- 2.7.4