From 0c0fa26b4ca8f721fca9f75c2e98a0f9de30645b Mon Sep 17 00:00:00 2001 From: Tom Payerle Date: Tue, 20 Apr 2021 12:12:13 -0400 Subject: New package: py-pymumps (#19526) * New package: py-pymumps Python bindings for MUMPS, a parallel sparse direct solver * py-pymumps: fixing flake issues * py-pymumps: fix dependency types Following suggestion of @adamjstewart * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart Co-authored-by: Adam J. Stewart --- .../repos/builtin/packages/py-pymumps/package.py | 46 ++++++++++++++++++++++ .../packages/py-pymumps/py-pymumps.setup.patch | 15 +++++++ 2 files changed, 61 insertions(+) create mode 100644 var/spack/repos/builtin/packages/py-pymumps/package.py create mode 100644 var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch diff --git a/var/spack/repos/builtin/packages/py-pymumps/package.py b/var/spack/repos/builtin/packages/py-pymumps/package.py new file mode 100644 index 0000000000..fd4a864d9d --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pymumps/package.py @@ -0,0 +1,46 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class PyPymumps(PythonPackage): + """Python bindings for MUMPS, a parallel sparse direct solver""" + + homepage = "http://github.com/pymumps/pymumps" + pypi = "PyMUMPS/PyMUMPS-0.3.2.tar.gz" + git = "https://github.com/PyMumps/pymumps.git" + + # Add a list of GitHub accounts to notify when the + # package is updated + maintainers = ['payerle'] + + version('0.3.2', sha256='f290ec4850098f108fb91cb9e7fa07302ebf5076e4329f8e6ea4924de8ba35df') + + depends_on('py-cython', type='build') + depends_on('py-setuptools', type='build') + depends_on('mumps', type='link') + depends_on('py-mpi4py', type=('build', 'run')) + + # Patch to add libmumps_common.so to library dependencies + # See https://github.com/PyMumps/pymumps/issues/13 + patch('py-pymumps.setup.patch') + + phases = ['build_ext', 'install'] + + def build_ext_args(self, spec, prefix): + # Requires --library-dirs, + # '--libraries', spec['mumps'].prefix.libs, does not cut it + args = ['--include-dirs', + spec['mumps'].prefix.include, + '--library-dirs', + spec['mumps'].libs.directories[0], + '--rpath', + spec['mumps'].libs.directories[0], + '-l', 'dmumps', + '-l', 'mumps_common', + '-l', 'pord', + ] + return args diff --git a/var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch b/var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch new file mode 100644 index 0000000000..c4743ae541 --- /dev/null +++ b/var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch @@ -0,0 +1,15 @@ +# Add mumps_common to library list +# This is solution proposed in +# https://github.com/PyMumps/pymumps/issues/13 +diff -Naur spack-src/setup.py spack-src.patched/setup.py +--- spack-src/setup.py 2018-11-05 16:57:21.000000000 -0500 ++++ spack-src.patched/setup.py 2020-10-26 11:23:41.363767947 -0400 +@@ -35,7 +35,7 @@ + Extension( + 'mumps._dmumps', + sources=['mumps/_dmumps.pyx'], +- libraries=['dmumps'], ++ libraries=['dmumps', 'mumps_common'], + ), + ], + install_requires=['mpi4py'], -- cgit v1.2.3-60-g2f50