containerd / rust-extensions

Rust crates to extend containerd
https://containerd.io
Apache License 2.0
184 stars 73 forks source link

Too new version of protobuf disrupted compilation #295

Closed zhaodiaoer closed 4 months ago

zhaodiaoer commented 4 months ago

When build runc-shim at the first time, i got errors when build protobuf, after limit the version in Cargo.toml by set protobuf = "=3.1", problem gone.

Broken protobuf version: v3.5.0

Got Errors:

error[E0445]: crate-private trait `MapFieldAccessor` in public interface
   --> /home/ll/.cargo/registry/src/index.crates.io-6f17d22bba15001f/protobuf-3.5.0/src/reflect/acc/v2/map.rs:115:1
    |
17  |   pub(crate) trait MapFieldAccessor: Send + Sync + 'static {
    |   -------------------------------------------------------- `MapFieldAccessor` declared as crate-private
...
115 | / pub fn make_map_simpler_accessor_new<M, T>(
116 | |     name: &'static str,
117 | |     get_field: for<'a> fn(&'a M) -> &'a T,
118 | |     mut_field: for<'a> fn(&'a mut M) -> &'a mut T,
...   |
121 | |     M: MessageFull,
122 | |     MapFieldAccessorImpl<M, T>: MapFieldAccessor,
    | |_________________________________________________^ can't leak crate-private trait

error[E0446]: private type `MapFieldAccessorImpl<M, T>` in public interface
   --> /home/ll/.cargo/registry/src/index.crates.io-6f17d22bba15001f/protobuf-3.5.0/src/reflect/acc/v2/map.rs:115:1
    |
33  |   struct MapFieldAccessorImpl<M, T>
    |   --------------------------------- `MapFieldAccessorImpl<M, T>` declared as private
...
115 | / pub fn make_map_simpler_accessor_new<M, T>(
116 | |     name: &'static str,
117 | |     get_field: for<'a> fn(&'a M) -> &'a T,
118 | |     mut_field: for<'a> fn(&'a mut M) -> &'a mut T,
...   |
121 | |     M: MessageFull,
122 | |     MapFieldAccessorImpl<M, T>: MapFieldAccessor,
    | |_________________________________________________^ can't leak private type
zhaodiaoer commented 4 months ago

fix pr have merged