diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-08-03 00:07:06 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-08-03 00:07:06 +0200 |
commit | 10618627bfe210f4ec84ab3018f12840704a11e0 (patch) | |
tree | cd04aeec151c987a2f2178ce9a0a027ae244b468 | |
parent | 9d1e56b76dc225373598d8d92c9d5f75eeba49ee (diff) | |
download | patches-10618627bfe210f4ec84ab3018f12840704a11e0.tar patches-10618627bfe210f4ec84ab3018f12840704a11e0.tar.gz |
mapped-devices: raid-device-mapping: Avoid non-top-level 'use-modules'.
Fixes <http://bugs.gnu.org/24135>.
Reported by myglc2 <myglc2@gmail.com>.
* gnu/system/mapped-devices.scm (open-raid-device): Avoid non-top-level
'use-modules' form.
-rw-r--r-- | gnu/system/mapped-devices.scm | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm index ce0a78a2ad..7b91fcfc41 100644 --- a/gnu/system/mapped-devices.scm +++ b/gnu/system/mapped-devices.scm @@ -131,23 +131,26 @@ (define (open-raid-device sources target) "Return a gexp that assembles SOURCES (a list of devices) to the RAID device TARGET (e.g., \"/dev/md0\"), using 'mdadm'." - #~(begin - (use-modules (srfi srfi-1) (ice-9 format)) - - (let ((sources '#$sources)) - (let loop ((attempts 0)) - (unless (every file-exists? sources) - (when (> attempts 20) - (error "RAID devices did not show up; bailing out" - sources)) - - (format #t "waiting for RAID source devices~{ ~a~}...~%" - sources) - (sleep 1) - (loop (+ 1 attempts)))) - - (zero? (system* (string-append #$mdadm "/sbin/mdadm") - "--assemble" #$target sources))))) + #~(let ((sources '#$sources) + + ;; XXX: We're not at the top level here. We could use a + ;; non-top-level 'use-modules' form but that doesn't work when the + ;; code is eval'd, like the Shepherd does. + (every (@ (srfi srfi-1) every)) + (format (@ (ice-9 format) format))) + (let loop ((attempts 0)) + (unless (every file-exists? sources) + (when (> attempts 20) + (error "RAID devices did not show up; bailing out" + sources)) + + (format #t "waiting for RAID source devices~{ ~a~}...~%" + sources) + (sleep 1) + (loop (+ 1 attempts)))) + + (zero? (system* (string-append #$mdadm "/sbin/mdadm") + "--assemble" #$target sources)))) (define (close-raid-device sources target) "Return a gexp that stops the RAID device TARGET." |