openethereum / parity-ethereum

The fast, light, and robust client for Ethereum-like networks.
Other
6.83k stars 1.69k forks source link

Build fails on FreeBSD #11755

Closed triamazikamno closed 4 years ago

triamazikamno commented 4 years ago

I was able to build and use parity on FreeBSD up to 2.7.x, but now, starting with 3.0.0-alpha.1 it's failing:

# cargo build --release --features final
...
error[E0432]: unresolved import `openssl_probe`
 --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/rustls-native-certs-0.1.0/src/linux.rs:1:5
  |
1 | use openssl_probe;
  |     ^^^^^^^^^^^^^ no `openssl_probe` external crate

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
  --> ~/.cargo/registry/src/github.com-1ecc6299db9ec823/rustls-native-certs-0.1.0/src/linux.rs:33:17
   |
33 |     if let Some(file) = likely_locations.cert_file {
   |                 ^^^^ borrow the `Path` instead
   |
   = help: within `std::path::Path`, the trait `std::marker::Sized` is not implemented for `[u8]`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: required because it appears within the type `std::path::Path`
   = note: all local variables must have a statically known size
   = help: unsized locals are gated as an unstable feature

error: aborting due to 2 previous errors
niklasad1 commented 4 years ago

hmm, are you sure that actually v2.7.x works?

Both v2.7.x and v3.0 depend on rust-native-certs 0.1.0 and it should not compile for FreeBSD AFAIU. See https://github.com/ctz/rustls-native-certs/blob/v/0.1.0/src/lib.rs

triamazikamno commented 4 years ago

Oh, actually you are right, my latest build is 2.5.13

niklasad1 commented 4 years ago

Ok, I see.

To fix this we either need to update hyper to v0.20 or downgrade to v0.17

It's substantial amount of work required to update hyper because it uses futures v0.3 whereas open ethereum is still using futures v0.1