From: Michael Schroeder Date: Thu, 10 Mar 2016 10:48:52 +0000 (+0100) Subject: Do not try to update pseudo packages when we update the linked package as well X-Git-Tag: 0.6.20~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7fa7ae05bdadb3736b3133ec6046638d807c8908;p=thirdparty%2Flibsolv.git Do not try to update pseudo packages when we update the linked package as well (bnc#967006) --- diff --git a/src/solver.c b/src/solver.c index 15a31144..c6f59e20 100644 --- a/src/solver.c +++ b/src/solver.c @@ -2205,7 +2205,16 @@ solver_run_sat(Solver *solv, int disablerules, int doweak) { if (!rr->p) { - /* specialupdater with no update/feature rule */ + /* specialupdater with no update/feature rule, i.e. a pseudo package */ + /* ignore if we also update the linked package */ + /* XXX: better map package in the updatemap? */ + if (solv->instbuddy && solv->instbuddy[s - pool->solvables - installed->start] > 1) + { + Id ip = solv->instbuddy[s - pool->solvables - installed->start]; + if (ip >= installed->start && ip < installed->end) + if (MAPTST(&solv->noupdate, ip - installed->start) || solv->updatemap_all || (solv->updatemap.size && MAPTST(&solv->updatemap, ip - installed->start))) + continue; + } for (d = specialupdaters[i - installed->start]; (p = pool->whatprovidesdata[d++]) != 0; ) { if (solv->decisionmap[p] > 0)