diff --git a/src/sysupdate/sysupdate.c b/src/sysupdate/sysupdate.c index 07f6f7ab77..9ae80a2a8b 100644 --- a/src/sysupdate/sysupdate.c +++ b/src/sysupdate/sysupdate.c @@ -2949,15 +2949,13 @@ static int context_list_components(Context *context, char ***ret_component_names if (ret_component_names) *ret_component_names = TAKE_PTR(z); - /* Does the system have at least one transfer file in /etc/sysupdate.d, which can be considered a - * TARGET_HOST? See target_get_argument() in sysupdated.c */ + /* Does the system have at least one transfer file in sysupdate.d, which can be considered the + * default component-less installation? */ if (ret_has_default_component) *ret_has_default_component = !context->definitions && !context->component && - !context->root && - !context->image && - context->n_transfers > 0; + context->n_transfers + context->n_disabled_transfers > 0; return 0; } diff --git a/test/units/TEST-72-SYSUPDATE.sh b/test/units/TEST-72-SYSUPDATE.sh index f1c4b951c9..1ddb2ac9b9 100755 --- a/test/units/TEST-72-SYSUPDATE.sh +++ b/test/units/TEST-72-SYSUPDATE.sh @@ -1833,6 +1833,50 @@ assert_dropin "$(feat_enable_dropin_default featc)" yes test ! -e "$(feat_enable_dropin_default featb)" set_machine_tags "" +# --component-all must still include the default component when all of its +# transfers are currently disabled by features. +compfeat_reset +compfeat_source v1 +mkdir -p /run/sysupdate.d +compfeat_transfer /run/sysupdate.d/50-feata.transfer feata "$CF/target-default" feata +cat >/run/sysupdate.d/feata.feature <"$ROOT_FEATURE_ROOT/etc/sysupdate.d/50-feata.transfer" <"$ROOT_FEATURE_ROOT/etc/sysupdate.d/feata.feature" <