[Bug]: atuin does not compile on windows since daemon was added
chhe opened this issue · comments
What did you expect to happen?
When compiling atuin on Windows using cargo build --no-default-features --features=client,sync,clipboard,check-update,server
the proccess completes and I get a fresh and shiny atuin.exe
.
What happened?
When compiling atuin on Windows using cargo build --no-default-features --features=client,sync,clipboard,check-update,server
the build fails with errors:
$ cargo build --no-default-features --features=client,sync,clipboard,check-update,server
Compiling atuin-client v18.2.0 (D:\workspaces\atuin\crates\atuin-client)
Compiling atuin v18.2.0 (D:\workspaces\atuin\crates\atuin)
Compiling atuin-history v0.1.0 (D:\workspaces\atuin\crates\atuin-history)
Compiling atuin-dotfiles v0.2.0 (D:\workspaces\atuin\crates\atuin-dotfiles)
Compiling atuin-daemon v0.1.0 (D:\workspaces\atuin\crates\atuin-daemon)
error[E0432]: unresolved import `tokio::net::UnixStream`
--> crates\atuin-daemon\src\client.rs:2:5
|
2 | use tokio::net::UnixStream;
| ^^^^^^^^^^^^^^^^^^^^^^ no `UnixStream` in `net`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.36.0\src\net\mod.rs:51:27
|
51 | pub use unix::stream::UnixStream;
| ^^^^^^^^^^
error[E0432]: unresolved import `tokio::net::UnixListener`
--> crates\atuin-daemon\src\server.rs:16:5
|
16 | use tokio::net::UnixListener;
| ^^^^^^^^^^^^------------
| | |
| | help: a similar name exists in the module: `TcpListener`
| no `UnixListener` in `net`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.36.0\src\net\mod.rs:50:29
|
50 | pub use unix::listener::UnixListener;
| ^^^^^^^^^^^^
error[E0432]: unresolved import `tokio_stream::wrappers::UnixListenerStream`
--> crates\atuin-daemon\src\server.rs:17:5
|
17 | use tokio_stream::wrappers::UnixListenerStream;
| ^^^^^^^^^^^^^^^^^^^^^^^^------------------
| | |
| | help: a similar name exists in the module: `TcpListenerStream`
| no `UnixListenerStream` in `wrappers`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-stream-0.1.14\src\wrappers.rs:48:28
|
48 | pub use unix_listener::UnixListenerStream;
| ^^^^^^^^^^^^^^^^^^
error[E0433]: failed to resolve: could not find `unix` in `signal`
--> crates\atuin-daemon\src\server.rs:138:35
|
138 | let mut term = tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
| ^^^^ could not find `unix` in `signal`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.36.0\src\signal\mod.rs:61:9
|
61 | pub mod unix;
| ^^^^
error[E0433]: failed to resolve: could not find `unix` in `signal`
--> crates\atuin-daemon\src\server.rs:138:63
|
138 | let mut term = tokio::signal::unix::signal(tokio::signal::unix::SignalKind::terminate())
| ^^^^ could not find `unix` in `signal`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.36.0\src\signal\mod.rs:61:9
|
61 | pub mod unix;
| ^^^^
error[E0433]: failed to resolve: could not find `unix` in `signal`
--> crates\atuin-daemon\src\server.rs:140:34
|
140 | let mut int = tokio::signal::unix::signal(tokio::signal::unix::SignalKind::interrupt())
| ^^^^ could not find `unix` in `signal`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.36.0\src\signal\mod.rs:61:9
|
61 | pub mod unix;
| ^^^^
error[E0433]: failed to resolve: could not find `unix` in `signal`
--> crates\atuin-daemon\src\server.rs:140:62
|
140 | let mut int = tokio::signal::unix::signal(tokio::signal::unix::SignalKind::interrupt())
| ^^^^ could not find `unix` in `signal`
|
note: found an item that was configured out
--> C:/Develop/msys64/home/Christian/.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.36.0\src\signal\mod.rs:61:9
|
61 | pub mod unix;
| ^^^^
Some errors have detailed explanations: E0432, E0433.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `atuin-daemon` (lib) due to 7 previous errors
Tested on x86_64-pc-windows-gnu
and x86_64-pc-windows-msvc
.
Atuin doctor output
atuin:
version: 18.2.0
sync:
cloud: false
records: true
auto_sync: true
last_sync: 2024-05-08 17:54:15.2530676 +00:00:00
shell:
name: zsh.exe
default: unknown
plugins:
- atuin
system:
os: Windows
arch: x86
version: 11 (22621)
disks:
- name: Zeh
filesystem: NTFS
Code of Conduct
- I agree to follow this project's Code of Conduct
It happens because the crate atuin-daemon
gets built regardless of the feature daemon
.
I tried making atuin-daemon
optional
and dependent on the feature daemon
in atuin
's Cargo.toml
like so:
...
[features]
....
daemon = ["atuin-daemon", "atuin-client/daemon"]
...
[dependencies]
...
atuin-daemon = { path = "../atuin-daemon", version = "0.1.0", optional = true }
...
However atuin-daemon
still gets built (without the feature daemon
enabled) and the errors are the same. Maybe my understanding of how optional
and features that enable dependecies work is wrong.
Try running cargo build --no-default-features --features client sync server clipboard check-update