crossterm icon indicating copy to clipboard operation
crossterm copied to clipboard

Cannot build crossterm 28.1 with use-dev-tty + event-stream features

Open apanloco opened this issue 4 months ago • 0 comments

When enabling both use-dev-tty feature and event-stream feature, latest crossterm 28.1 fails to build. This is a complete example of how to reproduce the build error:

~ ❯ cargo init crosstermtest && cd crosstermtest
    Creating binary (application) package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
~/crosstermtest master* ❯ cargo add crossterm --features use-dev-tty,event-stream
    Updating crates.io index
      Adding crossterm v0.28.1 to dependencies
             Features:
             + bracketed-paste
             + event-stream
             + events
             + filedescriptor
             + use-dev-tty
             + windows
             - libc
             - serde
    Updating crates.io index
     Locking 44 packages to latest compatible versions
      Adding hermit-abi v0.3.9 (latest: v0.4.0)
      Adding linux-raw-sys v0.4.14 (latest: v0.6.5)
      Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.3+wasi-0.2.2)
      Adding windows-sys v0.52.0 (latest: v0.59.0)
~/crosstermtest master* ❯ cat Cargo.toml | grep crossterm
name = "crosstermtest"
crossterm = { version = "0.28.1", features = ["use-dev-tty", "event-stream"] }
~/crosstermtest master* ❯ cargo build
   Compiling libc v0.2.159
   Compiling proc-macro2 v1.0.87
   ... (cut)
   Compiling filedescriptor v0.8.2
   Compiling crossterm v0.28.1
error[E0599]: no variant or associated item named `new` found for enum `FileDesc` in the current scope
   --> /home/da/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossterm-0.28.1/src/event/source/unix/tty.rs:188:36
    |
188 |                 let fd = FileDesc::new(self.wake_pipe.receiver.as_raw_fd(), false);
    |                                    ^^^ variant or associated item not found in `FileDesc<'_>`
    |
   ::: /home/da/.cargo/registry/src/index.crates.io-6f17d22bba15001f/crossterm-0.28.1/src/terminal/sys/file_descriptor.rs:30:1
    |
30  | pub enum FileDesc<'a> {
    | --------------------- variant or associated item `new` not found for this enum
    |
    = help: items from traits can only be used if the trait is implemented and in scope
    = note: the following trait defines an item `new`, perhaps you need to implement it:
            candidate #1: `parking_lot_core::thread_parker::ThreadParkerT`

For more information about this error, try `rustc --explain E0599`.
error: could not compile `crossterm` (lib) due to 1 previous error

apanloco avatar Oct 10 '24 19:10 apanloco