Building the standalone sync-server using the instructions from Sync Server - Anki Manual in a fresh source checkout fails.
$ ./ninja extract:protoc
$ cargo install --path rslib/sync
[snip]
error: failed to run custom build command for `anki_i18n v0.0.0 (/tmp/anki/rslib/i18n)`
[snip]
--- stderr
thread 'main' panicked at rslib/i18n/gather.rs:63:37:
called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `anki-sync-server v0.0.0 (/tmp/anki/rslib/sync)`, intermediate artifacts can be found at `/tmp/anki/target`.
after manually running ./ninja ftl_repo it still fails, which did not happen at tag 25.02.7.
$ cargo install --path rslib/sync
[snip]
error[E0432]: unresolved import `tokio::io::AsyncReadExt`
--> rslib/src/sync/http_client/io_monitor.rs:20:5
|
20 | use tokio::io::AsyncReadExt;
| ^^^^^^^^^^^^^^^^^^^^^^^ no `AsyncReadExt` in `io`
|
note: found an item that was configured out
--> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.1/src/io/mod.rs:277:131
|
277 | ...lex, empty, repeat, sink, simplex, AsyncBufReadExt, AsyncReadExt, AsyncSeekExt, AsyncWriteExt,
| ^^^^^^^^^^^^
note: the item is gated behind the `io-util` feature
--> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.1/src/io/mod.rs:268:1
|
268 | / cfg_io_util! {
269 | | mod split;
270 | | pub use split::{split, ReadHalf, WriteHalf};
271 | | mod join;
... |
279 | | };
280 | | }
| |_^
= note: this error originates in the macro `cfg_io_util` (in Nightly builds, run with -Z macro-backtrace for more info)
help: a similar name exists in the module
|
20 - use tokio::io::AsyncReadExt;
20 + use tokio::io::AsyncRead;
|
help: consider importing this trait instead
|
20 - use tokio::io::AsyncReadExt;
20 + use futures::AsyncReadExt;
|
error[E0432]: unresolved import `tokio::io::AsyncReadExt`
--> rslib/src/sync/request/header_and_stream.rs:20:5
|
20 | use tokio::io::AsyncReadExt;
| ^^^^^^^^^^^^^^^^^^^^^^^ no `AsyncReadExt` in `io`
|
note: found an item that was configured out
--> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.1/src/io/mod.rs:277:131
|
277 | ...lex, empty, repeat, sink, simplex, AsyncBufReadExt, AsyncReadExt, AsyncSeekExt, AsyncWriteExt,
| ^^^^^^^^^^^^
note: the item is gated behind the `io-util` feature
--> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.45.1/src/io/mod.rs:268:1
|
268 | / cfg_io_util! {
269 | | mod split;
270 | | pub use split::{split, ReadHalf, WriteHalf};
271 | | mod join;
... |
279 | | };
280 | | }
| |_^
= note: this error originates in the macro `cfg_io_util` (in Nightly builds, run with -Z macro-backtrace for more info)
help: a similar name exists in the module
|
20 - use tokio::io::AsyncReadExt;
20 + use tokio::io::AsyncRead;
|
help: consider importing this trait instead
|
20 - use tokio::io::AsyncReadExt;
20 + use futures::AsyncReadExt;
|
error[E0599]: no method named `read_to_end` found for struct `StreamReader` in the current scope
--> rslib/src/sync/http_client/io_monitor.rs:140:18
|
139 | / reader
140 | | .read_to_end(&mut buf)
| | -^^^^^^^^^^^ method not found in `StreamReader<MapErr<..., ...>, ...>`
| |_________________|
|
error[E0599]: `ZstdDecoder<StreamReader<MapErr<S, {closure@...}>, ...>>` is not an iterator
--> rslib/src/sync/request/header_and_stream.rs:68:10
|
67 | / reader
68 | | .take(*MAXIMUM_SYNC_PAYLOAD_BYTES_UNCOMPRESSED)
| | -^^^^ `ZstdDecoder<StreamReader<MapErr<S, {closure@...}>, ...>>` is not an iterator
| |_________|
|
|
::: /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/async-compression-0.4.25/src/tokio/bufread/mod.rs:10:1
|
10 | algos!(tokio::bufread<R>);
| ------------------------- doesn't satisfy `_: Iterator`
|
= note: the following trait bounds were not satisfied:
`async_compression::tokio::bufread::ZstdDecoder<StreamReader<futures::stream::MapErr<S, {closure@rslib/src/sync/request/header_and_stream.rs:63:22: 63:25}>, bytes::Bytes>>: std::iter::Iterator`
which is required by `&mut async_compression::tokio::bufread::ZstdDecoder<StreamReader<futures::stream::MapErr<S, {closure@rslib/src/sync/request/header_and_stream.rs:63:22: 63:25}>, bytes::Bytes>>: std::iter::Iterator`
Some errors have detailed explanations: E0432, E0599.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `anki` (lib) due to 4 previous errors
error: failed to compile `anki-sync-server v0.0.0 (/tmp/anki/rslib/sync)`, intermediate artifacts can be found at `/tmp/anki/target`.