From 31fe177a97bacec643180cc5bcf8805a6cb07481 Mon Sep 17 00:00:00 2001 From: Lars Bilke Date: Fri, 26 Jul 2024 18:15:16 +0200 Subject: gnu: petsc: Build reproducibly. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (petsc)[arguments]: In ‘configure’ phase, add ‘sorted’ call in ‘gmakegen.py’. In ‘clean-local-references’, remove substitution of “Libraries compiled on”, which is unnecessary since PETSc 3.9 (). Add substitution for “Machine characteristics” bit. Co-authored-by: Ludovic Courtès Change-Id: Ibb846c1ae368af94b46d5ce789b1263e0bc78a13 --- gnu/packages/maths.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 1265ae13e9..e4c13a13bd 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3545,6 +3545,11 @@ September 2004}") (let* ((prefix (assoc-ref outputs "out")) (flags `(,(string-append "--prefix=" prefix) ,@configure-flags))) + ;; Sort source files in configure (for reproducibility). + (substitute* "config/gmakegen.py" + (("join\\(srcs\\[lang\\]\\)") + "join(sorted(srcs[lang]))")) + (format #t "build directory: ~s~%" (getcwd)) (format #t "configure flags: ~s~%" flags) (apply invoke "./configure" flags) @@ -3559,8 +3564,8 @@ September 2004}") (substitute* (find-files "." "^petsc(conf|machineinfo).h$") ;; Prevent build directory from leaking into compiled code (((getcwd)) out) - ;; Scrub timestamp for reproducibility - ((".*Libraries compiled on.*") "")) + (("Machine characteristics: Linux-[0-9]+\\.[0-9]+\\.[0-9]+") + "Machine characteristics: Linux-x.x.x")) (substitute* (find-files "." "petscvariables") ;; Do not expose build machine characteristics, set to defaults. (("MAKE_NP = [:digit:]+") "MAKE_NP = 2") -- cgit v1.2.3