Opened 7 years ago

Closed 7 years ago

#55558 closed defect (fixed)

cantera @2.3.0: rev-upgrade: Port cantera is still broken after rebuilding

Reported by: jantheron Owned by: macports@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: ryandesign (Ryan Carsten Schmidt)
Port: cantera, cantera-devel

Description (last modified by mf2k (Frank Schima))

ticket:55540 was closed as fixed, but cantera-devel still does not build. It attempts to install sundials3 instead of sundials2. logfile attached.

Attachments (3)

main.log (61.5 KB) - added by jantheron 7 years ago.
build logfile
cantera.tiff (496.3 KB) - added by jantheron 7 years ago.
build screen
cantera.log.bz2 (7.0 KB) - added by jantheron 7 years ago.
log

Download all attachments as: .zip

Change History (18)

Changed 7 years ago by jantheron

Attachment: main.log added

build logfile

comment:1 Changed 7 years ago by mf2k (Frank Schima)

Milestone: MacPorts Future

The Milestone field is for use by Macports team members only, please do not set it.

comment:2 Changed 7 years ago by mf2k (Frank Schima)

Owner: set to macports@…
Status: newassigned

In the future, please use Cc the port maintainers (port info --maintainers cantera-devel), if any.

comment:3 Changed 7 years ago by mf2k (Frank Schima)

Description: modified (diff)

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

Resolution: invalid
Status: assignedclosed

Run sudo port selfupdate to receive the previously-committed fix.

And again, cantera-devel is an older beta version. Use the cantera port instead, which is the latest released version.

comment:5 Changed 7 years ago by jantheron

I used cantera-devel since it appeared from your comments on #55540 that you had updated cantera-devel. Also, I did run selfupdate before trying again. Today, cantera seems to be pulling in sundials2. However, I got an error in that cantera needs sundials2 + atlas, but fetches sundials2 without atlas. I uninstalled sundials2, then fetched sundials2 +atlas, and re-run "install cantera". Now it builds! Perhaps you can just update your portfile to ensure that sundials +atlas is pulled in....

Last edited 7 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 Changed 7 years ago by jantheron

I was mistaken... the build does not succeed, also when using sundials2 +atlas. The build was attempted 3 times and failed. I also ran port rev-upgrade but that did not work. Not sure where to look for the logfile to send you!

comment:7 in reply to:  6 Changed 7 years ago by jantheron

Replying to jantheron:

I was mistaken... the build does not succeed, also when using sundials2 +atlas. The build was attempted 3 times and failed. I also ran port rev-upgrade but that did not work. Not sure where to look for the logfile to send you!

Changed 7 years ago by jantheron

Attachment: cantera.tiff added

build screen

comment:8 in reply to:  5 ; Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to jantheron:

I used cantera-devel since it appeared from your comments on #55540 that you had updated cantera-devel.

Yes, I updated cantera and cantera-devel.

Also, I did run selfupdate before trying again. Today, cantera seems to be pulling in sundials2. However, I got an error in that cantera needs sundials2 + atlas, but fetches sundials2 without atlas. I uninstalled sundials2, then fetched sundials2 +atlas, and re-run "install cantera". Now it builds! Perhaps you can just update your portfile to ensure that sundials +atlas is pulled in....

It is not possible for a port to declare a dependency on a specific variant of another port; MacPorts base does not have that capability. (See #126.) The best we can do in a portfile is detect if the other port does not have the necessary variant installed, and notify you of that, so that's what we do.

Last edited 7 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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

Port: cantera added
Resolution: invalid
Status: closedreopened
Summary: Cantera-devel and sundialscantera @2.3.0: rev-upgrade: Port cantera is still broken after rebuilding

Replying to jantheron:

I was mistaken... the build does not succeed, also when using sundials2 +atlas. The build was attempted 3 times and failed. I also ran port rev-upgrade but that did not work. Not sure where to look for the logfile to send you!

Ok, the install succeeded, but rev-upgrade determined that what got installed is broken. When I was working on updating the port I did notice that the shared library had the wrong install_name (which is what rev-upgrade means when it says a port is broken), and I added code to the port's post-build block to fix that. When I run rev-upgrade on my system, cantera does not show up as broken, so I'll need to see what's going on on your system, and a log would be a good way to see that. MacPorts does not keep a log of successful builds nor of what rev-upgrade does, so you'll have to generate a logfile manually, for example like this:

sudo port -d rev-upgrade 2>&1 | tee ~/Desktop/cantera.log; bzip2 -9 ~/Desktop/cantera.log

This will create a compressed log file "cantera.log.bz2" on your Desktop which you can then attach to this ticket.

comment:10 in reply to:  8 ; Changed 7 years ago by jantheron

Replying to ryandesign:

Replying to jantheron:

I used cantera-devel since it appeared from your comments on #55540 that you had updated cantera-devel.

Yes, I updated cantera and cantera-devel.

Also, I did run selfupdate before trying again. Today, cantera seems to be pulling in sundials2. However, I got an error in that cantera needs sundials2 + atlas, but fetches sundials2 without atlas. I uninstalled sundials2, then fetched sundials2 +atlas, and re-run "install cantera". Now it builds! Perhaps you can just update your portfile to ensure that sundials +atlas is pulled in....

It is not possible for a port to declare a dependency on a specific variant of another port; MacPorts base does not have that capability. (See #126.) The best we can do in a portfile is detect if the other port does not have the necessary variant installed, and notify you of that, so that's what we do.

OK, thanks. cantera still does not build, however. Did you have a look at my screenshot?

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

Replying to jantheron:

OK, thanks. cantera still does not build, however. Did you have a look at my screenshot?

Yes. See comment:9 for the information I need to diagnose the problem.

Changed 7 years ago by jantheron

Attachment: cantera.log.bz2 added

log

comment:12 in reply to:  11 Changed 7 years ago by jantheron

Replying to ryandesign:

I found this:

Could not open build/lib/libcantera.dylib: Error opening or reading file (referenced from /opt/local/lib/python3.5/site-packages/cantera/_cantera.cpython-35m-darwin.so)
DEBUG: Marking /opt/local/lib/python3.5/site-packages/cantera/_cantera.cpython-35m-darwin.so as broken
--->  Found 1 broken file, matching files to ports
--->  Found 1 broken port, determining rebuild order
DEBUG: Broken: cantera

Replying to jantheron:

OK, thanks. cantera still does not build, however. Did you have a look at my screenshot?

Yes. See comment:9 for the information I need to diagnose the problem.

Last edited 7 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

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

Ok, that should be easy enough for us to fix. cantera should be building its python module for python 2.7, but it looks like on your system it chose to build it for python 3.5 instead. I'll see what I can do to fix that.

Meanwhile, you can work around the problem by using sudo port select python to select python 2.7 before building cantera. You can re-select python 3.5 afterward if you wish.

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

Actually I see now that it's building the python 3 module in addition to the python 2 module. It apparently does this if it detects a working python 3 installation (i.e. a python3 executable that has access to the cython module). You can work around this by using sudo port select python3 none before building cantera. You can sudo port select python3 python35 afterward again if you want.

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

Resolution: fixed
Status: reopenedclosed

In 3c98966865c172a73fadc85e3a91f1541907decd/macports-ports:

cantera: Disable python3 module

It could otherwise have been built opportunistically, and rev-upgrade
would have considered it broken because the port doesn't fix up
libcantera.dylib's install_name in it.

Closes: #55558

Also explicitly request the full build of the python2 module. (This
should already have been automatically detected.)

Note: See TracTickets for help on using tickets.