Revert commit c0a4536cec (curl: Disable schannel TLS 1.3 support on
Windows 11, 2022-11-09, v3.25.0~13^2). The curl bug it avoided was
fixed by upstream curl commit `4f42150d0` (sendf: change Curl_read_plain
to wrap Curl_recv_plain , 2022-11-14, curl-7_87_0~129), which we have
since recently updating to curl 7.87.0.
Issue: #24147
On a nightly build using LCC 1.23, OpenSSL 2.0.0 is found but does
not seem to have the `X509_STORE_up_ref` symbol used by curl 7.87.
Pending further investigation, disable use of the symbol based on
the compiler version.
Curl 7.85.0 introduced support for TLS 1.3 support with schannel.
We've observed connection failures in some cases, so disable the
support pending further investigation.
Fixes: #24147
LibreSSL older than 2.6.0 is not supported correctly
in upstream curl, and as a consequence, in libcmcurl.
Such LibreSSL versions can be used in old distros,
like OS Elbrus 4.x and 5.x, so until this fix, CMake
wasn't buildable there either.
Backport upstream curl commit `ee97f1769` (schannel: set ALPN length
correctly for HTTP/2, 2021-05-26) to get a fix to curl issue 7138,
a regression in 7.77.0.
Fixes: #22355
Backport upstream curl commit 2c5ec339ea (Curl_follow: accept
non-supported schemes for "fake" redirects, 2018-11-01) to get
a fix to curl issue 3210, a regression in 7.62.0.
When generating `curl_config.h`, add size information for `long long`
and `__int64` types. These are needed as candidates for defining the
`ssize_t` type because on MSVC, `long` is not the same size as `size_t`.
This problem did not affect upstream curl because it computes the
`ssize_t` type in CMake code where all sizes are available. CMake's
port computes it in preprocessor logic because universal binaries on
macOS do not know type sizes until compile time.
Fixes: #18477
* upstream-curl:
curl 2017-06-14 (54b636f1)
Resolve a logical conflict in `Utilities/cmcurl/CMakeLists.txt`
by disabling CA bundle/path detection for build within CMake.
CMake already handles locating a CA bundle/path at runtime.
* upstream-curl:
curl 2017-04-19 (d957e218)
Resolve conflicts in `CMakeLists.txt` in favor of the upstream version.
We will re-apply our logic as needed in following commits.
Resolve conflicts by taking upstream side when possible and otherwise
integrating the changes from both sides. Be carful in CMakeLists.txt
where the OPENSSL code block that we modified previously has moved, and
preserve our previous modifications in the new location.
Move CMAKE_USE_OPENSSL and CURL_CA_BUNDLE up to the top of CMake so that
CMake's own sources can know their values. Add the CURL_CA_PATH option
at the top and honor it as part of the curl build.
Set curl build options as needed for CMake rather than presenting them
to the user in the cache. Drop the CMAKE_BUILD_CURL_SHARED option for
now.
Change the curl library name to 'cmcurl'. Disable blocks of code within
curl CMakeLists.txt files that we do not need for CMake, but leave the
code in place to make merging with curl updates easier.