guix/gnu/build
Lilah Tascheter 689cca0c75
gnu: Core bootloader changes.
Sorry this is a massive commit.  It's kinda impossible to split it
without either completely breaking basic functionality or making a buggy
shim layer that's written just to be immediately removed.

But anyway, this is the real body of the bootloader subsystem update.
One of my favorite new things possible with this is easy generation of
disk images using arbitrary bootloaders, including ones that require one
or more data/install partitions, such as p-boot or depthcharge!

* gnu/build/image.scm (initialize-root-partition): Don't install
bootloader here.
(make-iso9660-image): Pull in grub.dir instead of a bootcfg.
* gnu/build/install.scm (install-boot-config): Delete procedure.
* gnu/machine/ssh.scm (deploy-managed-host, roll-back-managed-host): Use
new bootloader system.
(operating-system)[bootloader]: Use wrap-element sanitizer and support
multiple bootloaders.
(operating-system-bootcfg): Rename to...
(operating-system-bootmeta): ...this.  Rewrite to return relevant
information instead of calling the config procedure directly.
(operating-system-boot-parameters): Support multiple bootloaders.
* gnu/system/boot.scm (read-boot-parameters): Support multiple
bootloaders.
* gnu/system/image.scm (root-partition-index): Delete procedure.
(system-disk-image, system-iso9960-image): Support new bootloader system.
(system-disk-image)[targets]: New subprocedure.
* guix/scripts/system.scm (install, install-bootloader-from-provenance,
perform-action): Support multiple bootloaders and work with new
bootloader system instead of bootcfgs.
(display-system-generation): Support multiple bootloaders.
* guix/scripts/system/reconfigure.scm (install-bootloader-program):
Rewrite to simply insert each bootloader's installer in the gexp
directly, instead of copying bootcfgs.
(install-bootloader): Work with new bootloader system.  Just in case,
add install-bootloader.scm to the gc roots too.

Change-Id: I3654d160f7306bb45a78b82ea6b249ff4281f739
2024-10-08 10:36:38 -04:00
..
accounts.scm accounts: Fix typo in comment. 2023-10-12 18:53:06 +02:00
activation.scm activation: Fix TOCTTOU in mkdir-p/perms. 2024-09-06 11:46:26 +02:00
bootloader.scm gnu: bootloader: Install any bootloader to ESP. 2024-10-08 10:36:37 -04:00
chromium-extension.scm chromium-extension: Compute json at argument evaluation time. 2023-12-27 17:18:52 +01:00
cross-toolchain.scm gnu: cross-toolchain: Add set-cross-path for AVR. 2023-12-11 13:36:51 +02:00
dbus-service.scm services: dbus-service, secret-service: Do not cause (fibers) to be loaded. 2023-05-06 17:12:45 +02:00
file-systems.scm file-systems: Add support for exFAT. 2024-09-01 02:00:00 +02:00
hurd-boot.scm hurd-boot: Setup/dev/hdX, /dev/hdXsY IDE device node translators. 2023-10-01 15:51:23 +02:00
icecat-extension.scm gnu: ‘make-icecat-extension’ inherits package location. 2023-12-10 21:46:52 +01:00
image.scm gnu: Core bootloader changes. 2024-10-08 10:36:38 -04:00
install.scm gnu: Core bootloader changes. 2024-10-08 10:36:38 -04:00
jami-service.scm
linux-boot.scm linux-boot: Don't create /root before it's used. 2023-11-19 01:00:00 +01:00
linux-container.scm
linux-initrd.scm
linux-modules.scm gnu: linux-libre: Enable Zstd compression of kernel modules. 2024-05-29 22:01:23 -04:00
locale.scm
marionette.scm marionette: Add #:peek? to ‘wait-for-tcp-port?’. 2024-02-10 22:59:56 +01:00
secret-service.scm services: secret-service: Make the endpoint configurable. 2024-02-10 22:59:43 +01:00
shepherd.scm shepherd: Remove ‘make-forkexec-constructor/container’. 2023-12-22 00:31:42 +01:00
svg.scm