]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Make add_update_target work with multiversion installs
authorMichael Schroeder <mls@suse.de>
Tue, 21 Jan 2020 14:16:25 +0000 (15:16 +0100)
committerMichael Schroeder <mls@suse.de>
Tue, 21 Jan 2020 14:16:25 +0000 (15:16 +0100)
An installed targeted package is a target for all installed
packages with the same name.

We're currently ignoring obsoletes, but they should not be in
an installed state anyway.

Fixes issue #364

src/solver.c

index 6a9d66e61d4fd6e7fd7717dbbd7288a6cc044d33..7fcc3fb50c681f69bcdb2bf42afc70141f51105c 100644 (file)
@@ -3106,6 +3106,12 @@ add_update_target(Solver *solv, Id p, Id how)
   if (s->repo == installed)
     {
       queue_push2(solv->update_targets, p, p);
+      FOR_PROVIDES(pi, pip, s->name)
+       {
+         Solvable *si = pool->solvables + pi;
+         if (si->repo == installed && si->name == s->name && pi != p)
+           queue_push2(solv->update_targets, pi, p);
+       }
       return;
     }
   identicalp = 0;