]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Tweak urpm_reorder so that selected packages get score 4
authorMichael Schroeder <mls@suse.de>
Tue, 7 Jun 2016 09:01:16 +0000 (11:01 +0200)
committerMichael Schroeder <mls@suse.de>
Tue, 7 Jun 2016 09:01:16 +0000 (11:01 +0200)
src/policy.c

index 3a0a73760026ef00e602b0765e4641c9b774f623..7ed52d98fd96d3ed0616072b3ed567e45e8ce6d9 100644 (file)
@@ -1231,8 +1231,15 @@ urpm_reorder(Solver *solv, Queue *plist)
              if (knid)
                {
                  FOR_PROVIDES(p, pp, knid)
-                   if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
-                     score = 3;
+                   {
+                     if (solv->decisionmap[p] > 0)
+                       {
+                         score = 4;
+                         break;
+                       }
+                     else if (pool->installed && pool->solvables[p].repo == pool->installed)
+                       score = 3;
+                   }
                }
            }
        }
@@ -1257,8 +1264,15 @@ urpm_reorder(Solver *solv, Queue *plist)
                      if (knid)
                        {
                          FOR_PROVIDES(p, pp, knid)
-                           if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
-                             score = 3;
+                           {
+                             if (solv->decisionmap[p] > 0)
+                               {
+                                 score = 4;
+                                 break;
+                               }
+                             if (pool->installed && pool->solvables[p].repo == pool->installed)
+                               score = 3;
+                           }
                        }
                    }
                }
@@ -1284,8 +1298,15 @@ urpm_reorder(Solver *solv, Queue *plist)
                {
                  score = 0;
                  FOR_PROVIDES(p, pp, id)
-                   if (solv->decisionmap[p] > 0 || (pool->installed && pool->solvables[p].repo == pool->installed))
-                     score = 3;
+                   {
+                     if (solv->decisionmap[p] > 0)
+                       {
+                         score = 4;
+                         break;
+                       }
+                     if (pool->installed && pool->solvables[p].repo == pool->installed)
+                       score = 3;
+                   }
                  break;
                }
            }