Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#54890 closed defect (fixed)

compilers portgroup has errors if dependency is not yet installed

Reported by: joefowler (Joe Fowler) Owned by: dstrubbe (David Strubbe)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: dstrubbe (David Strubbe), seanfarley (Sean Farley)
Port:

Description

Because of the github checksum change (see issue #54839), ifeffit needs to be updated.

The attached change to the Portfile ought to suffice.

Attachments (1)

ifeffit.diff (374 bytes) - added by joefowler (Joe Fowler) 3 years ago.
Patch for the Portfile

Download all attachments as: .zip

Change History (17)

Changed 3 years ago by joefowler (Joe Fowler)

Attachment: ifeffit.diff added

Patch for the Portfile

comment:1 Changed 3 years ago by ryandesign (Ryan Schmidt)

But... you haven't changed the checksums in the patch?

Also, as noted in comment:ticket:54839:9, there's no need to increase the revision.

comment:2 Changed 3 years ago by ryandesign (Ryan Schmidt)

It looks like the checksums in fact haven't changed. As such, the port does not need an update.

comment:3 Changed 3 years ago by joefowler (Joe Fowler)

Well, I agree that the checksums haven't changed. This shows that I must be completely confused as to what #54839 is all about. I will comment there and see if the ifeffit package was placed on that list by mistake. Let's see what response I get before we close the present issue.

comment:4 Changed 3 years ago by l2dy (Zero King)

Resolution: invalid
Status: newclosed

It was placed on that list by mistake.

comment:5 Changed 3 years ago by raimue (Rainer Müller)

Resolution: invalid
Status: closedreopened
Summary: ifeffit @1.2.13_5 needs to be updated.ifeffit @1.2.13_5: unable to fetch

I am unable to fetch and checksum this port, which is why I had put it on #54839:

--->  Fetching distfiles for ifeffit
Error: Internal error: compilers.enforce_fortran: 'pgplot' is not an installed port.
Error: Failed to fetch ifeffit: Internal error: compilers.enforce_fortran: 'pgplot' is not an installed port.

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

This seems like a bug in the compilers portgroup.

comment:7 Changed 3 years ago by ryandesign (Ryan Schmidt)

Cc: dstrubbe added

David, any ideas? You added the code that produces this error message in r142486.

comment:8 Changed 3 years ago by l2dy (Zero King)

Keywords: haspatch removed

comment:9 Changed 3 years ago by dstrubbe (David Strubbe)

I guess you can get this problem if you do just "port fetch" and don't have the dependent port installed, but I believe it works correctly for "port install" (so it wasn't noticed before). I will investigate how to make the check be compatible with "port fetch" too.

comment:10 Changed 3 years ago by dstrubbe (David Strubbe)

At any rate, if you want to just do "port fetch ifeffit", you can install pgplot and then it will work.

comment:11 in reply to:  9 Changed 3 years ago by ryandesign (Ryan Schmidt)

Replying to dstrubbe:

I will investigate how to make the check be compatible with "port fetch" too.

Seems simple... at the end of the compilers portgroup, you call the enforce actions inside a pre-fetch block. Change that to a pre-configure block. The configure phase is the earliest you can be sure the build and library dependencies are installed. (Runtime dependencies might not be installed by then, so I hope nobody is trying to check runtime dependencies with this.)

comment:12 Changed 3 years ago by ryandesign (Ryan Schmidt)

And also investigate what happens with binaries, since they won't have a configure phase. There's already a comment in the portgroup that maybe you need to also do stuff at pre-archivefetch.

comment:13 Changed 3 years ago by dstrubbe (David Strubbe)

Cc: seanfarley added

comment:14 Changed 3 years ago by ryandesign (Ryan Schmidt)

Keywords: maintainer removed
Port: ifeffit removed
Summary: ifeffit @1.2.13_5: unable to fetchcompilers portgroup has errors if dependency is not yet installed

comment:15 Changed 3 years ago by dstrubbe (David Strubbe)

Owner: set to dstrubbe
Resolution: fixed
Status: reopenedclosed

In c6cf5aafe46f614dc733f14c51a12564a1e985aa/macports-ports (master):

compilers portgroup: Move some checks to pre-configure and pre-archivefetch. Fixes #54890.

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

In 74f6c824bf28eb2dab3c060c4de82c87f69c2f1b/macports-ports (master):

mpi portgroup: Improve enforce_variants for depspec; move checks to configure and archivefetch.

Use of mpi.enforce_variant could be done with a depspec rather than a port name (e.g. path:/opt/local/lib/libplumedKernel.dylib:plumed) but the resulting error messages were not clear; now it will give the name of an actual port in messages. The pre-fetch checks on dependencies should be done in pre-configure since only then are the dependencies guaranteed to be installed; a similar check should be done in pre-archivefetch for binaries. (Similar to #54890 for compilers portgroup.)

Note: See TracTickets for help on using tickets.