From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:54395) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBkbk-0005Po-RN for guix-patches@gnu.org; Tue, 10 Mar 2020 15:32:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBkbj-0003cz-Cm for guix-patches@gnu.org; Tue, 10 Mar 2020 15:32:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:47408) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jBkbi-0003bD-CJ for guix-patches@gnu.org; Tue, 10 Mar 2020 15:32:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jBkbi-0002D0-7Y for guix-patches@gnu.org; Tue, 10 Mar 2020 15:32:02 -0400 Subject: [bug#39862] [PATCH v2 6/6] gnu: define dune-*-openmpi packages Resent-Message-ID: From: Felix Gruber Date: Tue, 10 Mar 2020 20:29:10 +0100 Message-Id: <20200310192910.6251-7-felgru@posteo.net> In-Reply-To: <5e890189-d5f7-a646-fe37-1f93115d17f9@posteo.net> References: <5e890189-d5f7-a646-fe37-1f93115d17f9@posteo.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 39862@debbugs.gnu.org Cc: Felix Gruber , zimoun * gnu/packages/maths.scm (dune-*-openmpi): New variables. * gnu/packages/maths.scm (add-openmpi-to-dune-package): New function to add openmpi to the inputs of a dune-* package and replace all dune-* packages in its input with the corresponding dune-*-openmpi package. --- gnu/packages/maths.scm | 79 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 33a5efd2f0..e904ca1bd8 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -126,7 +126,9 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35)) (define-public aris (package @@ -5027,6 +5029,81 @@ built on top of DUNE, the Distributed and Unified Numerics Environment.") ;; Either GPL version 2 with "runtime exception" or LGPLv3+. (license (list license:lgpl3+ license:gpl2)))) +(define add-openmpi-to-dune-package + (let ((transformed-packages '())) + (lambda (p) + (let* ((p-name (package-name p)) + (replace-package + (lambda (mapping) + (let* ((name (car mapping)) + (p (cadr mapping)) + (new-p + (match (assoc-ref transformed-packages name) + (#f + (if (string-prefix? "dune-" name) + (raise (condition + (&message + (message + (format #f "Need to call \ +add-openmpi-to-dune-package on '~a' before '~a'." + name p-name))))) + p)) + (transformed-p transformed-p)))) + `(,name ,new-p)))) + (substitute-mpi-packages (lambda (inputs) + (map replace-package inputs))) + (mpi-p + (package (inherit p) + (name (string-append p-name "-openmpi")) + (inputs `(,@(substitute-mpi-packages (package-inputs p)) + ("openmpi" ,openmpi))) + (propagated-inputs + (substitute-mpi-packages (package-propagated-inputs p))) + (arguments + (substitute-keyword-arguments (package-arguments p) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'check 'mpi-setup + ,%openmpi-setup))))) + (synopsis (string-append (package-synopsis p) " (with MPI support)"))))) + (begin + (set! transformed-packages + (acons p-name mpi-p transformed-packages)) + mpi-p))))) + +(define-public dune-common-openmpi + (add-openmpi-to-dune-package dune-common)) + +(define-public dune-geometry-openmpi + (add-openmpi-to-dune-package dune-geometry)) + +(define-public dune-istl-openmpi + (add-openmpi-to-dune-package dune-istl)) + +(define-public dune-typetree-openmpi + (add-openmpi-to-dune-package dune-typetree)) + +(define-public dune-uggrid-openmpi + (add-openmpi-to-dune-package dune-uggrid)) + +(define-public dune-grid-openmpi + (add-openmpi-to-dune-package dune-grid)) + +(define-public dune-alugrid-openmpi + (add-openmpi-to-dune-package dune-alugrid)) + +(define-public dune-subgrid-openmpi + (add-openmpi-to-dune-package dune-subgrid)) + +(define-public dune-localfunctions-openmpi + (add-openmpi-to-dune-package dune-localfunctions)) + +(define-public dune-functions-openmpi + (add-openmpi-to-dune-package dune-functions)) + +(define-public dune-pdelab-openmpi + (add-openmpi-to-dune-package dune-pdelab)) + (define-public mlucas (package (name "mlucas") -- 2.25.1