Opened 11 years ago

Closed 11 years ago

#40716 closed defect (fixed)

METIS portfile errors

Reported by: TBird2001 (Jason Verley) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: metis

Description

In looking at the METIS Portfile, I noticed a some errors. First, the license is not correct. METIS is released under the Apache License, Version 2.0 (the Portfile has it listed as "Restrictive").

Second, an openmpi variant is listed. METIS does not have an MPI variant; ParMETIS (which is a new port) is the MPI version of METIS. METIS does have support for OpenMP, though I think it requires downloading of a separate tarball. I have never used that capability, personally, so I can't speak to how it would be implemented in the Portfile.

Finally, it appears the Portfile does not specify a compiler. I believe that, in that mode, CMake uses whatever compiler it finds first. I would like to start using METIS, but I would like to have some control over which compiler it uses. (Admittedly, it probably does not matter in a big way, since METIS is straight C code, but I would at least like to know which compiler is being used.)

I would be willing to help maintain this port (I made the same offer to the ParMETIS port), but I am a complete novice when it comes to Portfiles.

Change History (4)

comment:1 in reply to:  description ; Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added
Port: metis added

Replying to jcverle@…:

In looking at the METIS Portfile, I noticed a some errors. First, the license is not correct. METIS is released under the Apache License, Version 2.0 (the Portfile has it listed as "Restrictive").

Confirmed; the license field was added in r84527 at which time it had a more restrictive license. Fixed license in r112022.

Second, an openmpi variant is listed. METIS does not have an MPI variant; ParMETIS (which is a new port) is the MPI version of METIS. METIS does have support for OpenMP, though I think it requires downloading of a separate tarball. I have never used that capability, personally, so I can't speak to how it would be implemented in the Portfile.

The openmpi variant was requested and provided in #35018 and committed in r94816. I don't know any more about it.

Finally, it appears the Portfile does not specify a compiler. I believe that, in that mode, CMake uses whatever compiler it finds first.

MacPorts chooses a default compiler based on the Xcode version. Most ports should not override this choice. It is possible that the use of openmpi constitutes a valid exception to this rule but I don't know.

I would like to start using METIS, but I would like to have some control over which compiler it uses. (Admittedly, it probably does not matter in a big way, since METIS is straight C code, but I would at least like to know which compiler is being used.)

You can find that out by running "sudo port -s install metis" and looking for the line that says "Using compiler". As of Xcode 4.2, the default compiler is clang. Most ports respect this setting; if a port doesn't, it's a bug.

I would be willing to help maintain this port (I made the same offer to the ParMETIS port), but I am a complete novice when it comes to Portfiles.

comment:2 Changed 11 years ago by TBird2001 (Jason Verley)

Second, an openmpi variant is listed. METIS does not have an MPI variant; ParMETIS (which is a new port) is the MPI version of METIS. METIS does have support for OpenMP, though I think it requires downloading of a separate tarball. I have never used that capability, personally, so I can't speak to how it would be implemented in the Portfile.

The openmpi variant was requested and provided in #35018 and committed in r94816. I don't know any more about it.

The person that made the change had a Lavabit email address, so they aren't contactable any more (Lavabit closed abruptly, perhaps permanently). Having the openmpi variant add "openmp=1" to the arguments doesn't hurt anything, but I don't think it actually does anything. There is a separate mt-metis code for OpenMP threaded METIS available on the web site, which might make use of that option. But it's a separate code. At any rate, inclusion of the variant appears to be a mistake convoluting openmp and openmpi. METIS does not support MPI.

MacPorts chooses a default compiler based on the Xcode version. Most ports should not override this choice...

Very good. That makes sense. Thanks.

comment:3 in reply to:  1 Changed 11 years ago by jmroot (Joshua Root)

Replying to ryandesign@…:

Replying to jcverle@…:

In looking at the METIS Portfile, I noticed a some errors. First, the license is not correct. METIS is released under the Apache License, Version 2.0 (the Portfile has it listed as "Restrictive").

Confirmed; the license field was added in r84527 at which time it had a more restrictive license. Fixed license in r112022.

Some source files are LGPL'd (gnu getopt and regex). Also, any trailing .0 should be omitted from license versions. Fixed in r112027.

comment:4 Changed 11 years ago by seanfarley (Sean Farley)

Resolution: fixed
Status: newclosed

The openmpi variant was fixed in r115288 and the compiler issues should be fixed with my work on the compilers portgroup. Marking as fixed now.

Note: See TracTickets for help on using tickets.