From c9e1fff79310f876821ed1ff5354bd79a08ed5cc Mon Sep 17 00:00:00 2001 From: Brian Cully Date: Fri, 12 May 2023 18:36:29 -0400 Subject: gnu: criu: Reset timestamps in .egg file. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensure all files being built are dated no earlier than 1980 by copying in a modified (@@ (guix build python-build-system) ensure-no-mtimes-pre-1980) which is symlink-aware. This copy should be removed when the original procedure is modified to avoid calling UTIME on symlinks. * gnu/packages/virtualization.scm (criu)[arguments]: Add 'ensure-no-mtimes-pre-1980' phase. [inputs]: Remove python. [native-inputs]: Add python-toolchain. Signed-off-by: Ludovic Courtès --- gnu/packages/virtualization.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 4a0d6b0096..c88fd31146 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -1697,6 +1697,8 @@ domains, their live performance and resource utilization statistics.") (string-append "XMLTO=" (search-input-file %build-inputs "/bin/xmlto"))) + #:modules ((ice-9 ftw) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases (delete 'configure) ; no configure script @@ -1719,6 +1721,17 @@ domains, their live performance and resource utilization statistics.") (substitute* "criu/include/plugin.h" (("/var") (string-append (assoc-ref outputs "out")))) )) + ;; TODO: use + ;; (@@ (guix build python-build-system) ensure-no-mtimes-pre-1980) + ;; when it no longer throws due to trying to call UTIME on symlinks. + (add-after 'unpack 'ensure-no-mtimes-pre-1980 + (lambda _ + (let ((early-1980 315619200)) ; 1980-01-02 UTC + (ftw "." (lambda (file stat flag) + (unless (or (<= early-1980 (stat:mtime stat)) + (eq? (stat:type stat) 'symlink)) + (utime file early-1980 early-1980)) + #t))))) (add-before 'build 'fix-symlink (lambda* (#:key inputs #:allow-other-keys) ;; The file 'images/google/protobuf/descriptor.proto' points to @@ -1748,7 +1761,6 @@ domains, their live performance and resource utilization statistics.") (for-each delete-file (find-files out "\\.a$")))))))) (inputs `(("protobuf" ,protobuf) - ("python" ,python) ("python-protobuf" ,python-protobuf) ("iproute" ,iproute) ("libaio" ,libaio) @@ -1763,7 +1775,8 @@ domains, their live performance and resource utilization statistics.") asciidoc xmlto docbook-xml - docbook-xsl)) + docbook-xsl + python-toolchain)) (propagated-inputs ;; included by 'rpc.pb-c.h' (list protobuf-c)) -- cgit v1.2.3