svn commit: r480224 - in head/net: . py-mpi4py py-mpi4py/files
Yuri Victorovich
yuri at FreeBSD.org
Fri Sep 21 03:48:59 UTC 2018
Author: yuri
Date: Fri Sep 21 03:48:57 2018
New Revision: 480224
URL: https://svnweb.freebsd.org/changeset/ports/480224
Log:
New port: net/py-mpi4py: Python bindings for MPI
PR: 211768
Submitted by: Michael Danilov <mike.d.ft402 at gmail.com>
Added:
head/net/py-mpi4py/
head/net/py-mpi4py/Makefile (contents, props changed)
head/net/py-mpi4py/distinfo (contents, props changed)
head/net/py-mpi4py/files/
head/net/py-mpi4py/files/mpi.cfg (contents, props changed)
head/net/py-mpi4py/files/mpi2.cfg (contents, props changed)
head/net/py-mpi4py/files/patch-setup.py (contents, props changed)
head/net/py-mpi4py/pkg-descr (contents, props changed)
Modified:
head/net/Makefile
Modified: head/net/Makefile
==============================================================================
--- head/net/Makefile Fri Sep 21 01:49:09 2018 (r480223)
+++ head/net/Makefile Fri Sep 21 03:48:57 2018 (r480224)
@@ -1075,6 +1075,7 @@
SUBDIR += py-matrix-synapse-ldap3
SUBDIR += py-maxminddb
SUBDIR += py-miniupnpc
+ SUBDIR += py-mpi4py
SUBDIR += py-msrplib
SUBDIR += py-ndg_httpsclient
SUBDIR += py-netaddr
Added: head/net/py-mpi4py/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/py-mpi4py/Makefile Fri Sep 21 03:48:57 2018 (r480224)
@@ -0,0 +1,61 @@
+# $FreeBSD$
+
+PORTNAME= mpi4py
+DISTVERSION= 3.0.0
+CATEGORIES= net parallel python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= mike.d.ft402 at gmail.com
+COMMENT= Python bindings for MPI
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE.rst
+
+USES= python
+USE_PYTHON= distutils cython autoplist concurrent
+
+OPTIONS_DEFINE= DOCS MANPAGES
+OPTIONS_SINGLE= MP
+OPTIONS_SINGLE_MP= MPICH2 OPENMPI OPENMPI2
+OPTIONS_DEFAULT= OPENMPI # the only non-failing MPI implementation
+MP_DESC= MPI Implementation
+
+MPICH2_USES= fortran
+MPICH2_LIB_DEPENDS= libmpich.so:net/mpich2
+MPICH2_LDFLAGS= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so
+
+OPENMPI_LIB_DEPENDS= libmpi.so:net/openmpi
+
+OPENMPI2_DESC= ${OPENMPI_DESC} 2.x
+OPENMPI2_LIB_DEPENDS= libmpi.so:net/openmpi2
+
+PORTDOCS= *
+
+do-patch-OPENMPI-on:
+ @${CP} ${FILESDIR}/mpi.cfg ${WRKSRC}/
+ @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/mpi.cfg
+
+do-patch-OPENMPI2-on:
+ @${CP} ${FILESDIR}/mpi2.cfg ${WRKSRC}/mpi.cfg
+ @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/mpi.cfg
+
+do-install-DOCS-on:
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/README.rst ${STAGEDIR}${DOCSDIR}
+ cd ${WRKSRC}/docs && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}
+ @${RM} ${STAGEDIR}${DOCSDIR}/${PORTNAME}.1
+
+do-install-MANPAGES-on:
+ ${INSTALL_MAN} ${WRKSRC}/docs/${PORTNAME}.1 ${STAGEDIR}${PREFIX}/man/man1
+ @${ECHO} man/man1/mpi4py.1.gz >> ${TMPPLIST}
+
+post-install:
+ @cd ${STAGEDIR}${PYTHON_SITELIBDIR}/mpi4py && ${STRIP_CMD} dl.so MPI.so lib-pmpi/libvt-hyb.so lib-pmpi/libvt.so lib-pmpi/libvt-mpi.so lib-pmpi/libmpe.so
+
+do-test:
+ # tests fail with MPICH2=on: https://bitbucket.org/mpi4py/mpi4py/issues/110/tests-fail-with-mpich2-on-freebsd-error
+ # tests fail with OPENMPI2=on: https://bitbucket.org/mpi4py/mpi4py/issues/109/tests-fail-with-openmpi2-on-freebsd
+ @cd ${WRKSRC} && ${PYTHON_CMD} ${PYDISTUTILS_SETUP} test
+
+.include <bsd.port.mk>
Added: head/net/py-mpi4py/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/py-mpi4py/distinfo Fri Sep 21 03:48:57 2018 (r480224)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1537487949
+SHA256 (mpi4py-3.0.0.tar.gz) = b457b02d85bdd9a4775a097fac5234a20397b43e073f14d9e29b6cd78c68efd7
+SIZE (mpi4py-3.0.0.tar.gz) = 1426843
Added: head/net/py-mpi4py/files/mpi.cfg
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/py-mpi4py/files/mpi.cfg Fri Sep 21 03:48:57 2018 (r480224)
@@ -0,0 +1,6 @@
+[mpi]
+mpi_dir = %%LOCALBASE%%/mpi/openmpi
+mpicc = %(mpi_dir)s/bin/mpicc
+mpicxx = %(mpi_dir)s/bin/mpicxx
+library_dirs = %(mpi_dir)s/lib
+runtime_library_dirs = %(library_dirs)s
Added: head/net/py-mpi4py/files/mpi2.cfg
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/py-mpi4py/files/mpi2.cfg Fri Sep 21 03:48:57 2018 (r480224)
@@ -0,0 +1,6 @@
+[mpi]
+mpi_dir = %%LOCALBASE%%/mpi/openmpi2
+mpicc = %(mpi_dir)s/bin/mpicc
+mpicxx = %(mpi_dir)s/bin/mpicxx
+library_dirs = %(mpi_dir)s/lib
+runtime_library_dirs = %(library_dirs)s
Added: head/net/py-mpi4py/files/patch-setup.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/py-mpi4py/files/patch-setup.py Fri Sep 21 03:48:57 2018 (r480224)
@@ -0,0 +1,25 @@
+--- setup.py.orig 2017-11-25 07:11:10 UTC
++++ setup.py
+@@ -174,10 +174,10 @@ def configure_dl(ext, config_cmd):
+ log.info("checking for dlopen() availability ...")
+ ok = config_cmd.check_header('dlfcn.h')
+ if ok : ext.define_macros += [('HAVE_DLFCN_H', 1)]
+- ok = config_cmd.check_library('dl')
+- if ok: ext.libraries += ['dl']
++ #ok = config_cmd.check_library('dl')
++ #if ok: ext.libraries += ['dl']
+ ok = config_cmd.check_function('dlopen',
+- libraries=['dl'],
++ #libraries=['dl'],
+ decl=1, call=1)
+ if ok: ext.define_macros += [('HAVE_DLOPEN', 1)]
+
+@@ -287,7 +287,7 @@ def configure_libvt(lib, config_cmd):
+ log_lib = 'vt.ompi'
+ else:
+ log_lib = 'vt.mpi'
+- dep_libs = ('dl', 'z', 'otf',)
++ dep_libs = ('z', 'otf',)
+ ok = config_cmd.check_library(log_lib, lib.library_dirs)
+ if not ok: return
+ libraries = []
Added: head/net/py-mpi4py/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/py-mpi4py/pkg-descr Fri Sep 21 03:48:57 2018 (r480224)
@@ -0,0 +1,5 @@
+This package provides Python bindings for the Message Passing Interface (MPI)
+standard. It is implemented on top of the MPI-1/MPI-2 specification and
+exposes an API which grounds on the standard MPI-2 C++ bindings
+
+WWW: https://bitbucket.org/mpi4py/mpi4py/
More information about the svn-ports-head
mailing list