aboutsummaryrefslogtreecommitdiff
path: root/gnu/bootloader
diff options
context:
space:
mode:
authorMathieu Othacehe <m.othacehe@gmail.com>2017-12-05 12:59:15 +0100
committerMathieu Othacehe <m.othacehe@gmail.com>2017-12-15 11:52:38 +0100
commite22482038611a53a9d2b25df20363664cd91be2e (patch)
treeda53181cdbbe40b8035fdc577b0767e8055c9681 /gnu/bootloader
parentacf54bca225b63f5b06e335a55045421c47bbd09 (diff)
downloadgnu-guix-e22482038611a53a9d2b25df20363664cd91be2e.tar
gnu-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.scm10
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