[PATCH v3] discover/grub: Add blscfg command support to parse BootLoaderSpec files
Javier Martinez Canillas
javierm at redhat.com
Wed Mar 21 10:59:35 AEDT 2018
On 03/20/2018 11:45 PM, Brett Grandbois wrote:
> Tested it out and it works. I just noticed however that there is no
> support for default in it so somewhere in bls_finish it would be nice to
Right, I wrongly assumed that this would already work by just setting a
default env var in grub.cfg, but now see that was missing support for it.
> have an option->is_default check. The concept of index doesn't seem to
> apply in BLS like it does in a list of menuentries so probably the best
> way to go is to do the default env comparison on title or machine_id if
> either exist.
>
There's already an option_is_default() in discover/grub2/script.c so I
think we should use it for consistency. The logic there checks if there
is a default env var and if it's a number, then uses it as an index. If
isn't a number, then it compares first with opt->id or as a fallback to
opt->name.
So since users expects to set default to the menu entry name as shown
in the UI (as is the case for grub2 without BLS) then we should either
set opt->id to opt->name or not set opt->id at all.
So I think it should be
if title
else if machine_id && version
else if version
else if dev->device->id && state->image
> I know I originally suggested it, but looking at the implementation I
> can see that having option->name be a mash up of machine_id and version
> isn't the way to go. It looks much cleaner to just have:
>
> if title
>
> else if machine_id
>
But the different BLS fragments will have the same machine_id, so this
can't be used alone.
> else if version
>
> else
>
>
> which then makes the default check easy has you can do it based on an
> option->name comparison afterwards.
>
> Brett
>
Best regards,
--
Javier Martinez Canillas
Software Engineer - Desktop Hardware Enablement
Red Hat
More information about the Petitboot
mailing list