Opened 7 weeks ago
Closed 4 weeks ago
#70910 closed defect (fixed)
curl +ares: Dependency cycle: c-ares -> cmake -> curl
Reported by: | ShadSterling (Shad Sterling) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.10.1 |
Keywords: | Cc: | tobypeterson | |
Port: | curl, c-ares |
Description
2018 Intel macbook just upgraded to Sequoia, attempting to migrate ports.
After port migrate
(and port restore --last
) failed on 38 ports I'm trying to manually migrate them.
I reinstalled several of the failed ports given in the migration/restore output before learning that port snapshot --all --diff
would show the original variants; now I'm trying to re-re-install those ports with the original variants.
When re-re-installing curl it's getting confused about the variants and not giving a log file for more details
I'm running port clean curl c-ares; port install curl +ares+brotli+gsasl+http2+idn+psl+sftp_scp+ssl+universal+zstd
And getting
---> Cleaning curl ---> Cleaning c-ares Error: Requested variants "+brotli+http2+idn+psl+ssl+universal+zstd" do not match those the build was started with: "+ares+brotli+gsasl+http2+idn+psl+sftp_scp+ssl+universal+zstd". Error: Please use the same variants again, or run 'port clean curl' first to remove the existing partially completed build. Error: Unable to execute port curl: upgrade c-ares failed
Change History (5)
comment:1 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)
Cc: | tobypeterson added |
---|---|
Port: | curl c-ares added |
Summary: | port install not using variants given on command line → curl +ares: Dependency cycle: c-ares -> cmake -> curl |
Ah: you have found a dependency cycle. c-ares depends on cmake which depends on curl. So to avoid this, you should first install curl without the +ares variant. Then later you can reinstall it with the +ares variant.
We do have a cmake-bootstrap port that has no dependencies that can be used to break dependency cycles in situations where we only need a basic cmake. For example, we use it for the brotli port, since curl depends on brotli when using the +brotli variant. We should probably switch the c-ares port to using cmake-bootstrap as well.
comment:3 Changed 7 weeks ago by ryandesign (Ryan Carsten Schmidt)
Component: | base → ports |
---|
comment:4 Changed 7 weeks ago by kencu (Ken)
Keywords: | sequoia removed |
---|
comment:5 Changed 4 weeks ago by ryandesign (Ryan Carsten Schmidt)
Owner: | set to ryandesign |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Replying to ShadSterling:
Normally you would use
sudo
before both of these commands. Are you usingsudo
and just forgot to mention it? Or are you using a root shell? Or is your MacPorts installed without root privileges?I can't reproduce this problem on macOS 12.
Weird that it's complaining about curl's variants but then claims it's c-ares that failed to upgrade. Is c-ares already installed? If so, is it installed with the universal variant? Is it outdated?