From: Michael Schroeder Date: Wed, 30 Sep 2015 11:42:34 +0000 (+0200) Subject: Also check the installed package for multiversion X-Git-Tag: 0.6.14~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18627d1c0f47a0f6d789df68b6fb6a252015c681;p=thirdparty%2Flibsolv.git Also check the installed package for multiversion Thus, both the to-be-installed and the already installed package must have the multiversion bit set. Otherwise, a dependency verify later on will complain. --- diff --git a/src/rules.c b/src/rules.c index 3264e9b8..b941986b 100644 --- a/src/rules.c +++ b/src/rules.c @@ -928,7 +928,13 @@ solver_addpkgrulesforsolvable(Solver *solv, Solvable *s, Map *m) /* we still obsolete packages with same nevra, like rpm does */ /* (actually, rpm mixes those packages. yuck...) */ if (multi && (s->name != ps->name || s->evr != ps->evr || s->arch != ps->arch)) - continue; + { + if (isinstalled || ps->repo != installed) + continue; + /* also check the installed package for multi-ness */ + if (MAPTST(&solv->multiversion, p)) + continue; + } if (!pool->implicitobsoleteusesprovides && s->name != ps->name) continue; if (pool->implicitobsoleteusescolors && !pool_colormatch(pool, s, ps)) @@ -938,7 +944,7 @@ solver_addpkgrulesforsolvable(Solver *solv, Solvable *s, Map *m) if (s->name == ps->name) { /* optimization: do not add the same-name conflict rule if it was - * already added when we looket at the other package. + * already added when we looked at the other package. * (this assumes pool_colormatch is symmetric) */ if (p && m && ps->repo != installed && MAPTST(m, p) && (ps->arch != ARCH_SRC && ps->arch != ARCH_NOSRC) &&