[RFC 0125]: Use an intermediary representation (bootspec) for bootloader backends by grahamc · Pull Request #125 · NixOS/rfcs

@grahamc

…r backends

Bootspec is a set of memoized facts about a system's closure.
These facts are used as the primary input for bootloader backends like
systemd-boot and grub, for creating files in `/boot/loader/entries/`
and `grub.cfg`.

In this proposal we create a stable, comprehensive, and machine-parsable
definition of a NixOS Generation as an intermediate representation (IR)
between the NixOS system definition and the bootloader management tools.

@grahamc mentioned this pull request

May 9, 2022

14 tasks

grahamc

ryantm

7c6f434c

Hoverbear

roosemberth

06kellyjac

K900

This was referenced

May 17, 2022

grahamc

@grahamc

@grahamc

@grahamc

@grahamc

@grahamc

@grahamc

…ghtly by integrating bootspec

cole-h

lheckemann

@edolstra edolstra changed the title RFC 0125: Use an intermediary representation (bootspec) for bootloader backends [RFC 0125]: Use an intermediary representation (bootspec) for bootloader backends

May 27, 2022

@cole-h

Relocate to $out/boot.json, top-level key of specification version

GovanifY

RaitoBezarius

lheckemann

Ma27

Ma27 approved these changes Mar 23, 2023

RaitoBezarius added a commit to RaitoBezarius/nixos-rfcs that referenced this pull request

Nov 1, 2023
This introduces the second revision of RFC-0125, Bootspec,
addressing the feedback we received in NixOS#125
and building on our experience of Bootspec v1.

RaitoBezarius added a commit to RaitoBezarius/nixos-rfcs that referenced this pull request

Nov 15, 2023
This introduces the second revision of RFC-0125, Bootspec,
addressing the feedback we received in NixOS#125
and building on our experience of Bootspec v1.

RaitoBezarius added a commit to RaitoBezarius/nixos-rfcs that referenced this pull request

Dec 9, 2023
This introduces the second revision of RFC-0125, Bootspec,
addressing the feedback we received in NixOS#125
and building on our experience of Bootspec v1.

RaitoBezarius added a commit to RaitoBezarius/nixos-rfcs that referenced this pull request

Dec 16, 2023
This introduces the second revision of RFC-0125, Bootspec,
addressing the feedback we received in NixOS#125
and building on our experience of Bootspec v1.

KAction pushed a commit to KAction/rfcs that referenced this pull request

Apr 13, 2024
…der backends (NixOS#125)

* RFC 0125: Use an intermediary representation (bootspec) for bootloader backends

Bootspec is a set of memoized facts about a system's closure.
These facts are used as the primary input for bootloader backends like
systemd-boot and grub, for creating files in `/boot/loader/entries/`
and `grub.cfg`.

In this proposal we create a stable, comprehensive, and machine-parsable
definition of a NixOS Generation as an intermediate representation (IR)
between the NixOS system definition and the bootloader management tools.

* bootspec: relocate to $out/bootspec/boot.v1.json

* Clarify that this document describes bootspec v1

* Note that the filename must match the contained schemaVersion.

* Replace the specialisation's pointer to a bootspec with the full bootspec document

* Clarify the 'to interface with' bit

* Link to the bootspec implementation PR

* Note it is likely for bootloader backends to change their results slightly by integrating bootspec

* Relocate to $out/boot.json, top-level key of specification version

* Fix nits from code review

Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
Co-authored-by: Linus Heckemann <git@sphalerite.org>

* 0125-bootspec: add the shepherd team and leader

Co-authored-by: Kevin Cox <kevincox@kevincox.ca>

* 0125-bootspec: initrd is optional, add system, extensions, clarify the meaning of optional

* PR: address comments (1)

Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>

* PR: address comments (2)

Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>

* Update RFC text with changes agreed on with RaitoBezarius

---------

Co-authored-by: Cole Helbling <cole.helbling@determinate.systems>
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
Co-authored-by: Linus Heckemann <git@sphalerite.org>
Co-authored-by: Kevin Cox <kevincox@kevincox.ca>
Co-authored-by: Raito Bezarius <masterancpp@gmail.com>