summaryrefslogtreecommitdiff
path: root/src/rules.c
diff options
context:
space:
mode:
authorMichael Schroeder <mls@suse.de>2013-05-15 16:48:59 +0200
committerMichael Schroeder <mls@suse.de>2013-05-15 16:48:59 +0200
commitb2ed45712cf50b4c3dcceb557ce9edbb79390d4b (patch)
treef12b7a61df8867e41f6650e64e4f4723633a30fd /src/rules.c
parent8aaaf8c2a7d51438c98eeca604231ddfab990f4d (diff)
downloadlibsolv-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.c9
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;
}