summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2017-07-03 13:10:43 +0200
committerDanny Milosavljevic <dannym@scratchpost.org>2017-07-03 15:07:25 +0200
commit1feb3076cb30e0c1ce1cf435b859e515b0e1c574 (patch)
tree3e2a95cb6a5a40da696e90bec3ef1188fadbb64a
parent1ec0c1f30ee93bd4224cffe0afb4be54fe8c3eb0 (diff)
build: Allow specifying volume-uuid with make-iso9660-image.
* gnu/build/file-systems.scm (iso9660-uuid->string): Export. * gnu/build/vm.scm (make-iso9660-image): Add volume-uuid.
-rw-r--r--gnu/build/file-systems.scm1
-rw-r--r--gnu/build/vm.scm19
2 files changed, 15 insertions, 5 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 16160a659b..b6930497d6 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -48,6 +48,7 @@
string->ext3-uuid
string->ext4-uuid
string->btrfs-uuid
+ iso9660-uuid->string
bind-mount
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 860c98346d..4239bc2fba 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -353,18 +353,27 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation."
(error "failed to create GRUB EFI image"))))
(define* (make-iso9660-image grub config-file os-drv target
- #:key (volume-id "GuixSD"))
+ #:key (volume-id "GuixSD") (volume-uuid #f))
"Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as
Grub configuration and OS-DRV as the stuff in it."
(let ((grub-mkrescue (string-append grub "/bin/grub-mkrescue")))
(mkdir-p "/tmp/root/var/run")
(mkdir-p "/tmp/root/run")
- (unless (zero? (system* grub-mkrescue "-o" target
- (string-append "boot/grub/grub.cfg=" config-file)
- (string-append "gnu/store=" os-drv "/..")
+ (unless (zero? (apply system*
+ `(,grub-mkrescue "-o" ,target
+ ,(string-append "boot/grub/grub.cfg=" config-file)
+ ,(string-append "gnu/store=" os-drv "/..")
"var=/tmp/root/var"
"run=/tmp/root/run"
- "--" "-volid" (string-upcase volume-id)))
+ "--"
+ "-volid" ,(string-upcase volume-id)
+ ,@(if volume-uuid
+ `("-volume_date" "uuid"
+ ,(string-filter (lambda (value)
+ (not (char=? #\- value)))
+ (iso9660-uuid->string
+ volume-uuid)))
+ `()))))
(error "failed to create ISO image"))))
(define* (initialize-hard-disk device