diff options
author | Mathieu Othacehe <m.othacehe@gmail.com> | 2017-12-05 12:59:15 +0100 |
---|---|---|
committer | Mathieu Othacehe <m.othacehe@gmail.com> | 2017-12-15 11:52:38 +0100 |
commit | e22482038611a53a9d2b25df20363664cd91be2e (patch) | |
tree | da53181cdbbe40b8035fdc577b0767e8055c9681 /gnu/bootloader | |
parent | acf54bca225b63f5b06e335a55045421c47bbd09 (diff) | |
download | guix-e22482038611a53a9d2b25df20363664cd91be2e.tar guix-e22482038611a53a9d2b25df20363664cd91be2e.tar.gz |
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.
Diffstat (limited to 'gnu/bootloader')
-rw-r--r-- | gnu/bootloader/extlinux.scm | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index 9b6e2c7f2a..f7820a37a4 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -20,6 +20,7 @@ (define-module (gnu bootloader extlinux) #:use-module (gnu bootloader) #:use-module (gnu system) + #:use-module (gnu build bootloader) #:use-module (gnu packages bootloaders) #:use-module (guix gexp) #:use-module (guix monads) @@ -95,13 +96,8 @@ TIMEOUT ~a~%" (find-files syslinux-dir "\\.c32$")) (unless (and (zero? (system* extlinux "--install" install-dir)) - (call-with-input-file (string-append syslinux-dir "/" #$mbr) - (lambda (input) - (let ((bv (get-bytevector-n input 440))) - (call-with-output-file device - (lambda (output) - (put-bytevector output bv)) - #:binary #t))))) + (write-file-on-device + (string-append syslinux-dir "/" #$mbr) 440 device 0)) (error "failed to install SYSLINUX"))))) (define install-extlinux-mbr |