guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#27521] [PATCH] build: Allow specifying volume-uuid with make-iso966


From: Ludovic Courtès
Subject: [bug#27521] [PATCH] build: Allow specifying volume-uuid with make-iso9660-image.
Date: Mon, 03 Jul 2017 13:58:35 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Danny Milosavljevic <address@hidden> skribis:

> * gnu/build/file-systems.scm (iso9660-uuid->string): Export.
> * gnu/build/vm.scm (make-iso9660-image): Add volume-uuid.
> ---
>  gnu/build/file-systems.scm |  1 +
>  gnu/build/vm.scm           | 19 ++++++++++++++-----
>  2 files changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
> index 16160a659..b6930497d 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 860c98346..4239bc2fb 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)))

This last part can be written:

  (string-filter (char-set-complement (char-set #\/)) …)

though that’s not really more concise…

LGTM!

Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]