Skip to content

Commit 8b34786

Browse files
authored
Update curl to 8.15.0 (alexcrichton#620)
* Update curl to 8.15.0 This updates curl to 8.15.0. Changelog: https://curl.se/ch/8.15.0.html Blog: https://daniel.haxx.se/blog/2025/07/16/curl-8-15-0/ A fairly major change here is that support for SecureTransport on macOS has been dropped. I decided to switch it over to OpenSSL. I don't know how well this is going to work. Apple's version of curl uses LibreSSL, with some minor changes. The main concern is how well it will find certificate stores, since IIRC those can be stored in the Keychain. The basic tests of accessing regular websites seem to pass for me. * CI: Switch to aarch64-apple-darwin This changes the macos CI job to use the aarch64-apple-darwin target instead of x86_64-apple-darwin. The Rust project has demoted x86_64 to tier 2 (https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html), and I think we should be testing the aarch64-apple-darwin target instead since it is tier 1. macos-latest is currently macos-14 which is aarch64. The x86_64 tests have been running under emulation.
1 parent 2cb0ec8 commit 8b34786

File tree

4 files changed

+10
-38
lines changed

4 files changed

+10
-38
lines changed

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "curl"
3-
version = "0.4.48"
3+
version = "0.4.49"
44
authors = ["Alex Crichton <[email protected]>"]
55
license = "MIT"
66
repository = "https://github.com/alexcrichton/curl-rust"
@@ -14,11 +14,11 @@ edition = "2018"
1414

1515
[dependencies]
1616
libc = "0.2.42"
17-
curl-sys = { path = "curl-sys", version = "0.4.77", default-features = false }
17+
curl-sys = { path = "curl-sys", version = "0.4.83", default-features = false }
1818
socket2 = "0.6.0"
1919

2020
# Unix platforms use OpenSSL for now to provide SSL functionality
21-
[target.'cfg(all(unix, not(target_os = "macos")))'.dependencies]
21+
[target.'cfg(all(unix))'.dependencies]
2222
openssl-sys = { version = "0.9.64", optional = true }
2323
openssl-probe = { version = "0.1.2", optional = true }
2424

curl-sys/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "curl-sys"
3-
version = "0.4.82+curl-8.14.1"
3+
version = "0.4.83+curl-8.15.0"
44
authors = ["Alex Crichton <[email protected]>"]
55
links = "curl"
66
build = "build.rs"
@@ -26,7 +26,7 @@ version = "0.15"
2626
optional = true
2727
features = ["no_log_capture"]
2828

29-
[target.'cfg(all(unix, not(target_os = "macos")))'.dependencies]
29+
[target.'cfg(all(unix))'.dependencies]
3030
openssl-sys = { version = "0.9.64", optional = true }
3131

3232
[target.'cfg(windows)'.dependencies]

curl-sys/build.rs

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ fn main() {
108108
.replace("@LIBCURL_LIBS@", "")
109109
.replace("@SUPPORT_FEATURES@", "")
110110
.replace("@SUPPORT_PROTOCOLS@", "")
111-
.replace("@CURLVERSION@", "8.14.1"),
111+
.replace("@CURLVERSION@", "8.15.0"),
112112
)
113113
.unwrap();
114114

@@ -162,11 +162,13 @@ fn main() {
162162
.file("curl/lib/curl_trc.c")
163163
.file("curl/lib/curlx/base64.c")
164164
.file("curl/lib/curlx/dynbuf.c")
165+
.file("curl/lib/curlx/inet_ntop.c")
165166
.file("curl/lib/curlx/inet_pton.c")
166167
.file("curl/lib/curlx/nonblock.c")
167168
.file("curl/lib/curlx/strparse.c")
168169
.file("curl/lib/curlx/timediff.c")
169170
.file("curl/lib/curlx/timeval.c")
171+
.file("curl/lib/curlx/wait.c")
170172
.file("curl/lib/curlx/warnless.c")
171173
.file("curl/lib/cw-out.c")
172174
.file("curl/lib/cw-pause.c")
@@ -194,7 +196,6 @@ fn main() {
194196
.file("curl/lib/http_proxy.c")
195197
.file("curl/lib/idn.c")
196198
.file("curl/lib/if2ip.c")
197-
.file("curl/lib/inet_ntop.c")
198199
.file("curl/lib/llist.c")
199200
.file("curl/lib/macos.c")
200201
.file("curl/lib/md5.c")
@@ -333,23 +334,12 @@ fn main() {
333334
.file("curl/lib/http_negotiate.c")
334335
.file("curl/lib/curl_sspi.c")
335336
.file("curl/lib/socks_sspi.c")
337+
.file("curl/lib/vauth/krb5_sspi.c")
336338
.file("curl/lib/vauth/spnego_sspi.c")
337339
.file("curl/lib/vauth/vauth.c")
338340
.file("curl/lib/vtls/schannel.c")
339341
.file("curl/lib/vtls/schannel_verify.c")
340342
.file("curl/lib/vtls/x509asn1.c");
341-
} else if target.contains("-apple-") {
342-
cfg.define("USE_SECTRANSP", None)
343-
.file("curl/lib/vtls/cipher_suite.c")
344-
.file("curl/lib/vtls/sectransp.c")
345-
.file("curl/lib/vtls/x509asn1.c");
346-
if xcode_major_version().map_or(true, |v| v >= 9) {
347-
// On earlier Xcode versions (<9), defining HAVE_BUILTIN_AVAILABLE
348-
// would cause __bultin_available() to fail to compile due to
349-
// unrecognized platform names, so we try to check for Xcode
350-
// version first (if unknown, assume it's recent, as in >= 9).
351-
cfg.define("HAVE_BUILTIN_AVAILABLE", "1");
352-
}
353343
} else {
354344
cfg.define("USE_OPENSSL", None)
355345
.file("curl/lib/vtls/openssl.c");
@@ -562,24 +552,6 @@ fn try_pkg_config() -> bool {
562552
true
563553
}
564554

565-
fn xcode_major_version() -> Option<u8> {
566-
let status = Command::new("xcode-select").arg("-p").status().ok()?;
567-
if status.success() {
568-
let output = Command::new("xcodebuild").arg("-version").output().ok()?;
569-
if output.status.success() {
570-
let stdout = String::from_utf8_lossy(&output.stdout);
571-
println!("xcode version: {}", stdout);
572-
let mut words = stdout.split_whitespace();
573-
if words.next()? == "Xcode" {
574-
let version = words.next()?;
575-
return version[..version.find('.')?].parse().ok();
576-
}
577-
}
578-
}
579-
println!("unable to determine Xcode version, assuming >= 9");
580-
None
581-
}
582-
583555
fn curl_config_reports_http2() -> bool {
584556
let output = Command::new("curl-config").arg("--features").output();
585557
let output = match output {

curl-sys/curl

Submodule curl updated 1182 files

0 commit comments

Comments
 (0)