Bug 211768 - [NEW PORT] net/py-mpi4py: MPI for Python
Summary: [NEW PORT] net/py-mpi4py: MPI for Python
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Yuri Victorovich
URL:
Keywords: feature, needs-qa, patch
Depends on:
Blocks:
 
Reported: 2016-08-12 10:41 UTC by Anonymized Account
Modified: 2018-09-21 03:49 UTC (History)
3 users (show)

See Also:
no-reply: maintainer-feedback+


Attachments
net/py-mpi4py-openmpi (3.92 KB, patch)
2016-08-12 10:41 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-mpich2 (839 bytes, patch)
2016-08-12 10:42 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-openmpi: portlint -AC (244 bytes, text/plain)
2016-08-12 10:42 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich2: portlint -AC (302 bytes, text/plain)
2016-08-12 10:43 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: poudriere testport (49.96 KB, text/plain)
2016-08-12 10:43 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich2: poudriere testport (49.32 KB, text/plain)
2016-08-12 10:44 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi (3.85 KB, patch)
2016-08-12 11:04 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-mpich2 (839 bytes, patch)
2016-08-12 11:04 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-openmpi: portlint -AC (244 bytes, text/plain)
2016-08-12 11:05 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich2: portlint -AC (302 bytes, text/plain)
2016-08-12 11:06 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: poudriere testport (48.46 KB, text/plain)
2016-08-12 11:06 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich2: poudriere testport (47.83 KB, text/plain)
2016-08-12 11:07 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi (3.86 KB, patch)
2016-08-29 14:27 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-mpich2 (847 bytes, patch)
2016-08-29 14:28 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-openmpi: portlint -AC (126 bytes, text/plain)
2016-08-29 14:31 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich2: portlint -AC (192 bytes, text/plain)
2016-08-29 14:32 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: poudriere testport (48.33 KB, text/plain)
2016-08-29 14:33 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich2: poudriere testport (47.71 KB, text/plain)
2016-08-29 14:34 UTC, Anonymized Account
no flags Details
net/py-mpi4py-{openmpi2,openmpi,mpich} (6.56 KB, patch)
2017-11-21 15:07 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-mpich: portlint -AC (192 bytes, text/plain)
2017-11-21 15:08 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: portlint -AC (192 bytes, text/plain)
2017-11-21 15:08 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi2: portlint -AC (126 bytes, text/plain)
2017-11-21 15:09 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich: poudriere testport (47.88 KB, text/plain)
2017-11-21 15:10 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: poudriere testport (50.25 KB, text/plain)
2017-11-21 15:10 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi2: poudriere testport (50.34 KB, text/plain)
2017-11-21 15:20 UTC, Anonymized Account
no flags Details
net/py-mpi4py-{openmpi2,openmpi,mpich} 3.0.0 (6.56 KB, patch)
2017-11-21 16:44 UTC, Anonymized Account
no flags Details | Diff
net/py-mpi4py-mpich: portlint -AC (192 bytes, text/plain)
2017-11-21 16:45 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: portlint -AC (192 bytes, text/plain)
2017-11-21 16:45 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi2: portlint -AC (126 bytes, text/plain)
2017-11-21 16:46 UTC, Anonymized Account
no flags Details
net/py-mpi4py-mpich: poudriere testport (49.46 KB, text/plain)
2017-11-21 16:46 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi: poudriere testport (51.85 KB, text/plain)
2017-11-21 16:47 UTC, Anonymized Account
no flags Details
net/py-mpi4py-openmpi2: poudriere testport (51.96 KB, text/plain)
2017-11-21 16:47 UTC, Anonymized Account
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anonymized Account freebsd_committer freebsd_triage 2016-08-12 10:41:15 UTC
Created attachment 173568 [details]
net/py-mpi4py-openmpi

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/
Comment 1 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 10:42:04 UTC
Created attachment 173569 [details]
net/py-mpi4py-mpich2
Comment 2 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 10:42:41 UTC
Created attachment 173570 [details]
net/py-mpi4py-openmpi: portlint -AC
Comment 3 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 10:43:10 UTC
Created attachment 173571 [details]
net/py-mpi4py-mpich2: portlint -AC
Comment 4 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 10:43:51 UTC
Created attachment 173572 [details]
net/py-mpi4py-openmpi: poudriere testport
Comment 5 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 10:44:19 UTC
Created attachment 173573 [details]
net/py-mpi4py-mpich2: poudriere testport
Comment 6 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 11:04:05 UTC
Created attachment 173574 [details]
net/py-mpi4py-openmpi

unnecessary depends
Comment 7 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 11:04:41 UTC
Created attachment 173575 [details]
net/py-mpi4py-mpich2
Comment 8 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 11:05:43 UTC
Created attachment 173576 [details]
net/py-mpi4py-openmpi: portlint -AC
Comment 9 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 11:06:16 UTC
Created attachment 173577 [details]
net/py-mpi4py-mpich2: portlint -AC
Comment 10 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 11:06:39 UTC
Created attachment 173578 [details]
net/py-mpi4py-openmpi: poudriere testport
Comment 11 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 11:07:03 UTC
Created attachment 173579 [details]
net/py-mpi4py-mpich2: poudriere testport
Comment 12 Kubilay Kocak freebsd_committer freebsd_triage 2016-08-12 11:20:10 UTC
Thank you Michael:

A few initial review items:

Apart from the MASTER port portlint warning, the other portlint warnings should be addressed, in particular the two FATAL's.

PYSETUP in do-test should be PYDISTUTILS_SETUP

I don't entirely understand why there are two separate ports (thus packages) here, given:

- Upstream provides instructions to just pip install mpi4py
- Ports should be named according and only to the upstream (PyPI) name unless there's a compelling case to do otherwise.
- The two ports conflict

If it because there are two 'versions' depending on the MPI library that is available, then the port should be:

- PORTNAME=mpi4py
- With multiple (two) mutually exclusive "MPI Backend" OPTIONS
- With a suitable (matching upstream) OPTIONS_DEFAULT on one of them
Comment 13 Anonymized Account freebsd_committer freebsd_triage 2016-08-12 14:10:04 UTC
Evening, Kubilay,

I believe the FATALs in the slave port, as far as my understanding goes, originate from portlint confusing somethinig, because similar ones appear in "www/vimb-gtk3" that was accepted for commit some time ago.

Would CONFLICTS_INSTALL be better than CONFLICTS?

According to README.rst, the package needs cython -- in fact, it looks for MPI header files and compiles something. I have tried testing without, but configure fails.

Additionally, there is no generic MPI .mk like in NetBSD so far (perhaps it still needs to pick MPI implementation globally?) and OpenMPI and MPICH2 install files in different locations (/usr/local/mpi/openmpi vs. /usr/local).

With options it will be impossible to have packages using all MPI implementations in the same binary repo, and should the user need different MPI, they are left with ports?
Comment 14 Anonymized Account freebsd_committer freebsd_triage 2016-08-29 14:27:13 UTC
Created attachment 174186 [details]
net/py-mpi4py-openmpi
Comment 15 Anonymized Account freebsd_committer freebsd_triage 2016-08-29 14:28:39 UTC
Created attachment 174187 [details]
net/py-mpi4py-mpich2
Comment 16 Anonymized Account freebsd_committer freebsd_triage 2016-08-29 14:31:34 UTC
Created attachment 174189 [details]
net/py-mpi4py-openmpi: portlint -AC
Comment 17 Anonymized Account freebsd_committer freebsd_triage 2016-08-29 14:32:29 UTC
Created attachment 174190 [details]
net/py-mpi4py-mpich2: portlint -AC
Comment 18 Anonymized Account freebsd_committer freebsd_triage 2016-08-29 14:33:19 UTC
Created attachment 174191 [details]
net/py-mpi4py-openmpi: poudriere testport
Comment 19 Anonymized Account freebsd_committer freebsd_triage 2016-08-29 14:34:44 UTC
Created attachment 174192 [details]
net/py-mpi4py-mpich2: poudriere testport
Comment 20 Anonymized Account freebsd_committer freebsd_triage 2016-10-18 16:33:08 UTC
Ping?
Comment 21 Anonymized Account freebsd_committer freebsd_triage 2017-01-12 19:28:54 UTC
What is the progress on getting this committed? I think everything is ready now?
Comment 22 Anonymized Account freebsd_committer freebsd_triage 2017-01-16 18:09:16 UTC
That's it, I'm done. I will just maintain this locally, for myself.
Comment 23 Yuri Victorovich freebsd_committer freebsd_triage 2017-11-20 19:49:29 UTC
Take.
Comment 24 Yuri Victorovich freebsd_committer freebsd_triage 2017-11-20 19:49:43 UTC
.
Comment 25 Yuri Victorovich freebsd_committer freebsd_triage 2017-11-20 20:01:27 UTC
The build of net/py-mpi4py-openmpi fails:
> /usr/local/bin/ld: cannot find -lvt.mpi
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> /usr/local/bin/ld: cannot find -lvt-mpi
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> /usr/local/bin/ld: cannot find -ldl
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
Comment 26 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:07:18 UTC
Created attachment 188153 [details]
net/py-mpi4py-{openmpi2,openmpi,mpich}

Hello,

I have updated it a bit due to complaints from poudriere.
Does the new one fail too?

Are you trying to compile directly from ports or in poudriere?

Greetings,
Mike
Comment 27 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:08:16 UTC
Created attachment 188154 [details]
net/py-mpi4py-mpich: portlint -AC
Comment 28 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:08:43 UTC
Created attachment 188155 [details]
net/py-mpi4py-openmpi: portlint -AC
Comment 29 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:09:02 UTC
Created attachment 188156 [details]
net/py-mpi4py-openmpi2: portlint -AC
Comment 30 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:10:17 UTC
Created attachment 188157 [details]
net/py-mpi4py-mpich: poudriere testport
Comment 31 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:10:39 UTC
Created attachment 188158 [details]
net/py-mpi4py-openmpi: poudriere testport
Comment 32 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:20:21 UTC
Created attachment 188160 [details]
net/py-mpi4py-openmpi2: poudriere testport
Comment 33 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 15:54:06 UTC
Also I found out they have released version 3.0.0. Going to update.
Comment 34 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:44:47 UTC
Created attachment 188164 [details]
net/py-mpi4py-{openmpi2,openmpi,mpich} 3.0.0
Comment 35 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:45:27 UTC
Created attachment 188165 [details]
net/py-mpi4py-mpich: portlint -AC
Comment 36 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:45:49 UTC
Created attachment 188166 [details]
net/py-mpi4py-openmpi: portlint -AC
Comment 37 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:46:09 UTC
Created attachment 188167 [details]
net/py-mpi4py-openmpi2: portlint -AC
Comment 38 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:46:35 UTC
Created attachment 188168 [details]
net/py-mpi4py-mpich: poudriere testport
Comment 39 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:47:01 UTC
Created attachment 188169 [details]
net/py-mpi4py-openmpi: poudriere testport
Comment 40 Anonymized Account freebsd_committer freebsd_triage 2017-11-21 16:47:20 UTC
Created attachment 188170 [details]
net/py-mpi4py-openmpi2: poudriere testport
Comment 41 Yuri Victorovich freebsd_committer freebsd_triage 2017-11-21 17:40:49 UTC
You don't need to include poudriere and portlint reports. Just saying that they pass is enough.
Comment 42 Yuri Victorovich freebsd_committer freebsd_triage 2017-11-23 07:04:09 UTC
I am getting this error:

> unable to execute u'/usr/local/mpi/openmpi2/bin/mpicc': No such file or directory
> failure.
> removing: _configtest.c _configtest.o
> error: Cannot compile MPI programs. Check your configuration!!!
> *** Error code 1
Comment 43 Anonymized Account freebsd_committer freebsd_triage 2017-12-07 15:04:45 UTC
Sorry about the delay, I thought I had replied. Do you get this error on ports or poudriere?
Comment 44 Yuri Victorovich freebsd_committer freebsd_triage 2017-12-07 17:17:10 UTC
(In reply to Michael Danilov from comment #43)

Hm, this doesn't happen any more.

Before this happened during local build,
Comment 45 Yuri Victorovich freebsd_committer freebsd_triage 2018-09-21 03:49:03 UTC
Committed with changes as net/py-mpi4py.
Thank you for your submission.
Comment 46 commit-hook freebsd_committer freebsd_triage 2018-09-21 03:49:46 UTC
A commit references this bug:

Author: yuri
Date: Fri Sep 21 03:48:59 UTC 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@gmail.com>

Changes:
  head/net/Makefile
  head/net/py-mpi4py/
  head/net/py-mpi4py/Makefile
  head/net/py-mpi4py/distinfo
  head/net/py-mpi4py/files/
  head/net/py-mpi4py/files/mpi.cfg
  head/net/py-mpi4py/files/mpi2.cfg
  head/net/py-mpi4py/files/patch-setup.py
  head/net/py-mpi4py/pkg-descr