summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-04-20 22:34:28 +0200
committerLudovic Courtès <ludo@gnu.org>2019-04-21 00:51:18 +0200
commit6901b9248ea21f81f033e7b0de32502e389a5b71 (patch)
treef3aca59c6648a5125f2b7fb74b309eb8ea1e382a
parent833480cc1fa934b64a192fe7b2401491d4f169df (diff)
vm: Reset file timestamps of the EFI image in ISO images.
Partly fixes <https://bugs.gnu.org/35283>. * gnu/build/vm.scm (make-iso9660-image): Set the 'SOURCE_DATE_EPOCH' environment variable.
-rw-r--r--gnu/build/vm.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 75f1394d1a..a63a5d2eea 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -37,6 +37,7 @@
#:use-module (ice-9 popen)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
+ #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:export (qemu-command
load-in-linux-vm
@@ -458,6 +459,15 @@ GRUB configuration and OS-DRV as the stuff in it."
closures)
(register-bootcfg-root "/tmp/root" config-file))
+ ;; 'grub-mkrescue' calls out to mtools programs to create 'efi.img', a FAT
+ ;; file system image, and mtools honors SOURCE_DATE_EPOCH for the mtime of
+ ;; those files. The epoch for FAT is Jan. 1st 1980, not 1970, so choose
+ ;; that.
+ (setenv "SOURCE_DATE_EPOCH"
+ (number->string
+ (time-second
+ (date->time-utc (make-date 0 0 0 0 1 1 1980 0)))))
+
(let ((pipe
(apply open-pipe* OPEN_WRITE
grub-mkrescue "-o" target