Skip to content

Commit 59520a4

Browse files
authored
Upgrade cURL to v8.19.0 (#18)
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
1 parent eef9a60 commit 59520a4

302 files changed

Lines changed: 16702 additions & 20367 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

DEPENDENCIES

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
vendorpull https://github.com/sourcemeta/vendorpull 1dcbac42809cf87cb5b045106b863e17ad84ba02
22
mbedtls https://github.com/Mbed-TLS/mbedtls v3.6.5
33
zlib https://github.com/madler/zlib v1.3.2
4-
curl https://github.com/curl/curl curl-8_18_0
4+
curl https://github.com/curl/curl curl-8_19_0
55
nghttp2 https://github.com/nghttp2/nghttp2 v1.67.1
66
cpr https://github.com/libcpr/cpr 1.14.2
77
c-ares https://github.com/c-ares/c-ares v1.34.5

cmake/FindCURL.cmake

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ if(NOT CURL_FOUND)
6666
"${CURL_DIR}/lib/easygetopt.c"
6767
"${CURL_DIR}/lib/cf-https-connect.c"
6868
"${CURL_DIR}/lib/mime.h"
69-
"${CURL_DIR}/lib/strdup.h"
69+
"${CURL_DIR}/lib/curlx/strdup.h"
7070
"${CURL_DIR}/lib/fileinfo.h"
7171
"${CURL_DIR}/lib/curl_ldap.h"
7272
"${CURL_DIR}/lib/amigaos.h"
@@ -99,7 +99,8 @@ if(NOT CURL_FOUND)
9999
"${CURL_DIR}/lib/tftp.c"
100100
"${CURL_DIR}/lib/curl_ntlm_core.h"
101101
"${CURL_DIR}/lib/mqtt.c"
102-
"${CURL_DIR}/lib/config-plan9.h"
102+
"${CURL_DIR}/lib/curlx/basename.c"
103+
"${CURL_DIR}/lib/curlx/basename.h"
103104
"${CURL_DIR}/lib/noproxy.h"
104105
"${CURL_DIR}/lib/gopher.h"
105106
"${CURL_DIR}/lib/multihandle.h"
@@ -147,13 +148,11 @@ if(NOT CURL_FOUND)
147148
"${CURL_DIR}/lib/vquic/curl_quiche.h"
148149
"${CURL_DIR}/lib/vquic/vquic.c"
149150
"${CURL_DIR}/lib/vquic/curl_ngtcp2.c"
150-
"${CURL_DIR}/lib/vquic/curl_osslq.c"
151151
"${CURL_DIR}/lib/vquic/vquic-tls.c"
152152
"${CURL_DIR}/lib/vquic/curl_quiche.c"
153153
"${CURL_DIR}/lib/vquic/curl_ngtcp2.h"
154154
"${CURL_DIR}/lib/vquic/vquic.h"
155155
"${CURL_DIR}/lib/vquic/vquic-tls.h"
156-
"${CURL_DIR}/lib/vquic/curl_osslq.h"
157156
"${CURL_DIR}/lib/vquic/vquic_int.h"
158157
"${CURL_DIR}/lib/cookie.h"
159158
"${CURL_DIR}/lib/uint-spbset.c"
@@ -168,7 +167,7 @@ if(NOT CURL_FOUND)
168167
"${CURL_DIR}/lib/multiif.h"
169168
"${CURL_DIR}/lib/curl_endian.h"
170169
"${CURL_DIR}/lib/config-win32.h"
171-
"${CURL_DIR}/lib/strdup.c"
170+
"${CURL_DIR}/lib/curlx/strdup.c"
172171
"${CURL_DIR}/lib/mime.c"
173172
"${CURL_DIR}/lib/uint-bset.c"
174173
"${CURL_DIR}/lib/strequal.c"
@@ -181,7 +180,7 @@ if(NOT CURL_FOUND)
181180
"${CURL_DIR}/lib/multi_ev.h"
182181
"${CURL_DIR}/lib/doh.h"
183182
"${CURL_DIR}/lib/http_negotiate.h"
184-
"${CURL_DIR}/lib/curl_setup_once.h"
183+
"${CURL_DIR}/lib/curlx/snprintf.c"
185184
"${CURL_DIR}/lib/curl_get_line.h"
186185
"${CURL_DIR}/lib/http_aws_sigv4.c"
187186
"${CURL_DIR}/lib/sockaddr.h"
@@ -250,7 +249,6 @@ if(NOT CURL_FOUND)
250249
"${CURL_DIR}/lib/curlx/strcopy.c"
251250
"${CURL_DIR}/lib/curlx/strcopy.h"
252251
"${CURL_DIR}/lib/curlx/snprintf.h"
253-
"${CURL_DIR}/lib/curlx/binmode.h"
254252
"${CURL_DIR}/lib/setup-vms.h"
255253
"${CURL_DIR}/lib/hostip.h"
256254
"${CURL_DIR}/lib/content_encoding.h"
@@ -454,6 +452,7 @@ if(NOT CURL_FOUND)
454452
target_link_libraries(curl PRIVATE ws2_32)
455453
target_link_libraries(curl PRIVATE Crypt32)
456454
target_link_libraries(curl PRIVATE Secur32)
455+
target_link_libraries(curl PRIVATE Iphlpapi)
457456
elseif(CMAKE_SYSTEM_NAME STREQUAL "MSYS")
458457
set(CURL_OS "\"MSYS\"")
459458
set(CURL_CA_BUNDLE "/usr/ssl/certs/ca-bundle.crt")
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: Juan Cruz Viotti <jv@jviotti.com>
3+
Date: Thu, 13 Mar 2026 00:00:00 +0000
4+
Subject: [PATCH] Fix Schannel ALPN init order on Windows
5+
6+
Curl_ssl_init() is called before Curl_win32_init() in global_init().
7+
The new curlx_verify_windows_version() requires curlx_verify_windows_init()
8+
to be called first (from Curl_win32_init), but schannel_init() (called via
9+
Curl_ssl_init) uses curlx_verify_windows_version() to check ALPN support.
10+
Without the init, it falls back to VerifyVersionInfoW which lies about the
11+
OS version on Windows 10+ without a compatibility manifest, causing the
12+
ALPN check for >= 6.3 to fail and disabling HTTP/2.
13+
14+
Move Curl_win32_init() before Curl_ssl_init() so the version function
15+
pointer is set up before Schannel needs it.
16+
---
17+
lib/easy.c | 10 +++++-----
18+
1 file changed, 5 insertions(+), 5 deletions(-)
19+
20+
diff --git a/lib/easy.c b/lib/easy.c
21+
index d05674e..a74d1da 100644
22+
--- a/lib/easy.c
23+
+++ b/lib/easy.c
24+
@@ -140,6 +140,11 @@ static CURLcode global_init(long flags, bool memoryfuncs)
25+
goto fail;
26+
}
27+
28+
+ if(Curl_win32_init(flags)) {
29+
+ DEBUGF(curl_mfprintf(stderr, "Error: win32_init failed\n"));
30+
+ goto fail;
31+
+ }
32+
+
33+
if(!Curl_ssl_init()) {
34+
DEBUGF(curl_mfprintf(stderr, "Error: Curl_ssl_init failed\n"));
35+
goto fail;
36+
@@ -150,11 +155,6 @@ static CURLcode global_init(long flags, bool memoryfuncs)
37+
goto fail;
38+
}
39+
40+
- if(Curl_win32_init(flags)) {
41+
- DEBUGF(curl_mfprintf(stderr, "Error: win32_init failed\n"));
42+
- goto fail;
43+
- }
44+
-
45+
if(Curl_amiga_init()) {
46+
DEBUGF(curl_mfprintf(stderr, "Error: Curl_amiga_init failed\n"));
47+
goto fail;
48+
--
49+
2.47.1

vendor/curl.mask

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/curl/COPYING

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/curl/include/curl/curl.h

Lines changed: 47 additions & 39 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)