From 162e861d307f53a3c80d3391f4896a9fc32ccb4a Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Wed, 31 Mar 2010 15:15:35 +0200 Subject: [PATCH] - move noupdate test so that the solver tries to keep packages if possible --- src/solver.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/solver.c b/src/solver.c index ded4b33..e56c20f 100644 --- a/src/solver.c +++ b/src/solver.c @@ -1469,10 +1469,6 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) if (solv->decisionmap[i] > 0) continue; - /* XXX: noupdate check is probably no longer needed, as all jobs should - * already be satisfied */ - if (MAPTST(&solv->noupdate, i - installed->start)) - continue; if (!pass && solv->updatemap.size && !MAPTST(&solv->updatemap, i - installed->start)) continue; /* updates first */ r = solv->rules + solv->updaterules + (i - installed->start); @@ -1484,8 +1480,12 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) if (!rr->p) continue; /* orpaned package */ + /* XXX: noupdate check is probably no longer needed, as all jobs should + * already be satisfied */ + /* Actually we currently still need it because of erase jobs */ + /* if noupdate is set we do not look at update candidates */ queue_empty(&dq); - if (solv->decisionmap[i] < 0 || solv->updatesystem || (solv->updatemap.size && MAPTST(&solv->updatemap, i - installed->start)) || rr->p != i) + if (!MAPTST(&solv->noupdate, i - installed->start) && (solv->decisionmap[i] < 0 || solv->updatesystem || (solv->updatemap.size && MAPTST(&solv->updatemap, i - installed->start)) || rr->p != i)) { if (solv->noobsoletes.size && solv->multiversionupdaters && (d = solv->multiversionupdaters[i - installed->start]) != 0) -- 2.7.4