summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/solver.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/solver.c b/src/solver.c
index 91e5958..d27a7a3 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -671,11 +671,12 @@ static void select_package(struct apk_solver_state *ss, struct apk_name *name)
(!p->pkg->ss.iif_triggered ||
!p->pkg->ss.tag_ok))
continue;
- /* Virtual packages without provider_priority cannot be autoselected */
+ /* Virtual packages without provider_priority cannot be autoselected,
+ * unless there is only one provider */
if (p->version == &apk_null_blob &&
p->pkg->name->auto_select_virtual == 0 &&
p->pkg->name->ss.requirers == 0 &&
- p->pkg->provider_priority == 0)
+ (p->pkg->provider_priority == 0 && name->providers->num > 1))
continue;
if (compare_providers(ss, p, &chosen) > 0)
chosen = *p;