From daf9e1887eb8372946ad09865c36ae8f8e3abdcd Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Tue, 23 May 2017 11:49:53 +0200 Subject: [PATCH] Add pool_best_solvables() function This prunes a set of solvables to the best versions. --- src/libsolv.ver | 4 ++++ src/policy.c | 16 ++++++++++++++++ src/policy.h | 2 ++ 3 files changed, 22 insertions(+) diff --git a/src/libsolv.ver b/src/libsolv.ver index 19f98bbf..d65c0d66 100644 --- a/src/libsolv.ver +++ b/src/libsolv.ver @@ -422,3 +422,7 @@ SOLV_1.0 { local: *; }; + +SOLV_1.1 { + pool_best_solvables; +} SOLV_1.0; diff --git a/src/policy.c b/src/policy.c index 8b4c2e4b..a6d34415 100644 --- a/src/policy.c +++ b/src/policy.c @@ -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 */ diff --git a/src/policy.h b/src/policy.h index 0c3c7cb0..68f4db93 100644 --- a/src/policy.h +++ b/src/policy.h @@ -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); -- 2.47.3