summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2015-11-17 10:23:23 +0100
committerJustin Lecher <jlec@gentoo.org>2015-11-17 10:26:06 +0100
commit3f54a597796ca0ada6dca781c84e83466ca9ce1b (patch)
tree3a4a7e657df2d306a8f05ffaf348bd370f1296cc /dev-python/h5py/files
parentapp-editors/emacs-vcs: New snapshot. (diff)
downloadgentoo-3f54a597796ca0ada6dca781c84e83466ca9ce1b.tar.gz
gentoo-3f54a597796ca0ada6dca781c84e83466ca9ce1b.tar.bz2
gentoo-3f54a597796ca0ada6dca781c84e83466ca9ce1b.zip
dev-python/h5py: Backport support for mpi4py-2
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=563890 Package-Manager: portage-2.2.23 Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'dev-python/h5py/files')
-rw-r--r--dev-python/h5py/files/h5py-2.5.0-mpi4py2.backport55
1 files changed, 55 insertions, 0 deletions
diff --git a/dev-python/h5py/files/h5py-2.5.0-mpi4py2.backport b/dev-python/h5py/files/h5py-2.5.0-mpi4py2.backport
new file mode 100644
index 000000000000..06bdb83abab1
--- /dev/null
+++ b/dev-python/h5py/files/h5py-2.5.0-mpi4py2.backport
@@ -0,0 +1,55 @@
+commit 364a77403199087168786234554f459e7d985063
+Author: Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk>
+Date: Tue Nov 3 14:18:48 2015 +0000
+
+ setup: Support building with current mpi4py version
+
+ mpi4py migrated the mpi4py.mpi_c module to mpi4py.libmpi in April 2014.
+ After the release of v1.3.1 but before v2. Sniff this in setup
+ configure and import MPI types from the appropriate module in h5p.pyx,
+ to allow building with MPI on and modern mpi4py versions.
+
+diff --git a/h5py/h5p.pyx b/h5py/h5p.pyx
+index da175dd..8a1cbb0 100644
+--- a/h5py/h5p.pyx
++++ b/h5py/h5p.pyx
+@@ -25,7 +25,11 @@ from h5py import _objects
+ from ._objects import phil, with_phil
+
+ if MPI:
+- from mpi4py.mpi_c cimport MPI_Comm, MPI_Info, MPI_Comm_dup, MPI_Info_dup, \
++ if MPI4PY_V2:
++ from mpi4py.libmpi cimport MPI_Comm, MPI_Info, MPI_Comm_dup, MPI_Info_dup, \
++ MPI_Comm_free, MPI_Info_free
++ else:
++ from mpi4py.mpi_c cimport MPI_Comm, MPI_Info, MPI_Comm_dup, MPI_Info_dup, \
+ MPI_Comm_free, MPI_Info_free
+
+ # Initialization
+diff --git a/setup_build.py b/setup_build.py
+index ccc0f27..e49a4e8 100644
+--- a/setup_build.py
++++ b/setup_build.py
+@@ -162,14 +162,22 @@ class h5py_build_ext(build_ext):
+ # Rewrite config.pxi file if needed
+ if not op.isfile(config_file) or config.rebuild_required:
+ with open(config_file, 'wb') as f:
++ if config.mpi:
++ import mpi4py
++ from distutils.version import StrictVersion
++ v2 = StrictVersion(mpi4py.__version__) > StrictVersion("1.3.1")
++ else:
++ v2 = False
+ s = """\
+ # This file is automatically generated by the h5py setup script. Don't modify.
+
+ DEF MPI = %(mpi)s
++DEF MPI4PY_V2 = %(mpi4py_v2)s
+ DEF HDF5_VERSION = %(version)s
+ DEF SWMR_MIN_HDF5_VERSION = (1,9,178)
+ """
+ s %= {'mpi': bool(config.mpi),
++ 'mpi4py_v2': bool(v2),
+ 'version': tuple(int(x) for x in config.hdf5_version.split('.'))}
+ s = s.encode('utf-8')
+ f.write(s)