summaryrefslogtreecommitdiff
path: root/src/solver.c
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2017-02-27 14:56:06 +0200
committerTimo Teräs <timo.teras@iki.fi>2017-02-27 14:56:57 +0200
commit0fe3f3964b8b5accc1e79f5f8a7d848e8fc2cba8 (patch)
treef2ad11a8a6e5cef36d53745f780600a7d738b0cd /src/solver.c
parent6542d4ca2c69c7275ce8fc4fe6df185595a97ed6 (diff)
downloadapk-tools-0fe3f3964b8b5accc1e79f5f8a7d848e8fc2cba8.tar.gz
apk-tools-0fe3f3964b8b5accc1e79f5f8a7d848e8fc2cba8.tar.bz2
apk-tools-0fe3f3964b8b5accc1e79f5f8a7d848e8fc2cba8.tar.xz
apk-tools-0fe3f3964b8b5accc1e79f5f8a7d848e8fc2cba8.zip
fetch: fix --recursive mode to work with pure virtual packages
The virtual package provider still needs to be explicitly given on command line.
Diffstat (limited to 'src/solver.c')
-rw-r--r--src/solver.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/solver.c b/src/solver.c
index f41dffd..248fa27 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -640,7 +640,9 @@ static void select_package(struct apk_solver_state *ss, struct apk_name *name)
!p->pkg->ss.tag_ok))
continue;
/* Virtual packages cannot be autoselected */
- if (p->version == &apk_null_blob && p->pkg->name->ss.requirers == 0)
+ if (p->version == &apk_null_blob &&
+ p->pkg->name->auto_select_virtual == 0 &&
+ p->pkg->name->ss.requirers == 0)
continue;
if (compare_providers(ss, p, &chosen) > 0)
chosen = *p;