From f0e9048e98f0789aa98de88984f4ee0fc9687f52 Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Sun, 22 May 2022 17:20:18 +0200 Subject: gnu: sbcl: Improve reproducilbility. This should fix the runtime error of the maxima package: fatal error encountered in SBCL pid 26911 tid 26911: core was built for runtime "localhost-nixbld-2022-03-03-15-45-58" but this is "localhost-nixbld-2022-03-03-08-51-27" * gnu/packages/lisp.scm (sbcl)[arguments]: Add 'fix-build-id' phase. --- gnu/packages/lisp.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index d5f1e94269..ca85cab2b9 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -464,6 +464,18 @@ an interpreter, a compiler, a debugger, and much more.") #:phases (modify-phases %standard-phases (delete 'configure) + (add-after 'unpack 'fix-build-id + ;; One of the build scripts makes a build id using the current date. + ;; Replace it with a reproducible id using a part of the output hash. + (lambda* (#:key outputs #:allow-other-keys) + (let ((hash (substring (assoc-ref outputs "out") + (+ (string-length (%store-directory)) 1) + (+ (string-length (%store-directory)) 9)))) + (substitute* "make-config.sh" + (("echo .* > output/build-id.inc") + (string-append "echo '\"'guix-sbcl-" + hash + "'\"' > output/build-id.inc")))))) (add-after 'unpack 'replace-asdf ;; SBCL developers have not committed to keeping ASDF up to date ;; due to breaking changes [1]. Guix can handle this situation -- cgit v1.2.3