civodul pushed a commit to branch master
in repository guix.

commit 31fe177a97bacec643180cc5bcf8805a6cb07481
Author: Lars Bilke <[email protected]>
AuthorDate: Fri Jul 26 18:15:16 2024 +0200

    gnu: petsc: Build reproducibly.
    
    * 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
    
(<https://gitlab.com/petsc/petsc/-/commit/a970bd748978a4e12790be7c36b10e832ec0149f>).
    Add substitution for “Machine characteristics” bit.
    
    Co-authored-by: Ludovic Courtès <[email protected]>
    Change-Id: Ibb846c1ae368af94b46d5ce789b1263e0bc78a13
---
 gnu/packages/maths.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

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")

Reply via email to