]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Add pool_best_solvables() function
authorMichael Schroeder <mls@suse.de>
Tue, 23 May 2017 09:49:53 +0000 (11:49 +0200)
committerMichael Schroeder <mls@suse.de>
Tue, 23 May 2017 09:49:53 +0000 (11:49 +0200)
This prunes a set of solvables to the best versions.

src/libsolv.ver
src/policy.c
src/policy.h

index 19f98bbfa13c310123a8bb011a8efbbc55045314..d65c0d664d2fa60f2aa55e43445d501e005c4d59 100644 (file)
@@ -422,3 +422,7 @@ SOLV_1.0 {
        local:
                *;
 };
+
+SOLV_1.1 {
+               pool_best_solvables;
+} SOLV_1.0;
index 8b4c2e4bd8022143c3ed40b1093f9ebd8269a061..a6d34415fe73fd59928ff2948d42e023accbb4a7 100644 (file)
@@ -1353,6 +1353,22 @@ policy_filter_unwanted(Solver *solv, Queue *plist, int mode)
     }
 }
 
+void
+pool_best_solvables(Pool *pool, Queue *plist, int flags)
+{
+  if (plist->count > 1)
+    prune_to_highest_prio(pool, plist);
+  if (plist->count > 1)
+    prune_to_best_arch(pool, plist);
+  if (plist->count > 1)
+    prune_to_best_version(pool, plist);
+  if (plist->count > 1)
+    {
+      dislike_old_versions(pool, plist);
+      sort_by_common_dep(pool, plist);
+    }
+}
+
 
 /* check if there is an illegal architecture change if
  * installed solvable s1 is replaced by s2 */
index 0c3c7cb018e67f33958456fb22691e2a2f6c6aa5..68f4db93d1f3091c2e6b5add446f8eacfa2615d3 100644 (file)
@@ -38,6 +38,8 @@ extern void policy_update_recommendsmap(Solver *solv);
 
 extern void policy_create_obsolete_index(Solver *solv);
 
+extern void pool_best_solvables(Pool *pool, Queue *plist, int flags);
+
 /* internal, do not use */
 extern void prune_to_best_version(Pool *pool, Queue *plist);
 extern void policy_prefer_favored(Solver *solv, Queue *plist);