]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Do not try to update pseudo packages when we update the linked package as well
authorMichael Schroeder <mls@suse.de>
Thu, 10 Mar 2016 10:48:52 +0000 (11:48 +0100)
committerMichael Schroeder <mls@suse.de>
Thu, 10 Mar 2016 10:48:52 +0000 (11:48 +0100)
(bnc#967006)

src/solver.c

index 15a3114414adc5b8b018b4f22140d3b9db0088f7..c6f59e20651e71543aea38baf63e4c19f5cc9085 100644 (file)
@@ -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)