Ticket #11576 (new defect)
mpich2 and openmpi both claim mpiexec(1) manpage
| Reported by: | stephen@… | Owned by: | macports-tickets@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.7.1 |
| Keywords: | mpi haspatch | Cc: | mww@…, mmoll@…, eborisch@… |
| Port: | mpich2 openmpi hdf5-18 |
Description (last modified by ryandesign@…) (diff)
---> Activating mpich2 1.0.5p3_0+darwin_8 Error: Target com.apple.activate returned: Image error: /opt/local/share/man/man1/mpiexec.1.gz is being used by the active openmpi port. Please deactivate this port first, or use the -f flag to force the activation.
Attachments
Change History
comment:5 Changed 5 years ago by ryandesign@…
- Port changed from mpich to mpich2
- Summary changed from mpich and openmpi both claim mpiexec(1) manpage to mpich2 and openmpi both claim mpiexec(1) manpage
comment:7 Changed 4 years ago by dweber@…
- Priority changed from Low to Normal
- Keywords mpi added
- Version set to 1.7.1
- Port changed from mpich2 to mpich2 openmpi
Looks like a few man pages overlap in these ports, e.g.:
---> Fetching openmpi ---> Attempting to fetch openmpi-1.3.2.tar.bz2 from http://distfiles.macports.org/openmpi ---> Verifying checksum(s) for openmpi ---> Extracting openmpi ---> Configuring openmpi ---> Building openmpi ---> Staging openmpi into destroot ---> Installing openmpi @1.3.2_0 ---> Activating openmpi @1.3.2_0 Error: Target org.macports.activate returned: Image error: /opt/local/share/man/man1/mpicc.1.gz is being used by the active mpich2 port. Please deactivate this port first, or use 'port -f activate openmpi' to force the activation.
comment:8 Changed 4 years ago by dweber@…
- Cc mmoll@… added
- Port changed from mpich2 openmpi to mpich2 openmpi hdf5-18
Maybe this bug can have an impact on the hdf5-18 installation, e.g.:
$ port upgrade -uR outdated ... <snip> ... ---> Fetching openmpi ---> Attempting to fetch openmpi-1.3.2.tar.bz2 from http://distfiles.macports.org/openmpi ---> Verifying checksum(s) for openmpi ---> Extracting openmpi ---> Configuring openmpi ---> Building openmpi ---> Staging openmpi into destroot ---> Installing openmpi @1.3.2_0 ---> Activating openmpi @1.3.2_0 Error: Target org.macports.activate returned: Image error: /opt/local/share/man/man1/mpicc.1.gz is being used by the active mpich2 port. Please deactivate this port first, or use 'port -f activate openmpi' to force the activation. Portfile changed since last build; discarding previous state. Portfile changed since last build; discarding previous state. ---> Fetching hdf5-18 ---> Verifying checksum(s) for hdf5-18 ---> Extracting hdf5-18 ---> Applying patches to hdf5-18 ---> Configuring hdf5-18 ---> Building hdf5-18 ---> Staging hdf5-18 into destroot ---> Installing hdf5-18 @1.8.3_0 Error: Target org.macports.install returned: Registry error: hdf5-18 @1.8.3_0 already registered as installed. Please uninstall it first. Error: The following dependencies failed to build: hdf5-18 openmpi Error: Unable to upgrade port: 1
comment:9 Changed 4 years ago by mmoll@…
That's odd. hdf5-18 doesn't even depend on openmpi or mpich2. Parallel was initially enabled in the hdf5-18 port, but in was disabled in r47900, since it didn't actually work. Since then the version number has been bumped from 1.8.2 to 1.8.3. Maybe uninstall hdf5-18 and then reinstall it.
comment:10 Changed 13 months ago by raimue@…
- Cc eborisch@… added
This has been open for a long time and Ryan now spotted I had filed a duplicate #26459 a while ago (thanks!).
Can we please get a proper solution for this? At least mark them as conflicting with a link to this ticket.
comment:11 Changed 13 months ago by eborisch@…
I am out of the country, but I will look at this when I return.
comment:12 follow-up: ↓ 13 Changed 12 months ago by eborisch@…
There is a long list of files that both ports claim in the man pages, like all of the MPI_Xxxx commands in man3. I'm not sure what the thought would be on this. In general, one would use one or the other, not both (they both implement the MPI standard, which is why they have so many conflicting man pages.)
I could certainly add a (defaulting to enabled) +man variant that could be disabled to exclude all the man pages from mpich2's installation to work around this. Or I could just mark them as conflicting.
Insofar as the non man3 conflicts (listed below) I would propose that openmpi rename these files to match the executables that are actually being installed (openmpicc, openmpicxx, etc.) by openmpi.
man1 conflicts:
share/man/man1/mpicc.1.gz share/man/man1/mpicxx.1.gz share/man/man1/mpiexec.1.gz share/man/man1/mpif77.1.gz share/man/man1/mpif90.1.gz
comment:13 in reply to: ↑ 12 ; follow-up: ↓ 14 Changed 12 months ago by stephen@…
Replying to eborisch@…:
There is a long list of files that both ports claim in the man pages, like all of the MPI_Xxxx commands in man3. I'm not sure what the thought would be on this. In general, one would use one or the other, not both
If you're dead serious about that, one of the ports should be removed. Otherwise, there are use cases where one might use both (in particular, evaluating which one or the other not both you're going to use in production!)
comment:14 in reply to: ↑ 13 Changed 12 months ago by eborisch@…
Replying to stephen@…:
If you're dead serious about that, one of the ports should be removed. Otherwise, there are use cases where one might use both (in particular, evaluating which one or the other not both you're going to use in production!)
I'm not sure where you're going here. The ticket was to resolve the collision between openmpi and mpich2.
Solutions I can see:
- We can declare them incompatible (mark them conflicting) and the "problem" goes away. If someone is evaluating one vs the other, they can (with minimal headache) activate one and then the other for testing.
- If there is a real use case for keeping both installed, then we need to resolve the man page conflicts. I think man1 can be fixed as I described above with changes in openmpi. For the man3 pages, one of the ports will need to prevent them from installing for things to coexist. I'm happy to add a +man3 variant to mpich2 that can be disabled to permit co-existence.
Thoughts?
Changed 12 months ago by eborisch@…
- Attachment Portfile.diff added
Patch for openmpi Portfile that resolves mpich2 file collisions.

