feat: allow specialisations to set their own sort keys #479
No reviewers
Labels
No labels
bug
dependency
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
review-next
security
stub
tool
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lanzaboote/lanzaboote!479
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "r-vdp/rvdp/specialisation_sort_keys"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This fixes https://github.com/DeterminateSystems/bootspec/issues/147 by vendoring the bootspec crate and changing the type of specialisations from
GenerationtoBootJson.Upstream PR pending: https://github.com/DeterminateSystems/bootspec/pull/207
This means that we now capture the full recursive JSON schema for specialisations, including extensions, while the previous type threw this information away.
This is essential for features like boot counting so that users can set separate sort keys for specialisations, to avoid the boot loader falling back to specialisations when a new generation fails to boot.
Often specialisations are special cases that we don't want to boot automatically, so they can now be sorted below all normal generations so that if a generation fails to boot, the boot loader will fall back onto the previous generation.
CC: @blitz @raitobezarius
Thanks for all the effort here! I wouldn't vendor the bootspec library though unless there is a clear sign that upstream and us have some unresolvable issues. Let's give the upstream PR a bit of time!
Yeah, @RaitoBezarius suggested on matrix to vendor this crate when I discussed the issue with specialisation sort keys with him. He mentioned that there is some other lanzaboote-related work already in the pipeline that would also likely require either vendoring this crate or switching upstreams.
I don't know the details though, so I just followed his suggestion.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.