#64341 closed defect (fixed)
curl fails due to circular dependencies with clang on 10.6.8 (x86_64)
Reported by: | barracuda156 | Owned by: | jmroot (Joshua Root) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.1 |
Keywords: | x86_64, Snow Leopard | Cc: | |
Port: | curl, libpsl, python39, cmake, libomp |
Description
Bootstrapping Macports with curl ran into unexpected problem on 10.6.8 x86_64: the following ports call for each other and fail to install:
Error: The following dependencies were not installed because all of them have unmet dependencies (likely due to a dependency cycle): libpsl python39 clang-9.0 cmake curl libomp llvm-9.0 Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug. Error: Processing of port curl failed
Calling for install of other port instead of curl results in the same error:
svacchanda$ sudo ./port -v install libpsl Password: ---> Computing dependencies for libpsl......... The following dependencies will be installed: clang-9.0 cmake curl libomp libpsl llvm-9.0 python39 Continue? [Y/n]: n
This was vanilla Macports with zero changes to config or portfiles. Installed from source with:
./configure --prefix=/opt/bootstrap --with-applications-dir=/opt/bootstrap/Applications --without-startupitems
Change History (8)
comment:1 follow-up: 2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 3 years ago by barracuda156
Replying to ryandesign:
Can you figure out what the specific dependency cycle is?
Sergey-Fedorovs-Mac-mini:bin svacchanda$ ./port deps curl Full Name: curl @7.80.0_0+ssl Extract Dependencies: xz Build Dependencies: pkgconfig, clang-3.7 Library Dependencies: libidn2, libpsl, zlib, zstd, openssl, curl-ca-bundle, libcxx Sergey-Fedorovs-Mac-mini:bin svacchanda$ ./port deps libpsl Full Name: libpsl @0.21.1-20210726_2 Build Dependencies: gettext, pkgconfig, python39, clang-3.7 Library Dependencies: gettext-runtime, libiconv, libidn2, libunistring, libcxx Sergey-Fedorovs-Mac-mini:bin svacchanda$ ./port deps python39 Full Name: python39 @3.9.9_0 Extract Dependencies: xz Build Dependencies: pkgconfig, clang-9.0 Library Dependencies: bzip2, expat, gettext-runtime, libedit, libffi, ncurses, openssl, sqlite3, xz, zlib, libcxx Runtime Dependencies: python_select, python3_select Sergey-Fedorovs-Mac-mini:bin svacchanda$ ./port deps clang-9.0 Full Name: clang-9.0 @9.0.1_4+defaultlibcxx+emulated_tls+libstdcxx Extract Dependencies: xz Build Dependencies: cmake, cctools, pkgconfig, cctools, clang-3.7 Library Dependencies: libxml2, libomp, llvm-9.0, python27, libcxx Runtime Dependencies: clang_select, ld64, cctools Sergey-Fedorovs-Mac-mini:bin svacchanda$ ./port deps libomp Full Name: libomp @13.0.0_0+universal Extract Dependencies: xz Build Dependencies: cmake, perl5, clang-3.7 Library Dependencies: libcxx Sergey-Fedorovs-Mac-mini:bin svacchanda$ ./port deps cmake Full Name: cmake @3.22.1_0 Build Dependencies: clang-3.7 Library Dependencies: curl, expat, zlib, bzip2, libarchive, ncurses, libuv, libcxx, legacy-support
comment:3 follow-up: 7 Changed 3 years ago by jmroot (Joshua Root)
comment:4 follow-up: 5 Changed 3 years ago by jmroot (Joshua Root)
Owner: | set to jmroot |
---|---|
Resolution: | → fixed |
Status: | new → closed |
comment:5 Changed 3 years ago by barracuda156
Replying to jmroot:
In 7086fed1ff95aa2a54ccddd566419dc5d82edd23/macports-ports (master):
Thank you, issue indeed solved.
comment:6 follow-up: 8 Changed 3 years ago by kencu (Ken)
I find a curl-donor macports installed in /opt/bootstrap
is considerably simpler (and has other benefits) if you default the libc++
to libstdc++
there in that installation.
Then you need many fewer deps, and on 10.6 and less, you won't accidentally overwrite /usr/lib/libc++.dylib
with a different or possibly non-TLS version that way.
comment:7 Changed 3 years ago by kencu (Ken)
Replying to jmroot:
So it's the same situation as #60419. Apparently both the submitter and reviewers failed to notice the comment in the libpsl Portfile when handling PR #9941.
My apologies for committing that PR. Perhaps it was a bit of a high bar to expect that this PR view
with all the tests passing, would lead to insight that there was a missing instruction in the python Portfile to add a clang dependency.
The note is more obvious now.
The suggestion I made to use cmake-bootstrap (which has no deps) to build the clangs may simplify this process.
comment:8 Changed 3 years ago by barracuda156
Replying to kencu:
I find a curl-donor macports installed in
/opt/bootstrap
is considerably simpler (and has other benefits) if you default thelibc++
tolibstdc++
there in that installation.Then you need many fewer deps, and on 10.6 and less, you won't accidentally overwrite
/usr/lib/libc++.dylib
with a different or possibly non-TLS version that way.
Thank you! Yes, I should have used libstdc++
there.
I was thinking to set libstdc++
for the main installation, so that the setup is as close to ppc as possible, but didn’t do it in bootstrap one.
Can you figure out what the specific dependency cycle is?