guix/guix
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
..
build Add some missing header comment header comments. 2024-09-08 02:00:00 +02:00
build-system build-system: linux-module: Fix cross-compiling. 2024-09-19 12:50:19 +02:00
import Revert "import: crate: Emit new-style package inputs." 2024-09-19 12:41:54 +02:00
platforms guix: Add xtensa-ath9k-elf platform. 2024-04-17 12:13:02 +02:00
scripts gnu: Core bootloader changes. 2024-10-08 10:36:38 -04:00
store deduplication: Detect holes and create sparse files. 2024-05-25 16:44:42 +02:00
tests
android-repo-download.scm
avahi.scm
base16.scm
base32.scm
base64.scm
build-system.scm
bzr-download.scm download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable. 2024-03-09 18:55:50 +01:00
cache.scm cache: Avoid cache cleanup storms from concurrent processes. 2024-08-21 00:52:39 +02:00
channels.scm guix: channels: Enable specifiying available builtin builders. 2024-07-18 11:18:29 +01:00
ci.scm ci: Catch error for unreachable channel with substitutes. 2024-07-23 16:24:38 +02:00
colors.scm
combinators.scm
config.scm.in build: Add dependency on Git. 2023-09-26 17:36:58 +02:00
cpio.scm
cpu.scm guix: cpu: Add detection for znver5. 2024-09-30 13:38:33 +03:00
cve.scm
cvs-download.scm download: Honor ‘GUIX_DOWNLOAD_METHODS’ environment variable. 2024-03-09 18:55:50 +01:00
d3.v3.js
deprecation.scm deprecation: Fix docstring typo. 2023-12-22 17:47:15 +01:00
derivations.scm Autoload (gcrypt hash). 2024-04-15 22:36:42 +02:00
describe.scm describe: Try harder to find the ‘guix pull’ profile. 2024-03-19 17:02:14 +01:00
diagnostics.scm
discovery.scm Autoload (guix build syscalls). 2024-04-15 22:36:42 +02:00
docker.scm guix: docker: Build layered images. 2024-01-08 21:04:44 +03:00
download.scm guix: Delay loading of (gnutls). 2024-04-15 22:36:42 +02:00
elf.scm
ftp-client.scm
gexp.scm gexp: ‘imported-files’ does not create symlinks. 2024-09-16 00:16:20 +02:00
git-authenticate.scm
git-download.scm git-download: Use C.UTF-8 and remove dependency on ‘glibc-utf8-locales’. 2024-08-31 10:44:46 +02:00
git.scm git: Remove untracked files from cached checkouts. 2024-07-18 17:31:19 +02:00
glob.scm
gnu-maintenance.scm gnu-maintenance: Support URI list of mixed mirrors, HTTP URLs. 2023-09-11 23:39:13 -04:00
gnupg.scm
grafts.scm grafts: Use C.UTF-8 and remove dependency on ‘glibc-utf8-locales’. 2024-08-31 10:44:46 +02:00
graph.js
graph.scm
hash.scm scripts: hash: Handle repository with different VCS folders. 2024-07-23 16:27:27 +02:00
hg-download.scm hg-download: Pass strings to ‘hg-fetch’. 2024-06-12 09:45:44 +02:00
http-client.scm
i18n.scm
inferior.scm inferior: Use the host built-in-builders with inferior. 2024-07-18 11:18:29 +01:00
ipfs.scm
least-authority.scm least-authority: Add support for changing UIDs/GIDs before exec. 2023-12-22 00:31:41 +01:00
licenses.scm
lint.scm lint: Check for minimal variants. 2024-09-29 14:38:57 +03:00
man-db.scm man-db: Correctly resolve man page links. 2024-09-30 22:52:23 +02:00
memoization.scm
modules.scm modules: ‘file-name->module-name’ strips leading “./”. 2024-07-18 17:31:19 +02:00
monad-repl.scm monad-repl: Add REPL commands to inspect package arguments. 2023-12-04 22:26:38 +01:00
monads.scm
nar.scm Autoload (guix build syscalls). 2024-04-15 22:36:42 +02:00
narinfo.scm
openpgp.scm
packages.scm packages: Silence tar's support for --sort check output. 2024-08-31 10:44:40 +02:00
pki.scm
platform.scm guix: platform: Add platform-rust-target. 2023-12-11 13:50:48 +02:00
profiles.scm man-db: Add support for zstd compressed man pages. 2024-08-31 10:44:22 +02:00
profiling.scm
progress.scm tests: Import (guix build syscalls) when (guix build store-copy) is used. 2023-11-25 16:29:25 +01:00
quirks.scm
read-print.scm read-print: Indent ‘privileged-program’ specially. 2024-09-08 02:00:00 +02:00
records.scm guix: records: Add wrap-element procedure. 2024-10-08 10:36:36 -04:00
remote.scm
repl.scm
rpm.scm
scripts.scm Autoload (guix build syscalls). 2024-04-15 22:36:42 +02:00
search-paths.scm search-paths: Swap $C_INCLUDE_PATH and $CPLUS_INCLUDE_PATH. 2024-08-31 10:44:20 +02:00
self.scm self: Remove reference to source. 2024-07-02 10:19:52 +02:00
serialization.scm
sets.scm
ssh.scm ssh: ‘open-ssh-session’ displays the port number upon error. 2024-04-04 15:48:47 +02:00
status.scm
store.scm guix: store: Enable specifying the builtin builders. 2024-07-18 11:18:25 +01:00
substitutes.scm substitutes: Reduce default negative TTL values. 2024-09-16 00:16:21 +02:00
svn-download.scm guix: download-multi-svn-to-store: Allow exporting from base URL. 2024-08-31 10:45:36 +02:00
swh.scm swh: Specify 'extid_version' when looking up by external ID. 2024-06-26 23:56:56 +02:00
tests.scm guix: tests: Increase timeout for test store connection. 2024-08-01 10:32:31 +01:00
transformations.scm transformations: Fix powerpc64le support. 2024-06-11 12:39:44 +03:00
ui.scm gnu: bootloader: Add bootloader-target record and infastructure. 2024-10-08 10:36:36 -04:00
upstream.scm guix: import texlive: Implement auto-updates. 2024-08-31 10:45:32 +02:00
utils.scm guix: utils: Add flatten and flat-map from haunt. 2024-10-08 10:36:36 -04:00
workers.scm