Opened 17 years ago

Closed 11 years ago

#11576 closed defect (fixed)

mpich2 and openmpi both claim mpiexec(1) manpage

Reported by: yaseppochi (Stephen J. Turnbull) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: haspatch Cc: mww@…, mamoll (Mark Moll), eborisch (Eric A. Borisch)
Port: mpich2 openmpi hdf5-18

Description (last modified by ryandesign (Ryan Carsten Schmidt))

--->  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 (1)

Portfile.diff (1023 bytes) - added by eborisch (Eric A. Borisch) 12 years ago.
Patch for openmpi Portfile that resolves mpich2 file collisions.

Download all attachments as: .zip

Change History (18)

comment:1 Changed 17 years ago by pipping@…

Milestone: Available Ports

comment:2 Changed 17 years ago by pipping@…

Milestone: Available PortsPort Bugs

comment:3 Changed 16 years ago by jmroot (Joshua Root)

Cc: mww@… added

comment:4 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Port: mpich added

comment:5 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Port: mpich2 added; mpich removed
Summary: mpich and openmpi both claim mpiexec(1) manpagempich2 and openmpi both claim mpiexec(1) manpage

comment:6 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:7 Changed 15 years ago by dweber@…

Keywords: mpi added
Port: openmpi added
Priority: LowNormal
Version: 1.7.1

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 15 years ago by dweber@…

Cc: mmoll@… added
Port: hdf5-18 added

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 15 years ago by mamoll (Mark Moll)

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 12 years ago by raimue (Rainer Müller)

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 12 years ago by eborisch (Eric A. Borisch)

I am out of the country, but I will look at this when I return.

comment:12 Changed 12 years ago by eborisch (Eric A. Borisch)

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 ; Changed 12 years ago by yaseppochi (Stephen J. Turnbull)

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 years ago by eborisch (Eric A. Borisch)

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 years ago by eborisch (Eric A. Borisch)

Attachment: Portfile.diff added

Patch for openmpi Portfile that resolves mpich2 file collisions.

comment:15 Changed 12 years ago by eborisch (Eric A. Borisch)

Keywords: haspatch added

comment:16 Changed 11 years ago by dstrubbe (David Strubbe)

This was fixed by marking openmpi and mpich as conflicting in r106993. This ticket can be closed.

comment:17 Changed 11 years ago by larryv (Lawrence Velázquez)

Keywords: mpi removed
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.