Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation Error E0053 - 'could not compile 'presage' - WSL #61

Closed
Chilkos opened this issue May 31, 2021 · 6 comments · Fixed by #62
Closed

Compilation Error E0053 - 'could not compile 'presage' - WSL #61

Chilkos opened this issue May 31, 2021 · 6 comments · Fixed by #62

Comments

@Chilkos
Copy link

Chilkos commented May 31, 2021

Trying to install gurk in a fresh install of Rust (using rustup) in Windows Subsystem for Linux 2. Installing using cargo install --git https://github.com/boxdot/gurk-rs

I get the following error:

error[E0053]: method `get_sub_device_sessions` has an incompatible type for trait
   --> /home/chilko/.cargo/git/checkouts/presage-cb95f00af9f2a4a6/25cfb40/src/config/sled.rs:328:5
    |
328 |     async fn get_sub_device_sessions(&self, name: &str) -> Result<Vec<u32>, SignalProtocolError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected trait `futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send`, found trait `futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>>`
    |
    = note: expected fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send + 'async_trait)>>`
               found fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>> + 'async_trait)>>`

error[E0053]: method `delete_session` has an incompatible type for trait
   --> /home/chilko/.cargo/git/checkouts/presage-cb95f00af9f2a4a6/25cfb40/src/config/sled.rs:350:5
    |
350 |     async fn delete_session(&self, address: &ProtocolAddress) -> Result<(), SignalProtocolError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected trait `futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send`, found trait `futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>>`
    |
    = note: expected fn pointer `fn(&'life0 SledConfigStore, &'life1 ProtocolAddress) -> Pin<Box<(dyn futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send + 'async_trait)>>`
               found fn pointer `fn(&'life0 SledConfigStore, &'life1 ProtocolAddress) -> Pin<Box<(dyn futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>> + 'async_trait)>>`

error[E0053]: method `delete_all_sessions` has an incompatible type for trait
   --> /home/chilko/.cargo/git/checkouts/presage-cb95f00af9f2a4a6/25cfb40/src/config/sled.rs:366:5
    |
366 |     async fn delete_all_sessions(&self, _name: &str) -> Result<usize, SignalProtocolError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected trait `futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send`, found trait `futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>>`
    |
    = note: expected fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send + 'async_trait)>>`
               found fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>> + 'async_trait)>>`

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0053`.
error: could not compile `presage`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `gurk v0.2.0 (https://github.com/boxdot/gurk-rs#a3089d53)`, intermediate artifacts can be found at `/tmp/cargo-installxQiXMp`
@Chilkos
Copy link
Author

Chilkos commented May 31, 2021

Just tried installing this in Linux Mint 20.1 on my Intel NUC, experienced the same error.

jasper@nuc-server:~$ rustc --version
rustc 1.52.1 (9bc8c42bb 2021-05-09)
jasper@nuc-server:~$ uname -a
Linux nuc-server 5.4.0-73-generic #82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
jasper@nuc-server:~$ cat /proc/cpuinfo | grep -E 'Revision|Model'
jasper@nuc-server:~$ cat /proc/cpuinfo
model name	: Intel(R) Core(TM) i5-4250U CPU @ 1.30GHz

@gferon
Copy link
Collaborator

gferon commented May 31, 2021

Thanks for the report! I'll have a look ASAP and report back here.

@gferon
Copy link
Collaborator

gferon commented Jun 2, 2021

@Chilkos I think the merge of b9bf356 solved the issue you're seeing, could you try again?

@Chilkos
Copy link
Author

Chilkos commented Jun 3, 2021

Unfortunately still not working:

Compiling presage v0.1.0 (https://github.com/whisperfish/presage.git?rev=c290e49#c290e495)
error[E0053]: method `get_sub_device_sessions` has an incompatible type for trait
   --> /home/chilko/.cargo/git/checkouts/presage-6024bc59a812fbaf/c290e49/src/config/sled.rs:328:5
    |
328 |     async fn get_sub_device_sessions(&self, name: &str) -> Result<Vec<u32>, SignalProtocolError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected trait `futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send`, found trait `futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>>`
    |
    = note: expected fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send + 'async_trait)>>`
               found fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<Vec<u32>, libsignal_service::prelude::protocol::SignalProtocolError>> + 'async_trait)>>`

error[E0053]: method `delete_session` has an incompatible type for trait
   --> /home/chilko/.cargo/git/checkouts/presage-6024bc59a812fbaf/c290e49/src/config/sled.rs:350:5
    |
350 |     async fn delete_session(&self, address: &ProtocolAddress) -> Result<(), SignalProtocolError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected trait `futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send`, found trait `futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>>`
    |
    = note: expected fn pointer `fn(&'life0 SledConfigStore, &'life1 ProtocolAddress) -> Pin<Box<(dyn futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send + 'async_trait)>>`
               found fn pointer `fn(&'life0 SledConfigStore, &'life1 ProtocolAddress) -> Pin<Box<(dyn futures::Future<Output = Result<(), libsignal_service::prelude::protocol::SignalProtocolError>> + 'async_trait)>>`

error[E0053]: method `delete_all_sessions` has an incompatible type for trait
   --> /home/chilko/.cargo/git/checkouts/presage-6024bc59a812fbaf/c290e49/src/config/sled.rs:366:5
    |
366 |     async fn delete_all_sessions(&self, _name: &str) -> Result<usize, SignalProtocolError> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected trait `futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send`, found trait `futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>>`
    |
    = note: expected fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>> + std::marker::Send + 'async_trait)>>`
               found fn pointer `fn(&'life0 SledConfigStore, &'life1 str) -> Pin<Box<(dyn futures::Future<Output = Result<usize, libsignal_service::prelude::protocol::SignalProtocolError>> + 'async_trait)>>`

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0053`.
error: could not compile `presage`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `gurk v0.2.0 (https://github.com/boxdot/gurk-rs#b9bf3562)`, intermediate artifacts can be found at `/tmp/cargo-installpItOpW`

Caused by:
  build failed

@gferon gferon mentioned this issue Jun 4, 2021
@boxdot boxdot closed this as completed in #62 Jun 4, 2021
@gferon
Copy link
Collaborator

gferon commented Jun 4, 2021

@Chilkos I managed to reproduce the issue, it should be fixed! Thanks for reporting it, hopefully it works now.

@Chilkos
Copy link
Author

Chilkos commented Jun 4, 2021

Success! Thanks for your effort on this :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants