summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Payerle <payerle@umd.edu>2021-04-20 12:12:13 -0400
committerGitHub <noreply@github.com>2021-04-20 11:12:13 -0500
commit0c0fa26b4ca8f721fca9f75c2e98a0f9de30645b (patch)
treeca1c789ec9af02e4ba11610947d3cdef37471e35
parent448ac2c68dc3d11331f7d20ab9b87d63fbabdb86 (diff)
downloadspack-0c0fa26b4ca8f721fca9f75c2e98a0f9de30645b.tar.gz
spack-0c0fa26b4ca8f721fca9f75c2e98a0f9de30645b.tar.bz2
spack-0c0fa26b4ca8f721fca9f75c2e98a0f9de30645b.tar.xz
spack-0c0fa26b4ca8f721fca9f75c2e98a0f9de30645b.zip
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 <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Update var/spack/repos/builtin/packages/py-pymumps/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
-rw-r--r--var/spack/repos/builtin/packages/py-pymumps/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-pymumps/py-pymumps.setup.patch15
2 files changed, 61 insertions, 0 deletions
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'],