[curl] ngtcp2 http3 curl features#40219
Conversation
73e409f to
657223b
Compare
|
c-ares should be fixed in c-ares/c-ares@3fd5925 |
|
@bradh352 Thank you for your fix! |
|
@dg0yt I am trying to debug on my local windows why cmake fail. |
|
@dg0yt I cannot reproduce the error in my local machine. Maybe is a CI thing? Maybe permissions? |
It is unclear because there is no error message. It might help to inspect the file. |
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@JonLiu1993 Can you stop the ci for this PR? |
|
This PR depends on #40224 |
657223b to
8e37981
Compare
|
@JonLiu1993 This PR is ready for review. |
| set(USE_NGTCP2 ON) | ||
| include_directories(${NGTCP2_INCLUDE_DIRS}) | ||
| - list(APPEND CURL_LIBS ${NGTCP2_LIBRARIES}) | ||
| + list(APPEND CURL_LIBS ${NGTCP2_LIBRARIES} ${MATH_LIBRARY}) |
There was a problem hiding this comment.
We don't want to link m with the absolute path. You can use find_library to check for it, but just link m.
There was a problem hiding this comment.
ok. I already submit this patch to upstream and they merge it.
So next version of curl, you will need to patch it again.
There was a problem hiding this comment.
And the other issue is that fix belongs to the wolfssl cmake package.
curl/curl#14343 (comment)
There was a problem hiding this comment.
I think it better to create a PR and fix the way you think it is, instead just tell them a comment on a closed PR.
There was a problem hiding this comment.
Adding a note close to the issue is just the quick start. Creating good PRs is done separately.
|
|
||
| if(FEATURES MATCHES "http3-(gnutls|wolfssl)") | ||
| if("http3-gnutls" IN_LIST FEATURES AND "http3-wolfssl" IN_LIST FEATURES) | ||
| message(FATAL_ERROR "Cannot have both features of http3 (http3-gnutls and http3-wolfssl). Choose one") |
There was a problem hiding this comment.
So these features implement alternatives.
Basically curl wouldn't need two http3 features because the choice of ssl backend has already been made with other features. But you want to have a dependency on ngtcp2 with the right ssl feature enabled.
1496aa2 to
85363e5
Compare
|
@JonLiu1993 I answered all the points for @dg0yt . |
b89c1ff to
82867ef
Compare
|
@JonLiu1993 |
|
We'll be discussing this one in the next meeting. |
|
Related / new information from last we looked: https://samueloph.dev/blog/debian-curl-now-supports-http3/ |
Unfortuately, the Debian situation can't be easily serve as a guide for vcpkg. (Binary packages, alternative packages, GPL, schannel.) |
I agree, we certainly wouldn't be able to do this for Windows. But we at least aren't going to be trailblazers on doing this. I'm still mildly pessimistic about being able to ship this as is but I haven't truly looked into the details. In particular, I'm worried about vcpkg customers out there who might be talking to OpenSSL in their process with the expectation of that affecting libcurl, that would break if we changed the default backend. Crucially, the system's configured TLS root certificates need to be respected at a bare minimum; this is what forces SChannel on Windows. |
Yeah, this looks to be the case. The thing that changed in Debian is what curl the command line utility uses -- it now uses I'm going to ask other maintainers for more thoughts given this information. |
1373a36 to
8fecd20
Compare
|
@BillyONeal Thank you in advance! 🙏🏻 |
|
I explained the above and @AugP @vicroms @JavierMatosD @data-queue and @ras0219-msft seem convinced that Debian unfortunately can't serve as a blueprint for us here, given that we model We would still be extremely happy with instructions in the port describing how to make an overlay-port that has these effects, but we don't think changing the default TLS implementation from OpenSSL on the POSIX platforms is a change we can safely make at this time. :( |
|
Thank you for the details answer. |
It breaks multi-TLS meaning we would have to make requesting one of the other TLS backends require making an overlay-port under https://learn.microsoft.com/en-us/vcpkg/contributing/maintainer-guide#do-not-use-features-to-implement-alternatives (I'm not closing the PR though because this area is still kind of in a state of flux) |
8fecd20 to
0904e42
Compare
|
Is this replaced by #46459 ? |
|
Yes. |
Add ngtcp2 http3 curl features
These features is not experimental in http3 curl:
https://curl.se/docs/http3.html
./vcpkg x-add-version --alland committing the result.