[MacPorts] #47806: OpenCoarrays @1.0

MacPorts noreply at macports.org
Wed Jun 17 23:24:18 PDT 2015

#47806: OpenCoarrays @1.0
  Reporter:  fanfarillo.gcc@…  |      Owner:  larryv@…
      Type:  submission        |     Status:  assigned
  Priority:  Normal            |  Milestone:
 Component:  ports             |    Version:
Resolution:                    |   Keywords:
      Port:  OpenCoarrays      |
Changes (by larryv@…):

 * status:  new => assigned
 * owner:  macports-tickets@… => larryv@…
 * version:  2.3.3 =>
 * port:  opencoarrays => OpenCoarrays


 Here’s [[attachment:Portfile.larryv|my portfile]]. Please test it and
 let me know if it’s satisfactory. Note that the additional
 [[attachment:tests-compiler.patch|patch]] needs to go into a “files”
 directory underneath the OpenCoarrays directory.

 - I’ve renamed it to “OpenCoarrays”.
 - I’ve moved it to the `science` category. This is in line with related
   ports, like the MPICH and OpenMPI ones.
 - It uses CMake and the `cmake-1.0` portgroup. This obviates the need to
   manually pass compiler flags to the build phase.
 - It currently fetches from GitHub using the `github-1.0` portgroup.
   This is easily changed if you end up serving your distfiles from
 - It uses the `mpi-1.0` portgroup to handle the dirty business of
   selecting compilers and using all the correct executables. The port
   can be compiled using `mpich-gcc5`, `mpich-devel-gcc5`, `mpich-gcc6`,
   or `mpich-devel-gcc6` by selecting the appropriate combination of
   variants, which you can view with `port variants OpenCoarrays`. (Once
   #48091 is closed, the OpenMPI variants should work as well.)
   % sudo port install OpenCoarrays                    # Use MPICH 3.1.4 +
 GCC 5
   % sudo port install OpenCoarrays +gcc6              # Use MPICH 3.1.4 +
 GCC 6
   % sudo port install OpenCoarrays +mpich_devel       # Use MPICH 3.2b3 +
 GCC 5
   % sudo port install OpenCoarrays +gcc6 +mpich_devel # Use MPICH 3.2b3 +
 GCC 6

   % port variants OpenCoarrays
   OpenCoarrays has the variants:
      debug: Enable debug binaries
   [+]gcc5: Build using the MacPorts gcc 5 compiler
        * conflicts with gcc6
      gcc6: Build using the MacPorts gcc 6 compiler
        * conflicts with gcc5
   [+]mpich: Build using the MPICH compiler
        * conflicts with mpich_devel openmpi openmpi_devel
      mpich_devel: Build using the MPICH-devel compiler
        * conflicts with mpich openmpi openmpi_devel
      openmpi: Build using the OpenMPI compiler
        * conflicts with mpich mpich_devel openmpi_devel
      openmpi_devel: Build using the OpenMPI-devel compiler
        * conflicts with mpich mpich_devel openmpi
 - It patches `src/tests/unit/simple/CMakeLists.txt` to prevent it from
   using the nonexistent "mpicc".
 - It enables the test phase, which you can run by executing
   `sudo port test OpenCoarrays`.
 - It installs both the single and MPI libraries, as well as
   `opencoarrays.mod`. Note that we cannot install to `${prefix}/mod`
   because that would violate our directory hierarchy; I’ve used
   `${prefix}/include` instead, as some other Fortran ports do.

 There are still a couple of wrinkles, but I don’t think they are

 - The `mpi-1.0` portgroup creates a library dependency on the selected
   MPI port, while OpenCoarrays really just needs a build dependency. The
   portgroup is far too convenient overall for this to be a dealbreaker,
   but ideally it would be improved to let client ports declare that they
   only need MPI for building.
 - The MPI ports do not have universal variants; thus, `mpi-1.0` does not
   allow client ports to have both MPI variants and a universal variant.

Ticket URL: <https://trac.macports.org/ticket/47806#comment:29>
MacPorts <https://www.macports.org/>
Ports system for OS X

More information about the macports-tickets mailing list