#65063 closed defect (fixed)
bootstrapping Macports for curl now requires gcc7 and cmake (!) due to sneaked dependencies on brotli and nghttp2
Reported by: | barracuda156 | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.2 |
Keywords: | leopard, tiger, snowleopard | Cc: | |
Port: | curl |
Description
Is it possible to make these options a matter of choice rather than imposed ones? At least for older systems.
Dependency on nghttp2
also introduced another problem on Leopard: Macports complains that nghttp2
cannot be installed as universal:
36-61:~ svacchanda$ sudo port -v -n upgrade curl +universal ---> Computing dependencies for curl. Error: Cannot install curl for the archs 'ppc ppc64' because Error: its dependency nghttp2 cannot build for the required archs. Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
(It is probably possible, however again, now a simple task requires manual fixes.)
Change History (6)
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:
The brotli port doesn't appear to have any special requirements so adding that dependency probably didn't cause this.
nghttp2 requires C++14 which will bring in new compiler requirements on older systems. Moving http/2 support back to a variant would essentially undo #65056 in which it had been requested to make http/2 support on by default. We can certainly discuss whether reverting that part of the change is the right thing to do.
brotli
requires cmake
, cmake
requires gcc
version that is absent on darwin8–darwin10.
macmini:~ svacchanda$ port deps brotli Full Name: brotli @1.0.9_2 Build Dependencies: cmake
Would you consider making brotli
and nghttp2
default dependencies for >10.6 case? This solution would not undo anything that has been requested for current systems, but at the same time would fix the problem for 10.6 and earlier.
Whether it is done via moving brotli
and nghttp2
back to variants, but making these variants default for darwin > 10, or via config.args-replace
for the same, is perhaps irrelevant.
- S. To give a context, we all know that system
curl
is defunct in =< 10.6, andmpstats
does not work, unless Macports is built against its owncurl
, which requires a bootstrap of Macports in alternative prefix. It is already a time-consuming and painful process on older machines, and requirung to buildgcc7
andcmake
twice just to makempstats
work is insane. Already very few people bother to take these steps to provide Macports with statistics, and current change tocurl
port makes it prohibitively costly.
comment:3 follow-up: 4 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:4 Changed 3 years ago by barracuda156
Thank you!
brotli
still requires cmake-bootstrap
, but we can live with that.
comment:5 Changed 6 months ago by ryandesign (Ryan Carsten Schmidt)
comment:6 Changed 6 months ago by kencu (Ken)
to get past the somewhat onerous deps to build and install curl for the /opt/bootstrap
installation as time has gone by, I came up with this "minimalcurl" port that I have been using the past few years.
https://github.com/kencu/macports-ports/blob/curl-minimal/net/minimalcurl/Portfile
It has minimal deps, as few as I can manage anyway, and last I checked, the only system that required a compiler installation into /opt/bootstrap
was Tiger.
The brotli port doesn't appear to have any special requirements so adding that dependency probably didn't cause this.
nghttp2 requires C++14 which will bring in new compiler requirements on older systems. Moving http/2 support back to a variant would essentially undo #65056 in which it had been requested to make http/2 support on by default. We can certainly discuss whether reverting that part of the change is the right thing to do.
Your complaint about nghttp2 being unbuildable as universal on PowerPC needs to be filed against nghttp2, or conceivably against the gcc ports that lack the ability to build things universal.