client-toolkit icon indicating copy to clipboard operation
client-toolkit copied to clipboard

Unable to build on macOS

Open edfloreshz opened this issue 11 months ago • 4 comments

Building COSMIC apps on macOS is not possible because of this.

Log

error[E0432]: unresolved imports `rustix::pipe::pipe_with`, `rustix::pipe::PipeFlags`
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/smithay-client-toolkit-0.19.2/src/data_device_manager/data_offer.rs:439:24
    |
439 |     use rustix::pipe::{pipe_with, PipeFlags};
    |                        ^^^^^^^^^  ^^^^^^^^^ no `PipeFlags` in `pipe`
    |                        |
    |                        no `pipe_with` in `pipe`
    |
note: found an item that was configured out
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:108:8
    |
108 | pub fn pipe_with(flags: PipeFlags) -> io::Result<(OwnedFd, OwnedFd)> {
    |        ^^^^^^^^^
note: the item is gated here
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:99:1
    |
99  | / #[cfg(not(any(
100 | |     apple,
101 | |     target_os = "aix",
102 | |     target_os = "espidf",
103 | |     target_os = "haiku",
104 | |     target_os = "nto"
105 | | )))]
    | |____^
note: found an item that was configured out
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:25:31
    |
25  | pub use backend::pipe::types::PipeFlags;
    |                               ^^^^^^^^^
note: the item is gated here
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:24:1
    |
24  | #[cfg(not(apple))]
    | ^^^^^^^^^^^^^^^^^^

error[E0432]: unresolved imports `rustix::pipe::pipe_with`, `rustix::pipe::PipeFlags`
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/smithay-client-toolkit-0.19.2/src/primary_selection/offer.rs:39:28
    |
39  |         use rustix::pipe::{pipe_with, PipeFlags};
    |                            ^^^^^^^^^  ^^^^^^^^^ no `PipeFlags` in `pipe`
    |                            |
    |                            no `pipe_with` in `pipe`
    |
note: found an item that was configured out
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:108:8
    |
108 | pub fn pipe_with(flags: PipeFlags) -> io::Result<(OwnedFd, OwnedFd)> {
    |        ^^^^^^^^^
note: the item is gated here
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:99:1
    |
99  | / #[cfg(not(any(
100 | |     apple,
101 | |     target_os = "aix",
102 | |     target_os = "espidf",
103 | |     target_os = "haiku",
104 | |     target_os = "nto"
105 | | )))]
    | |____^
note: found an item that was configured out
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:25:31
    |
25  | pub use backend::pipe::types::PipeFlags;
    |                               ^^^^^^^^^
note: the item is gated here
   --> /Users/eduardo/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.41/src/pipe.rs:24:1
    |
24  | #[cfg(not(apple))]
    | ^^^^^^^^^^^^^^^^^^
For more information about this error, try `rustc --explain E0432`.
error: could not compile `smithay-client-toolkit` (lib) due to 2 previous errors

edfloreshz avatar Dec 10 '24 11:12 edfloreshz

I think smithay-client-toolkit can't be a dependency for Cosmic apps on macOS. I think that needs to be fixed on whatever crate lists smithay-client-toolkit as a dependency to not do that on macOS.

tronical avatar Dec 10 '24 12:12 tronical

This is the dependency tree, reduced for legibility.

├── libcosmic v0.1.0 (https://github.com/pop-os/libcosmic.git#0ef3cced)
│   ├── cosmic-client-toolkit v0.1.0 (https://github.com/pop-os/cosmic-protocols?rev=c8d3a1c#c8d3a1c3)
│   │   ├── smithay-client-toolkit v0.19.2

edfloreshz avatar Dec 10 '24 12:12 edfloreshz

Indeed, in that case if libcosmic were to enable cosmic apps on macOS, it is the crate that needs to be changed to not depend on wayland crates like these. For example in places like these.

tronical avatar Dec 10 '24 12:12 tronical

Yeah. Technically it would be possible to port smithay-client-toolkit to run on macOS (I've run wayland-rs on macOS), but you'd expect software not to pull in Wayland dependencies on macOS.

ids1024 avatar Dec 10 '24 16:12 ids1024