New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #11576 (new defect)

Opened 6 years ago

Last modified 12 months ago

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

Portfile.diff (1023 bytes) - added by eborisch@… 12 months ago.
Patch for openmpi Portfile that resolves mpich2 file collisions.

Change History

comment:1 Changed 6 years ago by pipping@…

  • Milestone set to Available Ports

comment:2 Changed 6 years ago by pipping@…

  • Milestone changed from Available Ports to Port Bugs

comment:3 Changed 5 years ago by jmr@…

  • Cc mww@… added

comment:4 Changed 5 years ago by ryandesign@…

  • Port set to mpich
  • Description modified (diff)

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:6 Changed 4 years ago by anonymous

  • Milestone Port Bugs deleted

Milestone Port Bugs deleted

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@…

Patch for openmpi Portfile that resolves mpich2 file collisions.

comment:15 Changed 12 months ago by eborisch@…

  • Keywords haspatch added
Note: See TracTickets for help on using tickets.