Commit graph

61 commits

Author SHA1 Message Date
Ludovic Courtès
8cf7dd24ab
bootloader: grub: Refer to the native 'grub-mklayout' and font file.
* gnu/bootloader/grub.scm (eye-candy): Refer to the native FONT-FILE.
(keyboard-layout-file): Refer to the native 'grub-mklayout'.
2020-05-16 00:34:40 +02:00
Marius Bakke
030f6f489f
Merge branch 'master' into core-updates
Conflicts:
	etc/news.scm
	gnu/local.mk
	gnu/packages/bootloaders.scm
	gnu/packages/linphone.scm
	gnu/packages/linux.scm
	gnu/packages/tls.scm
	gnu/system.scm
2020-04-23 13:33:09 +02:00
Vagrant Cascadian
5327b399a8
gnu: Add u-boot-pinebook-pro-rk3399.
* gnu/packages/bootloaders (u-boot-pinebook-pro-rk3399): New variable.
* gnu/packages/patches/u-boot-DT-for-Pinebook-Pro.patch: New file.
* gnu/packages/patches/u-boot-add-boe-nv140fhmn49-display.patch: New file.
* gnu/packages/patches/u-boot-gpio-keys-binding-cons.patch: New file.
* gnu/packages/patches/u-boot-leds-common-binding-con.patch: New file.
* gnu/packages/patches/u-boot-support-Pinebook-Pro-laptop.patch: New file.
* gnu/packages/patches/u-boot-video-rockchip-fix-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add new patches.
* gnu/bootloader/u-boot.scm (install-pinebook-pro-rk3399-u-boot,
  u-boot-pinebook-pro-rk3399-bootloader): New variable.

Co-authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
2020-04-20 19:13:35 -07:00
Marius Bakke
2778302399
Merge branch 'master' into core-updates
Conflicts:
	etc/news.scm
	gnu/local.mk
	gnu/packages/check.scm
	gnu/packages/cross-base.scm
	gnu/packages/gimp.scm
	gnu/packages/java.scm
	gnu/packages/mail.scm
	gnu/packages/sdl.scm
	gnu/packages/texinfo.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
2020-04-08 13:00:50 +02:00
Ludovic Courtès
2729cb406d
system: Allow for comma-separated keyboard layouts.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

* gnu/bootloader/grub.scm (keyboard-layout-file): Replace commas with
hyphens in the first argument to 'computed-file'.
* gnu/system/keyboard.scm (keyboard-layout->console-keymap): Likewise.
* doc/guix.texi (Keyboard Layout): Add example.
2020-04-06 00:14:13 +02:00
Jan Nieuwenhuizen
6a790fe349
gnu: bootloader: Add grub-minimal-bootloader.
* gnu/bootloader/grub.scm (grub-minimal-bootloader): New variable.
2020-03-29 15:31:18 +02:00
Maxim Cournoyer
6794653e1b
bootloader: grub: Refactor eye-candy a bit.
* gnu/bootloader/grub.scm (eye-candy)[setup-gfxterm-body]: Define the GFXMODE
binding using AND-LET* instead of chained AND=>.  Add a comment about
supporting graphical mode on other systems than x86.  Generate configuration
string using FORMAT rather than STRING-APPEND.
2020-03-17 23:09:14 -04:00
Maxim Cournoyer
aaffde38b5
bootloader: grub: Use the all_video module in graphic mode.
* gnu/bootloader/grub.scm (eye-candy): Load the module 'all_video'
which automatically loads all the available and relevant video
modules.
2020-03-17 23:08:16 -04:00
Julien Lepiller
079901d7df
gnu: Add u-boot-cubietruck-bootloader.
* gnu/bootloader/u-boot.scm (u-boot-cubietrack-bootloader): New
variable.
2020-02-02 00:37:27 +01:00
Jan Nieuwenhuizen
f52fe7c3f2
bootloader: grub: Add gfxmode (resolution) override.
* gnu/bootloader/grub.scm (<grub-theme>): Add `gfxmode' entry.
(eye-candy): Use it.
* doc/guix.texi (Bootloader Configuration): Document it.
2020-01-25 16:09:12 +01:00
Tobias Geerinckx-Rice
8e8d45e6ac
Revert "bootloader: grub: Add gfxmode (resolution) override."
This reverts commit a23091880d.
It causes ‘guix pull’ to fail: <https://paste.debian.net/plain/1125061>.
2020-01-07 23:31:44 +01:00
Jan Nieuwenhuizen
a23091880d
bootloader: grub: Add gfxmode (resolution) override.
* gnu/bootloader/grub.scm (<grub-theme>): Add `gfxmode' entry.
(eye-candy): Use it.
* doc/guix.texi (Bootloader Configuration): Document it.
2020-01-07 21:26:28 +01:00
Ludovic Courtès
6a7c4636d4
Adjust module autoloads.
In Guile < 2.9.7, autoloading a module would give you access to all its
bindings.  In future versions, autoloading a module gives access only to
the listed bindings, as per #:select (see <https://bugs.gnu.org/38895>).

This commit adjusts autoloads to the new semantics, allowing Guix to be
built with Guile 2.9.7/2.9.8.

* guix/build/download.scm <top level>: Remove call to 'module-autoload!'.
(load-gnutls): New procedure.
(tls-wrap): Call it.
* guix/git.scm <top level>: Remove call to 'module-autoload!'.
(load-git-submodules): New procedure.
(update-submodules): Call it instead of 'resolve-interface'.
* gnu/bootloader/grub.scm: Replace #:autoload with #:use-module.
* gnu/packages.scm: Likewise.
* gnu/packages/ssh.scm: Likewise.
* gnu/packages/tex.scm: Likewise.
* gnu/services/cuirass.scm: Likewise.
* gnu/services/mcron.scm: Likewise.
* guix/lint.scm: Augment list of bindings in #:autoload.
* guix/scripts/build.scm: Likewise.
* guix/scripts/gc.scm: Likewise.
* guix/scripts/pack.scm: Likewise.
* guix/scripts/publish.scm: Likewise.
* guix/scripts/pull.scm: Likewise.
* guix/utils.scm: Remove unnecessary #:autoload clauses; replace one
of them with #:use-module.
2020-01-06 16:31:54 +01:00
Ludovic Courtès
9512ba6b09
bootloader: Mark "grub.cfg" and "extlinux.conf" as non-substitutable.
Suggested by <pkill9@runbox.com>.

* gnu/bootloader/grub.scm (grub-configuration-file): Pass #:options to
'computed-file'.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise.
2020-01-03 16:06:26 +01:00
Brice Waegeneire
b0d09586b1
bootloader: grub: Add firmware setup entry.
* gnu/bootloader/grub.scm (grub-configuration-file): Add 'Firmware
setup' entry for EFI platform.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-12-23 09:28:42 +01:00
Mathieu Othacehe
94de8d0a7f
gnu: Add u-boot-pine64-lts-bootloader.
* gnu/bootloader/u-boot.scm (u-boot-pine64-lts-bootloader): New variable.
2019-12-14 17:41:10 +01:00
Vagrant Cascadian
545ff7b784
gnu: Add u-boot-firefly-rk3399.
* gnu/packages/bootloaders (u-boot-firefly-rk3399): New variable.
* gnu/bootloader/u-boot (install-firefly-rk3399-u-boot): New variable.
  (u-boot-firefly-rk3399-bootloader): New variable.
* gnu/system/install (define firefly-rk3399-installation-os): New variable.
2019-10-18 15:48:18 -07:00
Vagrant Cascadian
2fce14af24
gnu: Add u-boot-rock64-rk3328.
* gnu/packages/bootloaders (u-boot-rock64-rk3328): New variable.
* gnu/bootloader/u-boot (install-rock64-rk3328-u-boot): New variable.
  (u-boot-rock64-rk3328-bootloader): New variable.
* gnu/system/install (define rock64-installation-os): New variable.
2019-10-18 13:32:25 -07:00
Caliph Nomble
fa7470189e
gnu: Add u-boot-rockpro64-rk3399
* gnu/packages/bootloaders.scm (u-boot-rockpro64-rk3399): New exported
  variable.
  (u-boot-2019.10): New variable.
* gnu/bootloader/u-boot.scm (u-boot-rockpro64-rk3399-bootloader): New exported
  variable.
  (install-rockpro64-rk3399-u-boot): New variable.
* gnu/system/install.scm (rockpro64-installation-os): New exported variable.

Adjusted-by: Vagrant Cascadian <vagrant@debian.org>
Signed-off-by: Caliph Nomble <nomble@palism.com>
Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
2019-10-18 13:32:09 -07:00
Ludovic Courtès
cae0725b80
bootloader: grub: Remove unneeded 'terminal_output'.
Fixes <https://bugs.gnu.org/35585>.
Reported by Florian Pelz <pelzflorian@pelzflorian.de>.

This statement was added in 8d058e7b1b but
turned out to be unnecessary.

* gnu/bootloader/grub.scm (grub-configuration-file): Remove
'terminal_output' statement.
2019-05-09 12:11:36 +02:00
Vagrant Cascadian
6b99afeef8
gnu: u-boot: Update to 2019.04.
* gnu/packages/bootloaders.scm (u-boot): Update to 2019.04.
[source]: Add patch.
(u-boot-novena): Update dynamic patch to handle config key rename.
(u-boot-am335x-evm): New variable.
(u-boot-am335x-boneblack): Build with modified am335x-evm config.
(u-boot-novena): Fix typo in description.
* gnu/bootloader/u-boot.scm (u-boot-beaglebone-black-bootloader): Use
u-boot-am335x-boneblack.
* gnu/packages/patches/u-boot-fix-mkimage-header-verification.patch: New file.
* gnu/local.mk (dist_patch_DATA): Update accordingly.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2019-04-29 12:35:04 +02:00
Timothy Sample
96c90474c0
gnu: Add configuration for depthcharge bootloader.
* gnu/bootloader/depthcharge: New file.
* gnu/local.mk [GNU_SYSTEM_MODULES]: Adjust accordingly.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-04-03 18:21:42 +02:00
Ludovic Courtès
8d058e7b1b
bootloader: Add a 'keyboard-layout' field.
* gnu/bootloader/grub.scm (keyboard-layout-file): New procedure.
(grub-configuration-file)[keyboard-layout-file]: New variable.
[builder]: Use it.
* gnu/bootloader.scm (<bootloader-configuration>)[keyboard-layout]: New
field.
* doc/guix.texi (Bootloader Configuration): Document it.

Co-authored-by: nee <nee-git@hidamari.blue>
2019-03-24 23:06:11 +01:00
Ludovic Courtès
21fcfe1ee9
bootloader: Use 'invoke/quiet' when running 'grub-install' and co.
This hides potentially confusing GRUB messages from the user, such as
"Installing for i386-pc platform."

* gnu/bootloader/extlinux.scm (install-extlinux): Use 'invoke/quiet'
instead of 'system*' and 'error'.
* gnu/bootloader/grub.scm (install-grub, install-grub-efi): Likewise.
* guix/scripts/system.scm (bootloader-installer-script): Guard against
'message-condition?' and handle them properly.
2019-03-16 18:15:13 +01:00
Ludovic Courtès
59e8044588
Remove traces of "GuixSD".
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
2019-03-13 23:12:43 +01:00
Vagrant Cascadian
74e35e8c94
gnu: Add u-boot-pinebook.
* gnu/packages/patches/u-boot-pinebook-a64-update-dts.patch: New file.
* gnu/packages/patches/u-boot-pinebook-syscon-node.patch: New file.
* gnu/packages/patches/u-boot-pinebook-mmc-calibration.patch: New file.
* gnu/packages/patches/u-boot-pinebook-video-bridge.patch: New file.
* gnu/packages/patches/u-boot-pinebook-r_i2c-controller.patch: New file.
* gnu/packages/patches/u-boot-pinebook-dts.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/bootloaders.scm (u-boot-pinebook): New exported variable.
* gnu/bootloader/u-boot.scm (u-boot-pinebook-bootloader): New exported
variable.
* gnu/system/install.scm (pinebook-installation-os): New exported variable.
2018-11-22 21:59:05 +01:00
Ludovic Courtès
46c296dcc4
bootloader: De-monadify configuration file generators.
* gnu/bootloader/extlinux.scm: Remove unneeded imports.
(extlinux-configuration-file): Use 'computed-file' instead of
'gexp->derivation'.
* gnu/bootloader/grub.scm (svg->png): Likewise.
(grub-background-image, eye-candy): Adjust accordingly, return
non-monadically.
(grub-configuration-file): Likewise, and use 'computed-file' instead of
'gexp->derivation'.
* gnu/bootloader/u-boot.scm: Remove unneeded imports.
* gnu/system.scm: Add 'lower-object' call.
2018-11-18 23:37:44 +01:00
Danny Milosavljevic
e830c9d0b0
gnu: Rename "banana-pi" to "bananapi".
* gnu/bootloader/u-boot.scm (u-boot-banana-pi-m2-ultra-bootloader): Rename
to...
(u-boot-bananapi-m2-ultra-bootloader): ...this.
* gnu/packages/bootloaders.scm (u-boot-banana-pi-m2-ultra): Rename to...
(u-boot-bananapi-m2-ultra): ...this.
* gnu/system/install.scm (banana-pi-m2-ultra-installation-os): Rename to...
(bananapi-m2-ultra-installation-os): ...this.
2018-09-14 21:31:24 +02:00
Marius Bakke
683016907d
bootloader: grub-efi: Identify as "GuixSD" instead of "grub".
* gnu/bootloader/grub.scm (install-grub-efi): Pass "--bootloader-id" to grub-install.
2018-06-26 17:27:40 +02:00
Marius Bakke
aa5a549c65
bootloader: grub-efi: Support EFI directories relative to MOUNT-POINT.
* gnu/bootloader/grub.scm (install-grub-efi): When MOUNT-POINT/EFI-DIR exists,
install there rather than EFI-DIR directly.
2018-06-26 17:27:40 +02:00
Ludovic Courtès
33d8a87104
bootloader: grub: Use 'with-extensions'.
* gnu/bootloader/grub.scm (svg->png): Use 'with-extensions'.  Remove
'add-to-load-path' calls.
* gnu/build/svg.scm: Use (rsvg) and (cairo) the normal way.  Remove
'module-autoload!' calls.
2018-06-01 15:21:28 +02:00
Ludovic Courtès
31a5d694a3
bootloader: grub: Simplify 'svg->png'.
* gnu/bootloader/grub.scm (svg->png): Remove now unneeded
  #:guile-for-build argument.
2018-06-01 15:21:28 +02:00
Vagrant Cascadian
6fe1657705
system: Add u-boot-puma-rk3399.
* gnu/packages/bootloaders.scm (u-boot-puma-rk3399): New variable.
(make-u-boot-package)[arguments]: Add '.rksd' files to the files installed
during custom 'install phase.
* gnu/bootloader/u-boot.scm (u-boot-puma-rk3399-bootloader):
New exported variable.
* gnu/system/install.scm (rk3399-puma-installation-os):
New exported variable.
* gnu/packages/firmware.scm (arm-trusted-firmware-puma-rk3399): New variable.
(rk3399-cortex-m0): New variable.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2018-05-29 10:46:13 +02:00
Ludovic Courtès
a5acc17a3c
file-systems: Remove 'title' field and add <file-system-label>.
The 'title' field was easily overlooked and was an endless source of
confusion.  Now, the value of the 'device' field is self-contained.

* gnu/system/file-systems.scm (<file-system>): Change constructor name
to '%file-system'.
[title]: Remove.
(<file-system-label>): New record type with printer.
(report-deprecation, device-expression)
(process-file-system-declaration, file-system): New macros.
(file-system-title): New procedure.
(file-system->spec, spec->file-system): Adjust to handle
<file-system-label>.
* gnu/system.scm (bootable-kernel-arguments): Add case for
'file-system-label?'.
(read-boot-parameters): Likewise.
(mapped-device-user): Avoid 'file-system-title'.
(fs->boot-device): Remove.
(operating-system-boot-parameters): Use 'file-system-device' instead of
'fs->boot-device'.
(device->sexp): Add case for 'file-system-label?'.
* gnu/bootloader/grub.scm (grub-root-search): Add case for
'file-system-label?'.
* gnu/system/examples/bare-bones.tmpl,
gnu/system/examples/beaglebone-black.tmpl,
gnu/system/examples/lightweight-desktop.tmpl,
gnu/system/examples/vm-image.tmpl: Remove uses of 'title'.
* gnu/system/vm.scm (virtualized-operating-system): Remove uses of
'file-system-title'.
* guix/scripts/system.scm (check-file-system-availability): Likewise,
and adjust fix-it hint.
(check-initrd-modules)[file-system-/dev]: Likewise.
* gnu/build/file-systems.scm (canonicalize-device-spec): Remove 'title'
parameter.
[canonical-title]: Remove.
Match on SPEC's type rather than on CANONICAL-TITLE.
(mount-file-system): Adjust caller.
* gnu/build/linux-boot.scm (boot-system): Interpret ROOT here.
* gnu/services/base.scm (file-system->fstab-entry): Remove use of
'file-system-title'.
* doc/guix.texi (File Systems): Remove documentation of the 'title'
field.  Rewrite documentation of 'device' and document
'file-system-label'.
2018-05-28 13:24:11 +02:00
Vagrant Cascadian
9f7d666566
system: Add u-boot-pine64-plus installer.
* gnu/bootloader/u-boot.scm (u-boot-pine64-plus-bootloader):
New exported variable.
* gnu/system/install.scm (pine64-plus-installation-os):
New exported variable.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2018-05-18 20:21:30 +02:00
Vagrant Cascadian
afca98ff01
bootloader: extlinux: Fix menu support with u-boot.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Set MENU TITLE in
generated extlinux.conf.

Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
2018-05-12 09:37:35 +02:00
Vagrant Cascadian
1b960787e2
system: Add u-boot-novena installer.
* gnu/packages/bootloaders.scm (u-boot-novena):
  New variable.
* gnu/bootloader/u-boot.scm (u-boot-novena-bootloader):
  New exported variable.
* gnu/system/install.scm (novena-installation-os):
  New exported variable.
2018-05-11 12:25:43 +02:00
Vagrant Cascadian
fd5536e32b
system: Add wandboard installer.
* gnu/bootloader/u-boot.scm (u-boot-wandboard-bootloader):
  New exported variable.
* gnu/system/install.scm (wandboard-installation-os):
  New exported variable.
2018-05-11 12:25:25 +02:00
Vagrant Cascadian
07ca90458f
system: Add mx6cuboxi installer.
* gnu/bootloader/u-boot.scm (u-boot-mx6cuboxi-bootloader):
  New exported variable.
* gnu/system/install.scm (mx6cuboxi-installation-os):
  New exported variable.
2018-05-11 12:25:25 +02:00
Ricardo Wurmus
46fc9a7e0d
gnu: Pass "--target=i386-pc" when installing GRUB for legacy BIOS.
* gnu/bootloader/grub.scm (install-grub): Add "--target=i386-pc" to the list
of arguments to "grub-install".

Fixes <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=30311>.
2018-02-18 12:28:56 +01:00
Danny Milosavljevic
c55c698594
system: Add A20 OLinuXino LIME installer.
* gnu/bootloader/u-boot.scm (u-boot-a20-olinuxino-lime-bootloader):
New exported variable.
* gnu/packages/bootloaders.scm (u-boot-a20-olinuxino-lime):
New exported variable.
* gnu/system/install.scm (a20-olinuxino-lime-installation-os):
New exported variable.
2018-01-22 22:53:08 +01:00
Danny Milosavljevic
84ee33787e
system: Add Nintendo NES Classic Edition installer.
* gnu/bootloader/u-boot.scm (u-boot-nintendo-nes-classic-edition-bootloader):
New exported variable.
* gnu/packages/bootloaders.scm (u-boot-nintendo-nes-classic-edition):
New exported variable.
* gnu/system/install.scm (nintendo-nes-classic-edition-installation-os):
New exported variable.
2018-01-20 22:50:56 +01:00
Danny Milosavljevic
a7bb327e3c
system: Add A20 OLinuXino MICRO installer.
* gnu/bootloader/u-boot.scm (u-boot-a20-olinuxino-micro-bootloader): New
exported variable.
* gnu/packages/bootloaders.scm (u-boot-a20-olinuxino-micro): New exported
variable.
* gnu/system/install.scm (a20-olinuxino-micro-installation-os): New exported
variable.
2018-01-20 22:50:55 +01:00
Danny Milosavljevic
4b9e9abb36
system: Add A20 OLinuXino LIME2 installer.
* gnu/bootloader/u-boot.scm (u-boot-a20-olinuxino-lime2-bootloader): New
exported variable.
* gnu/packages/bootloaders.scm (u-boot-a20-olinuxino-lime2): New exported
variable.
* gnu/system/install.scm (a20-olinuxino-lime2-emmc-installation-os): New exported
variable.
2018-01-20 22:50:55 +01:00
Danny Milosavljevic
30aeb846d7
system: Add Banana Pi M2 Ultra installer.
* gnu/bootloader/u-boot.scm (u-boot-banana-pi-m2-ultra-bootloader): New
exported variable.
(install-allwinner-u-boot): New variable.
(u-boot-allwinner-bootloader): New variable.
* gnu/packages/bootloaders.scm (u-boot-banana-pi-m2-ultra): New exported
variable.
* gnu/system/install.scm (banana-pi-m2-ultra-installation-os): New exported
variable.
2018-01-20 20:33:10 +01:00
Mathieu Othacehe
ceb3952764
system: Add BeagleBone Black installer.
* gnu/bootloader/u-boot.scm (u-boot-beaglebone-black-bootloader): New exported
  bootloader.
* gnu/system/install.scm (beaglebone-black-installation-os): New exported variable.
2017-12-15 12:15:15 +01:00
Mathieu Othacehe
e224820386
bootloader: Factorize write-file-on-device.
* gnu/bootloader/extlinux.scm (install-extlinux): Factorize bootloader
writing in a new procedure write-file-on-device defined in (gnu build
bootloader).
* gnu/build/bootloader.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add new file.
* gnu/system/vm.scm (qemu-img): Adapt to import and use (gnu build bootloader)
module during derivation building.
* gnu/scripts/system.scm (bootloader-installer-derivation): Ditto.
2017-12-15 11:52:38 +01:00
Mathieu Othacehe
4307397b5e
bootloader: extlinux: Stop using dd binary.
* gnu/bootloader/extlinux.scm (dd): Remove it,
(install-extlinux): replace dd call by Guile I/O procedures.
* gnu/system/vm.scm (qemu-image): Add (ice-9 binary-ports) to used-modules
list to provide "get-bytevector-n" and "put-bytevector".
* guix/scripts/system.scm (bootloader-installer-derivation): Ditto.
2017-12-04 18:26:59 +01:00
Mathieu Othacehe
be07cc4549
bootloader: extlinux: Fix device tree path.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Use kernel
  directory to format device tree file path.
2017-11-23 20:07:04 +01:00
Ludovic Courtès
9b336338cd
system: Introduce a disjoint UUID type.
Conceptually a UUID is just a bytevector.  However, there's software out
there such as GRUB that relies on the string representation of different
UUID types (e.g., the string representation of DCE UUIDs differs from
that of ISO-9660 UUIDs, even if they are actually bytevectors of the
same length).  This new <uuid> record type allows us to preserve
information about the type of UUID so we can eventually convert it to a
string using the right representation.

* gnu/system/uuid.scm (<uuid>): New record type.
(bytevector->uuid): New procedure.
(uuid): Return calls to 'make-uuid'.
(uuid->string): Rewrite using 'match-lambda*' to accept a single 'uuid?'
argument.
* gnu/bootloader/grub.scm (grub-root-search): Check for 'uuid?' instead
of 'bytevector?'.
* gnu/system.scm (bootable-kernel-arguments): Check whether ROOT-DEVICE
is 'uuid?'.
(read-boot-parameters): Use 'bytevector->uuid' when the
store device is a bytevector.
(read-boot-parameters-file): Check for 'uuid?' instead of 'bytevector?'.
(device->sexp): New procedure.
(operating-system-boot-parameters-file): Use it for 'root-device' and
'store'.
(operating-system-bootcfg): Remove conditional in definition of
'root-device'.
* gnu/system/file-systems.scm (file-system->spec): Check for 'uuid?' on
DEVICE and take its bytevector.
* gnu/system/mapped-devices.scm (open-luks-device): Likewise.
* gnu/system/vm.scm (iso9660-image): Call 'uuid-bytevector' for the
 #:volume-uuid argument.
2017-09-11 22:24:46 +02:00