- Notifications
You must be signed in to change notification settings - Fork516
Description
While compiling tokio-postgres withcargo 1.75.0-nightly (794d0a825 2023-10-03)
, I got the following error:
The following warnings were discovered during the build. These warnings are anindication that the packages contain code that will become an error in afuture release of Rust. These warnings typically cover changes to closesoundness problems, unintended or undocumented behavior, or critical problemsthat cannot be fixed in a backwards-compatible fashion, and are not expectedto be in wide use.Each warning should contain a link for more information on what the warningmeans and how to resolve it.To solve this problem, you can try the following approaches:- If the issue is not solved by updating the dependencies, a fix has to beimplemented by those dependencies. You can help with that by notifying themaintainers of this problem (e.g. by creating a bug report) or by proposing afix to the maintainers (e.g. by creating a pull request): - rustc-serialize@0.3.24 - Repository: https://github.com/rust-lang/rustc-serialize - Detailed warning command: `cargo report future-incompatibilities --id 2 --package rustc-serialize@0.3.24`- If waiting for an upstream fix is not an option, you can use the `[patch]`section in `Cargo.toml` to use your own version of the dependency. For moreinformation, see:https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-sectionThe package `rustc-serialize v0.3.24` currently triggers the following future incompatibility lints:> warning: impl method assumes more implied bounds than the corresponding trait method> --> /Users/me/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustc-serialize-0.3.24/src/serialize.rs:1155:41> |> 1155 | fn decode<D: Decoder>(d: &mut D) -> Result<Cow<'static, T>, D::Error> {> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace this type to make the impl signature compatible: `Result<Cow<'a, T>, <D as serialize::Decoder>::Error>`> |> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!> = note: for more information, see issue #105572 <https://github.com/rust-lang/rust/issues/105572>> = note: `-W implied-bounds-entailment` implied by `-W future-incompatible`> = help: to override `-W future-incompatible` add `#[allow(implied_bounds_entailment)]`>
However, it is no longer possible to file a report withrustc-serialize
since they got archived in August 2021.
The dependency withinrust-postgres
which pulls inrustc-serialize
iseui48
. They have been made aware ofthis issue in January 2022, but there is no response from the author and seemingly only maintainer of the repo@abaumhauer who hasn't committed to the repo since August 2020.
To make sure thatrust-postgres
will still compile with future versions of the Rust compiler, I would suggest replacing theeui48
dependency. Others have seemed to move to one of:
- macaddr, last commit in December 2020
- advmac, last commit in December 2022
- hwaddr, last commit in November 2020
- mac_address, last commit in May 2023
Out of these, I would suggest using the first one since it has the least amount of dependencies and is probably least likely to break as a result.