From ee519223848af4add6143fa5d9b2df9709dcfdec Mon Sep 17 00:00:00 2001 From: Guy Moebs Date: Tue, 29 Oct 2024 16:39:13 +0100 Subject: [PATCH 1/2] Add glicid-dealii and glicid-dealii-openmpi to guix/packages/maths.scm --- glicid/packages/maths.scm | 194 +++++++++++++++++++++++++++++++++++++- 1 file changed, 192 insertions(+), 2 deletions(-) diff --git a/glicid/packages/maths.scm b/glicid/packages/maths.scm index a2e9462..d9e4e09 100644 --- a/glicid/packages/maths.scm +++ b/glicid/packages/maths.scm @@ -10,8 +10,112 @@ #:use-module (gnu packages compression) #:use-module (guix build-system cmake) #:use-module ((guix licenses) #:prefix license:) - #:use-module (glicid utils)) - + #:use-module (glicid utils) + #:use-module (ice-9 regex) + #:use-module (ice-9 match) + #:use-module (guix gexp) + #:use-module ((guix build utils) #:select (alist-replace)) + #:use-module (guix build-system ant) + #:use-module (guix build-system copy) + #:use-module (guix build-system dune) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) + #:use-module (guix build-system ocaml) + #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) + #:use-module (guix build-system python) + #:use-module (guix build-system ruby) + #:use-module (gnu packages algebra) + #:use-module (gnu packages audio) + #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages bison) + #:use-module (gnu packages boost) + #:use-module (gnu packages calendar) + #:use-module (gnu packages check) + #:use-module (gnu packages cmake) + #:use-module (gnu packages coq) + #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages cpp) + #:use-module (gnu packages datamash) + #:use-module (gnu packages dbm) + #:use-module (gnu packages documentation) + #:use-module (gnu packages elf) + #:use-module (gnu packages emacs) + #:use-module (gnu packages file) + #:use-module (gnu packages flex) + #:use-module (gnu packages fltk) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gd) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) + #:use-module (gnu packages gperf) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages groff) + #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) + #:use-module (gnu packages java) + #:use-module (gnu packages less) + #:use-module (gnu packages lisp) + #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) + #:use-module (gnu packages logging) + #:use-module (gnu packages lua) + #:use-module (gnu packages gnome) + #:use-module (gnu packages guile) + #:use-module (gnu packages xorg) + #:use-module (gnu packages gl) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages m4) + #:use-module (gnu packages mpi) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages netpbm) + #:use-module (gnu packages ocaml) + #:use-module (gnu packages onc-rpc) + #:use-module (gnu packages parallel) + #:use-module (gnu packages pcre) + #:use-module (gnu packages popt) + #:use-module (gnu packages perl) + #:use-module (gnu packages prolog) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages python-build) + #:use-module (gnu packages python-science) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) + #:use-module (gnu packages readline) + #:use-module (gnu packages ruby) + #:use-module (gnu packages tbb) + #:use-module (gnu packages scheme) + #:use-module (gnu packages serialization) + #:use-module (gnu packages shells) + #:use-module (gnu packages simulation) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages swig) + #:use-module (gnu packages tcl) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages tex) + #:use-module (gnu packages time) + #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) + #:use-module (gnu packages wxwidgets) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages xml) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26)) (define-public scalapack-upstream (package (inherit gnu:scalapack) @@ -103,3 +207,89 @@ (license license:bsd-3)) ) +(define-public glicid-dealii + (package + (inherit dealii) + (version "9.6.0") + (name "glicid-dealii") + (arguments + (list #:build-type "Release" ; Only Debug, Release or DebugRelease. + ;; The tests take too long and must be explicitly enabled with + ;; "make setup_tests". + ;; See https://www.dealii.org/developer/developers/testsuite.html. + ;; (They can also be run for an already installed deal.II.) + #:tests? #f + #:configure-flags + #~(let ((doc (string-append #$output:doc "/share/doc/" + #$name "-" #$version))) + (list "-DDEAL_II_COMPONENT_DOCUMENTATION=OFF" + (string-append "-DCMAKE_CXX_FLAGS='-march=znver3'") + (string-append "-DDEAL_II_DOCREADME_RELDIR=" doc) + (string-append "-DDEAL_II_DOCHTML_RELDIR=" doc "/html") + ;; Don't compile the examples because the source and + ;; CMakeLists.txt are installed anyway, allowing users to + ;; do so for themselves. + "-DDEAL_II_COMPILE_EXAMPLES=OFF" + (string-append "-DDEAL_II_EXAMPLES_RELDIR=" doc + "/examples"))) + #:phases + #~(modify-phases %standard-phases + ;; Without unsetting CPATH, the build fails with the following + ;; error (similar to ): + ;; + ;; /gnu/store/…-gcc-11.3.0/include/c++/math.h:30:16: fatal error: math.h: No such file or directory + ;; 30 | # include_next + ;; | ^~~~~~~~ + ;; + ;; Why does unsetting CPATH magically fix the error? + ;; TODO: Properly fix this issue. + (add-after 'set-paths 'unset-cpath + (lambda _ + (unsetenv "CPATH"))) + (add-after 'install 'remove-build-logs + ;; These build logs leak the name of the build directory by + ;; storing the values of CMAKE_SOURCE_DIR and + ;; CMAKE_BINARY_DIR. + (lambda _ + (let ((doc (string-append #$output:doc "/share/doc/" + #$name "-" #$version))) + (for-each delete-file + (map (lambda (f) (string-append doc "/" f)) + '("detailed.log" "summary.log"))))))))) + )) + + +(define trilinos-for-dealii-openmpi + (@@ (gnu packages maths) trilinos-for-dealii-openmpi)) + + +(define-public glicid-dealii-openmpi + (package + (inherit glicid-dealii) + (name "glicid-dealii-openmpi") + (inputs + (modify-inputs (package-inputs glicid-dealii) + (delete "arpack") + (prepend arpack-ng-openmpi + metis + scalapack))) + (propagated-inputs + (modify-inputs (package-propagated-inputs glicid-dealii) + (delete "hdf5" "kokkos" "sundials") + (prepend hdf5-parallel-openmpi + openmpi + p4est-openmpi + petsc-openmpi + slepc-openmpi + sundials-openmpi + trilinos-for-dealii-openmpi))) + (arguments + (substitute-keyword-arguments (package-arguments glicid-dealii) + ((#:configure-flags flags) + #~(cons "-DDEAL_II_WITH_MPI=ON" #$flags)) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + ;; The build failure fixed by this phase does not manifest when + ;; Kokkos is included via Trilinos. + (delete 'unset-cpath))))) + (synopsis "Finite element library (with MPI support)"))) From 7d5337658adee713ce951cf540b652129235e2c6 Mon Sep 17 00:00:00 2001 From: Guy MOEBS Date: Tue, 29 Oct 2024 17:04:33 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Ajout=20des=20liens=20de=20d=C3=A9pendance?= =?UTF-8?q?=20vers=20gnu=20par=20des=20gnu:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glicid/packages/maths.scm | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/glicid/packages/maths.scm b/glicid/packages/maths.scm index d9e4e09..418991f 100644 --- a/glicid/packages/maths.scm +++ b/glicid/packages/maths.scm @@ -209,7 +209,7 @@ (define-public glicid-dealii (package - (inherit dealii) + (inherit gnu:dealii) (version "9.6.0") (name "glicid-dealii") (arguments @@ -270,21 +270,21 @@ (inputs (modify-inputs (package-inputs glicid-dealii) (delete "arpack") - (prepend arpack-ng-openmpi - metis - scalapack))) + (prepend gnu:arpack-ng-openmpi + gnu:metis + gnu:scalapack))) (propagated-inputs (modify-inputs (package-propagated-inputs glicid-dealii) (delete "hdf5" "kokkos" "sundials") - (prepend hdf5-parallel-openmpi - openmpi - p4est-openmpi - petsc-openmpi - slepc-openmpi - sundials-openmpi - trilinos-for-dealii-openmpi))) + (prepend gnu:hdf5-parallel-openmpi + gnu:openmpi + gnu:p4est-openmpi + gnu:petsc-openmpi + gnu:slepc-openmpi + gnu:sundials-openmpi + gnu:trilinos-for-dealii-openmpi))) (arguments - (substitute-keyword-arguments (package-arguments glicid-dealii) + (substitute-keyword-arguments (package-arguments gnu:glicid-dealii) ((#:configure-flags flags) #~(cons "-DDEAL_II_WITH_MPI=ON" #$flags)) ((#:phases phases #~%standard-phases) @@ -293,3 +293,4 @@ ;; Kokkos is included via Trilinos. (delete 'unset-cpath))))) (synopsis "Finite element library (with MPI support)"))) +