solver: require package layer to be enabled for install

cute-signatures
Timo Teräs 2022-02-06 21:37:31 +02:00
parent 21519221c2
commit 3ad4d6bed1
2 changed files with 7 additions and 3 deletions

View File

@ -425,6 +425,9 @@ static void print_pinning_errors(struct print_state *ps, struct apk_package *pkg
if (!(pkg->repos & db->available_repos)) {
label_start(ps, "masked in:");
apk_print_indented_fmt(&ps->i, "--no-network");
} else if (!(BIT(pkg->layer) & db->active_layers)) {
label_start(ps, "masked in:");
apk_print_indented_fmt(&ps->i, "layer");
} else if (pkg->repos == BIT(APK_REPOSITORY_CACHED) && !pkg->filename) {
label_start(ps, "masked in:");
apk_print_indented_fmt(&ps->i, "cache");

View File

@ -198,9 +198,10 @@ static void discover_name(struct apk_solver_state *ss, struct apk_name *name)
/* Package is in 'cached' repository if filename is provided,
* 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;
(BIT(pkg->layer) & db->active_layers) &&
((pkg->repos & db->available_repos) ||
pkg->cached_non_repository ||
pkg->ipkg);
/* Prune install_if packages that are no longer available,
* currently works only if SOLVERF_AVAILABLE is set in the