diff options
author | Michael Schroeder <mls@suse.de> | 2013-05-15 16:48:59 +0200 |
---|---|---|
committer | Michael Schroeder <mls@suse.de> | 2013-05-15 16:48:59 +0200 |
commit | b2ed45712cf50b4c3dcceb557ce9edbb79390d4b (patch) | |
tree | f12b7a61df8867e41f6650e64e4f4723633a30fd /src/rules.c | |
parent | 8aaaf8c2a7d51438c98eeca604231ddfab990f4d (diff) | |
download | libsolv-b2ed45712cf50b4c3dcceb557ce9edbb79390d4b.tar.gz libsolv-b2ed45712cf50b4c3dcceb557ce9edbb79390d4b.tar.bz2 libsolv-b2ed45712cf50b4c3dcceb557ce9edbb79390d4b.zip |
Lookat at keepexplicitobsoletes when creating update rules for multiversion packages
Diffstat (limited to 'src/rules.c')
-rw-r--r-- | src/rules.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/rules.c b/src/rules.c index a144c40..1c3244c 100644 --- a/src/rules.c +++ b/src/rules.c @@ -945,8 +945,15 @@ solver_addupdaterule(Solver *solv, Solvable *s, int allow_all) { if (MAPTST(&solv->multiversion, qs.elements[i])) { - /* it's ok if they have same nevra */ Solvable *ps = pool->solvables + qs.elements[i]; + /* if keepexplicitobsoletes is set and the name is different, + * we assume that there is an obsoletes. XXX: not 100% correct */ + if (solv->keepexplicitobsoletes && ps->name != s->name) + { + qs.elements[j++] = qs.elements[i]; + continue; + } + /* it's ok if they have same nevra */ if (ps->name != s->name || ps->evr != s->evr || ps->arch != s->arch) continue; } |