From dcdc0a5592f8be1b07e8ae1a1420d2c1760a5f0e Mon Sep 17 00:00:00 2001 From: Lars Bilke Date: Tue, 9 Jan 2024 19:15:04 +0100 Subject: [PATCH] gnu: petsc: Reduce closure size. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reduces closure size from 828 MiB to 463 MiB (44%) by removing references to build dependencies such as GCC. * gnu/packages/maths.scm (petsc)[arguments]: Add ‘clear-reference-to-compiler’ phase. In ‘clean-install’ phase, also remove “configure-hash”. Change-Id: I2e6900747b2118546f0a39ceb109b3f2f90e6949 Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d557154f916aeddb1ad810fc8b17596b6ec5a66e..1f61ee0583c0f55463b341672ed312de7346a218 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3487,8 +3487,20 @@ September 2004}") '("configure.log" "make.log" "gmake.log" "test.log" "error.log" "RDict.db" "PETScBuildInternal.cmake" + "configure-hash" ;; Once installed, should uninstall with Guix "uninstall.py"))))) + (add-after 'clean-install 'clear-reference-to-compiler + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Do not retain a reference to GCC and other build only inputs. + (let ((out (assoc-ref outputs "out"))) + (substitute* (string-append out "/lib/petsc/conf/petscvariables") + (("([[:graph:]]+)/bin/gcc") "gcc") + (("([[:graph:]]+)/bin/g\\+\\+") "g++") + (("([[:graph:]]+)/bin/make") "make") + (("([[:graph:]]+)/bin/diff") "diff") + (("([[:graph:]]+)/bin/sed") "sed") + (("([[:graph:]]+)/bin/gfortran") "gfortran"))))) (add-after 'install 'move-examples (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))