Opened 23 months ago
Closed 22 months 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 23 months ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 23 months 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 23 months ago by ryandesign (Ryan Carsten Schmidt)
| Component: | base → ports |
|---|
comment:4 Changed 23 months ago by kencu (Ken)
| Keywords: | sequoia removed |
|---|
comment:5 Changed 22 months ago by ryandesign (Ryan Carsten Schmidt)
| Owner: | set to ryandesign |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |

Replying to ShadSterling:
Normally you would use
sudobefore both of these commands. Are you usingsudoand 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?