aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam Pitcock <nenolod@dereferenced.org>2017-11-02 16:31:50 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2017-11-02 16:31:50 +0000
commit0a17a648db0e9df61f9bea9d5be292a98106dc6a (patch)
tree5c4157992b50e70a16644094d2aa42c7dd9ecb93 /src
parent9165aa3894bcf19f36be16d733f75eb997becd4f (diff)
downloadaports-0a17a648db0e9df61f9bea9d5be292a98106dc6a.tar.bz2
aports-0a17a648db0e9df61f9bea9d5be292a98106dc6a.tar.xz
solver: only select a default if there is at least one provider with a declared provider_priority
Diffstat (limited to 'src')
-rw-r--r--src/solver.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/solver.c b/src/solver.c
index 17dbdd2dca..c7c9983f30 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -668,6 +668,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 */
+ if (p->version == &apk_null_blob &&
+ p->pkg->name->auto_select_virtual == 0 &&
+ p->pkg->name->ss.requirers == 0 &&
+ p->pkg->provider_priority == 0)
+ continue;
if (compare_providers(ss, p, &chosen) > 0)
chosen = *p;
}