Author: mlschroe Date: Tue Jul 22 15:21:43 2008 New Revision: 10640 URL: http://svn.opensuse.org/viewcvs/zypp?rev=10640&view=rev Log: - resolve job rules before installing system packages [#411086] Modified: trunk/sat-solver/src/solver.c trunk/sat-solver/testsuite/README.FAILS Modified: trunk/sat-solver/src/solver.c URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/src/solver.c?rev=10640&r1=10639&r2=10640&view=diff ============================================================================== --- trunk/sat-solver/src/solver.c (original) +++ trunk/sat-solver/src/solver.c Tue Jul 22 15:21:43 2008 @@ -2350,6 +2350,60 @@ } } + if (level < systemlevel) + { + POOL_DEBUG(SAT_DEBUG_STATS, "resolving job rules\n"); + for (i = solv->jobrules, r = solv->rules + i; i < solv->jobrules_end; i++, r++) + { + Id l; + if (r->d < 0) /* ignore disabled rules */ + continue; + queue_empty(&dq); + FOR_RULELITERALS(l, dp, r) + { + if (l < 0) + { + if (solv->decisionmap[-l] <= 0) + break; + } + else + { + if (solv->decisionmap[l] > 0) + break; + if (solv->decisionmap[l] == 0) + queue_push(&dq, l); + } + } + if (l || !dq.count) + continue; + if (!solv->updatesystem && solv->installed && dq.count > 1) + { + int j, k; + for (j = k = 0; j < dq.count; j++) + { + Solvable *s = pool->solvables + dq.elements[j]; + if (s->repo == solv->installed) + dq.elements[k++] = dq.elements[j]; + } + if (k) + dq.count = k; + } + olevel = level; + level = selectandinstall(solv, level, &dq, 0, disablerules); + if (level == 0) + { + queue_free(&dq); + return; + } + if (level <= olevel) + break; + } + systemlevel = level + 1; + if (i < solv->jobrules_end) + continue; + } + + /* * installed packages */ @@ -2457,11 +2511,14 @@ if (level <= olevel) break; } + systemlevel = level + 1; if (i < solv->installed->end) continue; - systemlevel = level; } + if (level < systemlevel) + systemlevel = level; + /* * decide */ Modified: trunk/sat-solver/testsuite/README.FAILS URL: http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/testsuite/README.FAILS?rev=10640&r1=10639&r2=10640&view=diff ============================================================================== --- trunk/sat-solver/testsuite/README.FAILS (original) +++ trunk/sat-solver/testsuite/README.FAILS Tue Jul 22 15:21:43 2008 @@ -12,9 +12,6 @@ data.libzypp/freshen-tests/exercise-7f-test.xml installs recommends -data.libzypp/kernel-tests/kernel_kmp-test.xml - libzypp does an upgrade of a package needed, mls prefers not to - data.libzypp/yast-tests/exercise-02conflict-13-force-test.xml data.libzypp/yast-tests/exercise-inconsistent6-force-test.xml data.libzypp/yast-tests/exercise-02conflict-09-force-test.xml -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org