summaryrefslogtreecommitdiff
path: root/src/solver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/solver.c')
-rw-r--r--src/solver.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/solver.c b/src/solver.c
index 2b35924..59edb1c 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -197,6 +197,7 @@ static void discover_name(struct apk_solver_state *ss, struct apk_name *name)
* or it's a 'virtual' package with install_size zero */
pkg->ss.pkg_selectable =
(pkg->repos & db->available_repos) ||
+ pkg->cached_non_repository ||
pkg->ipkg;
/* Prune install_if packages that are no longer available,
@@ -212,8 +213,11 @@ static void discover_name(struct apk_solver_state *ss, struct apk_name *name)
pkg->ss.tag_preferred =
(pkg->filename != NULL) ||
(pkg->installed_size == 0) ||
- !!(repos & ss->default_repos);
- pkg->ss.tag_ok = pkg->ss.tag_preferred || pkg->ipkg;
+ (repos & ss->default_repos);
+ pkg->ss.tag_ok =
+ pkg->ss.tag_preferred ||
+ pkg->cached_non_repository ||
+ pkg->ipkg;
foreach_array_item(dep, pkg->depends) {
discover_name(ss, dep->name);