Opened 2 weeks ago

Last modified 10 days ago

#71246 new defect

libomp: dependency cycle

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by:
Priority: High Milestone:
Component: ports Version: 2.10.4
Keywords: haspatch Cc: jmroot (Joshua Root), eborisch (Eric A. Borisch), catap (Kirill A. Korinsky), Schamschula (Marius Schamschula), Dave-Allured (Dave Allured)
Port: libomp

Description

https://build.macports.org/builders/ports-10.13_x86_64-builder/builds/248093/steps/install-port/logs/stdio

--->  Dependencies to be installed: cmake python310 curl openssl openssl3 cctools llvm-10 xar
Error: The following dependencies were not installed because all of them have unmet dependencies (likely due to a dependency cycle): cmake python310 curl openssl openssl3 cctools llvm-10 xar
DEBUG: cmake requires: curl
DEBUG: python310 requires: openssl
DEBUG: curl requires: openssl
DEBUG: openssl requires: openssl3
DEBUG: openssl3 requires: cctools
DEBUG: cctools requires: llvm-10
DEBUG: llvm-10 requires: xar
DEBUG: xar requires: openssl

Change History (14)

comment:1 Changed 2 weeks ago by aeiouaeiouaeiouaeiouaeiouaeiou

As mentioned in #71149, libomp 19 has now moved to Python-based build scripts. Apparently we need to make a bootstrap version of the python310 port after all.

comment:2 Changed 2 weeks ago by jmroot (Joshua Root)

Cc: eborisch catap Schamschula added

A python310-bootstrap wouldn't break the cycle; openssl is needed by other things. There probably needs to be a cctools-bootstrap to go with clang-11-bootstrap?

Last edited 2 weeks ago by jmroot (Joshua Root) (previous) (diff)

comment:3 Changed 2 weeks ago by Schamschula (Marius Schamschula)

It is very annoying when you have a system pegged to a particular version of Python, and suddenly a different version gets installed when updating something else. There is a reason several of my ports provide Python as a build time variant. In FreeBSD you can set the "flavor" of Python in a config file.

comment:4 Changed 12 days ago by Dave-Allured (Dave Allured)

This is not a libomp or Python problem. This started with a recent commit for openssl3. It looks like "older systems" are affected, also vtk and probably several other ports. From above for 10.13:

openssl3 -> cctools -> llvm-10 -> xar -> openssl -> openssl3

https://build.macports.org/builders/ports-10.11_x86_64-builder/builds/280248/steps/install-port/logs/stdio

openssl3 -> cctools -> llvm-9.0 -> xar -> openssl -> openssl3

10.10 for vtk is also affected. Here is the recent commit for openssl3, October 29:

[d8401b989decbcddbe01c0f4830fc95e363c24e3/macports-ports]

It is not clear to me where the best place to break this cycle would be. Insights, anyone?

Last edited 12 days ago by Dave-Allured (Dave Allured) (previous) (diff)

comment:5 Changed 12 days ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:6 Changed 12 days ago by Dave-Allured (Dave Allured)

Okay. Why does a core archive tool such as xar need to talk to the internets?

comment:7 in reply to:  6 Changed 12 days ago by jmroot (Joshua Root)

Replying to Dave-Allured:

Okay. Why does a core archive tool such as xar need to talk to the internets?

It doesn't use libssl, only libcrypto. Probably for hashes and such, and maybe code signatures too?

comment:8 in reply to:  4 Changed 12 days ago by aeiouaeiouaeiouaeiouaeiouaeiou

Replying to Dave-Allured:

It is not clear to me where the best place to break this cycle would be. Insights, anyone?

I think the mystery is almost solved. I'm already working on PR to fix that.

cctools on Yosemite and newer systems depends on llvm-9.0, which leads to a dependency cycle on xar -> openssl. This package is only needed on Snow Leopard, while everything works fine on other machines.

comment:9 Changed 12 days ago by ryandesign (Ryan Carsten Schmidt)

Keywords: haspatch added

comment:10 Changed 11 days ago by aeiouaeiouaeiouaeiouaeiouaeiou

In c34c3dded79a543fd37f076d1c293a86bd81ff50/macports-ports (master):

openssl3: use cctools only on macOS <10.7

  • expand explanation in the comments

See: #71246

comment:11 Changed 11 days ago by aeiouaeiouaeiouaeiouaeiouaeiou

Some ports are still not built successfully because libomp remains unchanged on affected systems: https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/290242

Is revbump needed?

comment:12 Changed 11 days ago by kencu (Ken)

comment:13 Changed 10 days ago by aeiouaeiouaeiouaeiouaeiouaeiou

We forgot about the 10.6_i386 builder: https://build.macports.org/builders/ports-10.6_i386-builder/builds/184887/steps/install-dependencies/logs/stdio

Error: Cannot install openssl3 for the archs 'i386 x86_64' because
Error: its dependency clang-11-bootstrap cannot build for the required archs.

comment:14 in reply to:  13 Changed 10 days ago by jmroot (Joshua Root)

Replying to aeiouaeiouaeiouaeiouaeiouaeiou:

We forgot about the 10.6_i386 builder: https://build.macports.org/builders/ports-10.6_i386-builder/builds/184887/steps/install-dependencies/logs/stdio

Error: Cannot install openssl3 for the archs 'i386 x86_64' because
Error: its dependency clang-11-bootstrap cannot build for the required archs.

That's not really anything to do with this ticket, but both libomp and openssl3 should probably add their build deps to depends_skip_archcheck. (In fact that should probably be set by default for cmake in its portgroup. Edit: not needed for cmake since it sets installs_libs no.)

Last edited 10 days ago by jmroot (Joshua Root) (previous) (diff)
Note: See TracTickets for help on using tickets.