hyperium / hyper

An HTTP library for Rust
https://hyper.rs
MIT License
14.08k stars 1.55k forks source link

Problems building hyper on linux for curl CI #3602

Closed icing closed 3 months ago

icing commented 3 months ago

Version current master

Platform Github CI linux, debian unstable

Description

For curl CI we build hyper. This worked until today:

RUSTFLAGS="--cfg hyper_unstable_ffi" cargo +nightly rustc --features client,http1,http2,ffi -Z unstable-options --crate-type cdylib

    Updating crates.io index
 Downloading crates ...
  Downloaded http-body v1.0.0
  Downloaded equivalent v1.0.1
  Downloaded futures-core v0.3.30
  Downloaded fnv v1.0.7
  Downloaded autocfg v1.1.0
  Downloaded want v0.3.1
  Downloaded futures-channel v0.3.30
  Downloaded try-lock v0.2.5
  Downloaded slab v0.4.9
  Downloaded tokio-macros v2.2.0
  Downloaded quote v1.0.35
  Downloaded pin-utils v0.1.0
  Downloaded unicode-ident v1.0.12
  Downloaded tracing-core v0.1.32
  Downloaded mio v0.8.11
  Downloaded tokio-util v0.7.10
  Downloaded syn v2.0.52
  Downloaded h2 v0.4.2
  Downloaded tokio v1.36.0
  Downloaded libc v0.2.153
  Downloaded hashbrown v0.14.3
  Downloaded futures-util v0.3.30
  Downloaded tracing v0.1.40
  Downloaded indexmap v2.2.5
  Downloaded http v1.1.0
  Downloaded socket2 v0.5.6
  Downloaded smallvec v1.13.1
  Downloaded proc-macro2 v1.0.79
  Downloaded pin-project-lite v0.2.13
  Downloaded once_cell v1.19.0
  Downloaded httparse v1.8.0
  Downloaded itoa v1.0.10
  Downloaded bytes v1.5.0
  Downloaded num_cpus v1.16.0
  Downloaded http-body-util v0.1.1
  Downloaded futures-task v0.3.30
  Downloaded futures-sink v0.3.30
   Compiling bytes v1.5.0
   Compiling pin-project-lite v0.2.13
   Compiling futures-core v0.3.30
   Compiling once_cell v1.19.0
   Compiling fnv v1.0.7
   Compiling itoa v1.0.10
   Compiling autocfg v1.1.0
   Compiling tracing-core v0.1.32
   Compiling httparse v1.8.0
   Compiling slab v0.4.9
   Compiling http v1.1.0
   Compiling tracing v0.1.40
   Compiling tokio v1.36.0
   Compiling hashbrown v0.14.3
   Compiling futures-sink v0.3.30
   Compiling equivalent v1.0.1
   Compiling pin-utils v0.1.0
   Compiling futures-task v0.3.30
   Compiling libc v0.2.153
   Compiling indexmap v2.2.5
   Compiling http-body v1.0.0
   Compiling futures-util v0.3.30
   Compiling try-lock v0.2.5
   Compiling want v0.3.1
   Compiling http-body-util v0.1.1
   Compiling futures-channel v0.3.30
   Compiling tokio-util v0.7.10
   Compiling smallvec v1.13.1
   Compiling h2 v0.4.2
   Compiling hyper v1.2.0 (/home/runner/hyper)
error[E0432]: unresolved import `futures_util::stream::FuturesUnordered`
   --> src/ffi/task.rs:11:28
    |
11  | use futures_util::stream::{FuturesUnordered, Stream};
    |                            ^^^^^^^^^^^^^^^^ no `FuturesUnordered` in `stream`
    |
note: found an item that was configured out
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/stream/mod.rs:121:34
    |
121 | pub use self::futures_unordered::FuturesUnordered;
    |                                  ^^^^^^^^^^^^^^^^
    = note: the item is gated behind the `alloc` feature

error[E0425]: cannot find function `waker_ref` in module `futures_util::task`
   --> src/ffi/task.rs:208:41
    |
208 |         let waker = futures_util::task::waker_ref(&self.is_woken);
    |                                         ^^^^^^^^^ not found in `futures_util::task`
    |
note: found an item that was configured out
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/task/mod.rs:31:24
    |
31  | pub use futures_task::{waker_ref, WakerRef};
    |                        ^^^^^^^^^
    = note: the item is gated behind the `alloc` feature

error[E0405]: cannot find trait `ArcWake` in module `futures_util::task`
   --> src/ffi/task.rs:257:26
    |
257 | impl futures_util::task::ArcWake for ExecWaker {
    |                          ^^^^^^^ not found in `futures_util::task`
    |
note: found an item that was configured out
   --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.30/src/task/mod.rs:23:23
    |
23  | pub use futures_task::ArcWake;
    |                       ^^^^^^^
    = note: the item is gated behind the `alloc` feature

Some errors have detailed explanations: E0405, E0425, E0432.
For more information about an error, try `rustc --explain E0405`.
error: could not compile `hyper` (lib) due to 3 previous errors

Curiously, this works on my macOS machine after a rustup. Some dependency mess-ups?

Anything we can do?

seanmonstar commented 3 months ago

This was just fixed in #3599.

Assuming your CI always checks out master, a new run should just work.

icing commented 3 months ago

Thanks @seanmonstar! Can confirm that it works again.