From: Lennart Poettering Date: Thu, 3 Feb 2022 15:27:33 +0000 (+0100) Subject: Revert "bootctl: Ignore boot entries (continue #22041)" X-Git-Tag: v251-rc1~293^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9951736b7fe532f266ad8457a889047e1396fb76;p=thirdparty%2Fsystemd.git Revert "bootctl: Ignore boot entries (continue #22041)" --- diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index c76fea0a024..edc9ef4be96 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -1606,7 +1606,7 @@ static int verb_list(int argc, char *argv[], void *userdata) { else if (r < 0) log_warning_errno(r, "Failed to determine entries reported by boot loader, ignoring: %m"); else - (void) boot_entries_augment_from_loader(&config, efi_entries); + (void) boot_entries_augment_from_loader(&config, efi_entries, false); if (config.n_entries == 0) log_info("No boot loader entries found."); diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index e801f245320..72de58631a8 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -2923,7 +2923,7 @@ static int boot_loader_entry_exists(Manager *m, const char *id) { r = manager_read_efi_boot_loader_entries(m); if (r >= 0) - (void) boot_entries_augment_from_loader(&config, m->efi_boot_loader_entries); + (void) boot_entries_augment_from_loader(&config, m->efi_boot_loader_entries, true); return boot_config_has_entry(&config, id); } @@ -3081,7 +3081,7 @@ static int property_get_boot_loader_entries( r = manager_read_efi_boot_loader_entries(m); if (r >= 0) - (void) boot_entries_augment_from_loader(&config, m->efi_boot_loader_entries); + (void) boot_entries_augment_from_loader(&config, m->efi_boot_loader_entries, true); r = sd_bus_message_open_container(reply, 'a', "s"); if (r < 0) diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index 52268f60415..0076092c2ab 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -759,7 +759,8 @@ int boot_entries_load_config_auto( int boot_entries_augment_from_loader( BootConfig *config, - char **found_by_loader) { + char **found_by_loader, + bool only_auto) { static const char *const title_table[] = { /* Pretty names for a few well-known automatically discovered entries. */ @@ -784,12 +785,7 @@ int boot_entries_augment_from_loader( if (boot_config_has_entry(config, *i)) continue; - /* - * consider the 'auto-' entries only, because the others - * ones are detected scanning the 'esp' and 'xbootldr' - * directories by boot_entries_load_config() - */ - if (!startswith(*i, "auto-")) + if (only_auto && !startswith(*i, "auto-")) continue; c = strdup(*i); diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h index 4a95e24e279..81845f47e37 100644 --- a/src/shared/bootspec.h +++ b/src/shared/bootspec.h @@ -76,7 +76,7 @@ static inline BootEntry* boot_config_default_entry(BootConfig *config) { void boot_config_free(BootConfig *config); int boot_entries_load_config(const char *esp_path, const char *xbootldr_path, BootConfig *config); int boot_entries_load_config_auto(const char *override_esp_path, const char *override_xbootldr_path, BootConfig *config); -int boot_entries_augment_from_loader(BootConfig *config, char **list); +int boot_entries_augment_from_loader(BootConfig *config, char **list, bool only_auto); static inline const char* boot_entry_title(const BootEntry *entry) { return entry->show_title ?: entry->title ?: entry->id;