Opened 9 days ago
Last modified 3 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
---> 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 9 days ago by aeiouaeiouaeiouaeiouaeiouaeiou
comment:2 Changed 9 days 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?
comment:3 Changed 8 days 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 follow-up: 8 Changed 5 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
openssl3 -> cctools -> llvm-9.0 -> xar -> openssl -> openssl3
10.10 for vtk
is also affected. Here is the recent commit for cctools
, October 29:
https://github.com/macports/macports-ports/commit/d8401b989decbcddbe01c0f4830fc95e363c24e3
It is not clear to me where the best place to break this cycle would be. Insights, anyone?
comment:5 Changed 5 days ago by Dave-Allured (Dave Allured)
Cc: | Dave-Allured added |
---|
comment:6 follow-up: 7 Changed 5 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 Changed 5 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 Changed 5 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 5 days ago by ryandesign (Ryan Carsten Schmidt)
Keywords: | haspatch added |
---|
comment:10 Changed 4 days ago by aeiouaeiouaeiouaeiouaeiouaeiou
comment:11 Changed 4 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 4 days ago by kencu (Ken)
rebuild was forced, and appears to have succeeded
https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/290244
comment:13 follow-up: 14 Changed 3 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 Changed 3 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
.)
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.