--- rustc-beta-src/Cargo.lock.orig 2023-05-24 16:49:05.242510531 -0700 +++ rustc-beta-src/Cargo.lock 2023-05-24 16:51:11.741865603 -0700 @@ -1197,7 +1197,6 @@ checksum = "14d05c10f541ae6f3bc5b3d923c2 dependencies = [ "cc", "libc", - "libnghttp2-sys", "libz-sys", "openssl-sys", "pkg-config", @@ -2989,16 +2988,6 @@ source = "registry+https://github.com/ru checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" [[package]] -name = "libnghttp2-sys" -version = "0.1.4+1.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03624ec6df166e79e139a2310ca213283d6b3c30810c54844f307086d4488df1" -dependencies = [ - "cc", - "libc", -] - -[[package]] name = "libz-sys" version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" --- rustc-beta-src/src/tools/cargo/Cargo.toml.orig 2023-05-24 16:49:05.244510489 -0700 +++ rustc-beta-src/src/tools/cargo/Cargo.toml 2023-05-24 16:51:04.683013189 -0700 @@ -23,7 +23,7 @@ cargo-platform = { path = "crates/cargo- cargo-util = { path = "crates/cargo-util", version = "0.2.4" } clap = "4.2.0" crates-io = { path = "crates/crates-io", version = "0.36.0" } -curl = { version = "0.4.44", features = ["http2"] } +curl = { version = "0.4.44", features = [] } curl-sys = "0.4.61" env_logger = "0.10.0" filetime = "0.2.9" --- rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs.orig 2023-05-19 19:05:42.000000000 -0700 +++ rustc-beta-src/src/tools/cargo/src/cargo/core/package.rs 2023-05-24 16:49:05.244510489 -0700 @@ -407,16 +407,9 @@ impl<'cfg> PackageSet<'cfg> { sources: SourceMap<'cfg>, config: &'cfg Config, ) -> CargoResult> { - // We've enabled the `http2` feature of `curl` in Cargo, so treat - // failures here as fatal as it would indicate a build-time problem. - let mut multi = Multi::new(); - let multiplexing = config.http_config()?.multiplexing.unwrap_or(true); - multi - .pipelining(false, multiplexing) - .with_context(|| "failed to enable multiplexing/pipelining in curl")?; - - // let's not flood crates.io with connections - multi.set_max_host_connections(2)?; + // Multiplexing is disabled because the system libcurl doesn't support it. + let multi = Multi::new(); + let multiplexing = false; Ok(PackageSet { packages: package_ids --- rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs.orig 2023-05-24 16:49:05.245510468 -0700 +++ rustc-beta-src/src/tools/cargo/src/cargo/sources/registry/http_remote.rs 2023-05-24 16:51:57.916900146 -0700 @@ -229,16 +229,8 @@ impl<'cfg> HttpRegistry<'cfg> { } self.fetch_started = true; - // We've enabled the `http2` feature of `curl` in Cargo, so treat - // failures here as fatal as it would indicate a build-time problem. - self.multiplexing = self.config.http_config()?.multiplexing.unwrap_or(true); - - self.multi - .pipelining(false, self.multiplexing) - .with_context(|| "failed to enable multiplexing/pipelining in curl")?; - - // let's not flood the server with connections - self.multi.set_max_host_connections(2)?; + // Multiplexing is disabled because the system libcurl doesn't support it. + self.multiplexing = false; if !self.quiet { self.config --- rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs.orig 2023-05-19 19:05:42.000000000 -0700 +++ rustc-beta-src/src/tools/cargo/src/cargo/util/network/mod.rs 2023-05-24 16:49:05.245510468 -0700 @@ -25,7 +25,7 @@ impl PollExt for Poll { macro_rules! try_old_curl { ($e:expr, $msg:expr) => { let result = $e; - if cfg!(target_os = "macos") { + if cfg!(any(target_os = "linux", target_os = "macos")) { if let Err(e) = result { warn!("ignoring libcurl {} error: {}", $msg, e); }