vm: Use a fixed FAT serial number for 'efi.img' in ISO images.

Partly fixes <https://bugs.gnu.org/35283>.

* gnu/build/vm.scm (make-iso9660-image): Set the
'GRUB_FAT_SERIAL_NUMBER' environment variable.
This commit is contained in:
Ludovic Courtès 2019-04-21 00:16:57 +02:00
parent 52b5fe5bcf
commit 605815023c
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 10 additions and 0 deletions

View File

@ -468,6 +468,16 @@ GRUB configuration and OS-DRV as the stuff in it."
(time-second (time-second
(date->time-utc (make-date 0 0 0 0 1 1 1980 0))))) (date->time-utc (make-date 0 0 0 0 1 1 1980 0)))))
;; Our patched 'grub-mkrescue' honors this environment variable and passes
;; it to 'mformat', which makes it the serial number of 'efi.img'. This
;; allows for deterministic builds.
(setenv "GRUB_FAT_SERIAL_NUMBER"
(number->string (if volume-uuid
(string-hash (iso9660-uuid->string volume-uuid)
(expt 2 32))
#x77777777)
16))
(let ((pipe (let ((pipe
(apply open-pipe* OPEN_WRITE (apply open-pipe* OPEN_WRITE
grub-mkrescue "-o" target grub-mkrescue "-o" target