Subject: [PATCH 16/19] install: Use 'reset-timestamps' from (guix store database).

From: Ludovic Courtès <[email-masked]>
Date: Fri, 8 Jun 2018 11:34:48 +0200

* gnu/build/install.scm (reset-timestamps): Remove.
* gnu/build/vm.scm: Use 'reset-timestamps' from (guix store database).
---
 gnu/build/install.scm   | 15 ---------------
 gnu/build/vm.scm        |  1 +
 guix/store/database.scm |  1 -
 3 files changed, 1 insertion(+), 16 deletions(-)

diff --git a/gnu/build/install.scm b/gnu/build/install.scm
index 82eb63d72..5e84cd6f6 100644
--- a/gnu/build/install.scm
+++ b/gnu/build/install.scm
@@ -26,7 +26,6 @@
   #:export (install-boot-config
             evaluate-populate-directive
             populate-root-file-system
-            reset-timestamps
             register-closure
             populate-single-profile-directory))
 
@@ -145,20 +144,6 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM."
                 (try))
               (apply throw args)))))))
 
-(define (reset-timestamps directory)
-  "Reset the timestamps of all the files under DIRECTORY, so that they appear
-as created and modified at the Epoch."
-  (display "clearing file timestamps...\n")
-  (for-each (lambda (file)
-              (let ((s (lstat file)))
-                ;; XXX: Guile uses libc's 'utime' function (not 'futime'), so
-                ;; the timestamp of symlinks cannot be changed, and there are
-                ;; symlinks here pointing to /gnu/store, which is the host,
-                ;; read-only store.
-                (unless (eq? (stat:type s) 'symlink)
-                  (utime file 0 0 0 0))))
-            (find-files directory #:directories? #t)))
-
 (define* (register-closure prefix closure
                            #:key
                            (deduplicate? #t) (reset-timestamps? #t)
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 37639f723..803cd5996 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -25,6 +25,7 @@
   #:use-module (guix build utils)
   #:use-module (guix build store-copy)
   #:use-module (guix build syscalls)
+  #:use-module ((guix store database) #:select (reset-timestamps))
   #:use-module (gnu build linux-boot)
   #:use-module (gnu build install)
   #:use-module (gnu system uuid)
diff --git a/guix/store/database.scm b/guix/store/database.scm
index 3dbe5270a..82938455b 100644
--- a/guix/store/database.scm
+++ b/guix/store/database.scm
@@ -183,7 +183,6 @@ Every store item in REFERENCES must already be registered."
 ;;; High-level interface.
 ;;;
 
-;; TODO: Factorize with that in (gnu build install).
 (define (reset-timestamps file)
   "Reset the modification time on FILE and on all the files it contains, if
 it's a directory.  While at it, canonicalize file permissions."
-- 
2.17.1