[Pkg-rust-maintainers] Bug#1095388: rust-launchpadlib: FTBFS: error[E0277]: the trait bound `HeaderName: http::header::map::as_header_name::AsHeaderName` is not satisfied because the trait comes from a different crate version

Santiago Vila sanvila at debian.org
Fri Feb 7 12:13:01 GMT 2025


Package: src:rust-launchpadlib
Version: 0.2.0-2
Severity: serious
Tags: ftbfs trixie sid

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem cargo
   dh_auto_clean -O--buildsystem=cargo
debian cargo wrapper: options, profiles, parallel, lto: ['parallel=2'] [] ['-j2'] 
debian cargo wrapper: rust_type, gnu_type: x86_64-unknown-linux-gnu, x86_64-linux-gnu
debian cargo wrapper: running subprocess (['env', 'RUST_BACKTRACE=1', '/usr/bin/cargo', 'clean', '--verbose', '--verbose'],) {'check': True}
     Removed 0 files
   dh_autoreconf_clean -O--buildsystem=cargo
   dh_clean -O--buildsystem=cargo
 debian/rules binary
dh binary --buildsystem cargo
   dh_update_autotools_config -O--buildsystem=cargo
   dh_autoreconf -O--buildsystem=cargo
   dh_auto_configure -O--buildsystem=cargo

[... snipped ...]

      |
note: there are multiple different versions of crate `http` in the dependency graph
     --> /usr/share/cargo/registry/http-1.2.0/src/header/map.rs:3740:5
      |
3740  |     pub trait AsHeaderName: Sealed {}
      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
      |
     ::: src/lib.rs:27:5
      |
27    | use wadl::{Error, Resource};
      |     ----
      |     |
      |     one version of crate `http` is used here, as a dependency of crate `reqwest`
      |     one version of crate `http` is used here, as a dependency of crate `h2`
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | --------------------- this type doesn't implement the required trait
      |
     ::: /usr/share/cargo/registry/http-1.2.0/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | ---------------------
      | |
      | this type implements the required trait
      | this type implements the required trait
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/map.rs:3321:5
      |
3321  |     pub trait IntoHeaderName: Sealed {}
      |     -------------------------------- this is the found trait
      = note: two types coming from two different versions of the same crate are different types even if they look the same
      = help: you can use `cargo tree` to explore your dependency tree

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54791:38
      |
54791 |         let mut req = client.request(reqwest::Method::GET, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0277]: the trait bound `http::header::name::HeaderName: From<HeaderName>` is not satisfied
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54792:19
      |
54792 |         req = req.header(reqwest::header::ACCEPT, "application/json");
      |                   ^^^^^^ the trait `From<HeaderName>` is not implemented for `http::header::name::HeaderName`
      |
      = help: the following other types implement trait `From<T>`:
                `http::header::name::HeaderName` implements `From<&http::header::name::HeaderName>`
                `http::header::name::HeaderName` implements `From<http::header::name::Custom>`
                `http::header::name::HeaderName` implements `From<http::header::name::HdrName<'_>>`
                `http::header::name::HeaderName` implements `From<http::header::name::StandardHeader>`
      = note: required for `HeaderName` to implement `Into<http::header::name::HeaderName>`
      = note: required for `http::header::name::HeaderName` to implement `TryFrom<HeaderName>`

error[E0277]: the trait bound `HeaderName: http::header::map::as_header_name::AsHeaderName` is not satisfied because the trait comes from a different crate version
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54797:75
      |
54797 | ...get(reqwest::header::CONTENT_TYPE).map(|x| x.to_str().unwrap()).map(|x| x.parse().unwrap());
      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `http::header::map::as_header_name::AsHeaderName` is not implemented for `HeaderName`
      |
note: there are multiple different versions of crate `http` in the dependency graph
     --> /usr/share/cargo/registry/http-1.2.0/src/header/map.rs:3740:5
      |
3740  |     pub trait AsHeaderName: Sealed {}
      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
      |
     ::: src/lib.rs:27:5
      |
27    | use wadl::{Error, Resource};
      |     ----
      |     |
      |     one version of crate `http` is used here, as a dependency of crate `reqwest`
      |     one version of crate `http` is used here, as a dependency of crate `h2`
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | --------------------- this type doesn't implement the required trait
      |
     ::: /usr/share/cargo/registry/http-1.2.0/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | ---------------------
      | |
      | this type implements the required trait
      | this type implements the required trait
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/map.rs:3321:5
      |
3321  |     pub trait IntoHeaderName: Sealed {}
      |     -------------------------------- this is the found trait
      = note: two types coming from two different versions of the same crate are different types even if they look the same
      = help: you can use `cargo tree` to explore your dependency tree

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54818:38
      |
54818 |         let mut req = client.request(reqwest::Method::GET, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0277]: the trait bound `http::header::name::HeaderName: From<HeaderName>` is not satisfied
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54819:19
      |
54819 |         req = req.header(reqwest::header::ACCEPT, "application/vnd.sun.wadl+xml");
      |                   ^^^^^^ the trait `From<HeaderName>` is not implemented for `http::header::name::HeaderName`
      |
      = help: the following other types implement trait `From<T>`:
                `http::header::name::HeaderName` implements `From<&http::header::name::HeaderName>`
                `http::header::name::HeaderName` implements `From<http::header::name::Custom>`
                `http::header::name::HeaderName` implements `From<http::header::name::HdrName<'_>>`
                `http::header::name::HeaderName` implements `From<http::header::name::StandardHeader>`
      = note: required for `HeaderName` to implement `Into<http::header::name::HeaderName>`
      = note: required for `http::header::name::HeaderName` to implement `TryFrom<HeaderName>`

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54829:38
      |
54829 |         let mut req = client.request(reqwest::Method::PUT, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54842:38
      |
54842 |         let mut req = client.request(reqwest::Method::PATCH, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54866:38
      |
54866 |         let mut req = client.request(reqwest::Method::GET, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0277]: the trait bound `http::header::name::HeaderName: From<HeaderName>` is not satisfied
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54867:19
      |
54867 |         req = req.header(reqwest::header::ACCEPT, "application/json");
      |                   ^^^^^^ the trait `From<HeaderName>` is not implemented for `http::header::name::HeaderName`
      |
      = help: the following other types implement trait `From<T>`:
                `http::header::name::HeaderName` implements `From<&http::header::name::HeaderName>`
                `http::header::name::HeaderName` implements `From<http::header::name::Custom>`
                `http::header::name::HeaderName` implements `From<http::header::name::HdrName<'_>>`
                `http::header::name::HeaderName` implements `From<http::header::name::StandardHeader>`
      = note: required for `HeaderName` to implement `Into<http::header::name::HeaderName>`
      = note: required for `http::header::name::HeaderName` to implement `TryFrom<HeaderName>`

error[E0277]: the trait bound `HeaderName: http::header::map::as_header_name::AsHeaderName` is not satisfied because the trait comes from a different crate version
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54872:75
      |
54872 | ...get(reqwest::header::CONTENT_TYPE).map(|x| x.to_str().unwrap()).map(|x| x.parse().unwrap());
      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `http::header::map::as_header_name::AsHeaderName` is not implemented for `HeaderName`
      |
note: there are multiple different versions of crate `http` in the dependency graph
     --> /usr/share/cargo/registry/http-1.2.0/src/header/map.rs:3740:5
      |
3740  |     pub trait AsHeaderName: Sealed {}
      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
      |
     ::: src/lib.rs:27:5
      |
27    | use wadl::{Error, Resource};
      |     ----
      |     |
      |     one version of crate `http` is used here, as a dependency of crate `reqwest`
      |     one version of crate `http` is used here, as a dependency of crate `h2`
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | --------------------- this type doesn't implement the required trait
      |
     ::: /usr/share/cargo/registry/http-1.2.0/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | ---------------------
      | |
      | this type implements the required trait
      | this type implements the required trait
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/map.rs:3321:5
      |
3321  |     pub trait IntoHeaderName: Sealed {}
      |     -------------------------------- this is the found trait
      = note: two types coming from two different versions of the same crate are different types even if they look the same
      = help: you can use `cargo tree` to explore your dependency tree

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54898:38
      |
54898 |         let mut req = client.request(reqwest::Method::GET, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0277]: the trait bound `HeaderName: http::header::map::as_header_name::AsHeaderName` is not satisfied because the trait comes from a different crate version
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54903:75
      |
54903 | ...get(reqwest::header::CONTENT_TYPE).map(|x| x.to_str().unwrap()).map(|x| x.parse().unwrap());
      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `http::header::map::as_header_name::AsHeaderName` is not implemented for `HeaderName`
      |
note: there are multiple different versions of crate `http` in the dependency graph
     --> /usr/share/cargo/registry/http-1.2.0/src/header/map.rs:3740:5
      |
3740  |     pub trait AsHeaderName: Sealed {}
      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
      |
     ::: src/lib.rs:27:5
      |
27    | use wadl::{Error, Resource};
      |     ----
      |     |
      |     one version of crate `http` is used here, as a dependency of crate `reqwest`
      |     one version of crate `http` is used here, as a dependency of crate `h2`
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | --------------------- this type doesn't implement the required trait
      |
     ::: /usr/share/cargo/registry/http-1.2.0/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | ---------------------
      | |
      | this type implements the required trait
      | this type implements the required trait
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/map.rs:3321:5
      |
3321  |     pub trait IntoHeaderName: Sealed {}
      |     -------------------------------- this is the found trait
      = note: two types coming from two different versions of the same crate are different types even if they look the same
      = help: you can use `cargo tree` to explore your dependency tree

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54918:38
      |
54918 |         let mut req = client.request(reqwest::Method::PUT, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54930:38
      |
54930 |         let mut req = client.request(reqwest::Method::DELETE, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0308]: mismatched types
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54953:38
      |
54953 |         let mut req = client.request(reqwest::Method::GET, url_);
      |                              ------- ^^^^^^^^^^^^^^^^^^^^ expected `http::method::Method`, found `reqwest::Method`
      |                              |
      |                              arguments to this method are incorrect
      |
      = note: `reqwest::Method` and `http::method::Method` have similar names, but are actually distinct types
note: `reqwest::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-0.2.11/src/method.rs:46:1
      |
46    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
note: `http::method::Method` is defined in crate `http`
     --> /usr/share/cargo/registry/http-1.2.0/src/method.rs:45:1
      |
45    | pub struct Method(Inner);
      | ^^^^^^^^^^^^^^^^^
      = note: perhaps two different versions of crate `http` are being used?
note: method defined here
     --> /usr/share/cargo/registry/wadl-0.3.2/src/lib.rs:27:8
      |
27    |     fn request(&self, method: reqwest::Method, url: url::Url) -> reqwest::blocking::RequestBuilder;
      |        ^^^^^^^

error[E0277]: the trait bound `HeaderName: http::header::map::as_header_name::AsHeaderName` is not satisfied because the trait comes from a different crate version
     --> /usr/share/cargo/registry/launchpadlib-0.2.0/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out/generated/1_0.rs:54958:75
      |
54958 | ...get(reqwest::header::CONTENT_TYPE).map(|x| x.to_str().unwrap()).map(|x| x.parse().unwrap());
      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `http::header::map::as_header_name::AsHeaderName` is not implemented for `HeaderName`
      |
note: there are multiple different versions of crate `http` in the dependency graph
     --> /usr/share/cargo/registry/http-1.2.0/src/header/map.rs:3740:5
      |
3740  |     pub trait AsHeaderName: Sealed {}
      |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
      |
     ::: src/lib.rs:27:5
      |
27    | use wadl::{Error, Resource};
      |     ----
      |     |
      |     one version of crate `http` is used here, as a dependency of crate `reqwest`
      |     one version of crate `http` is used here, as a dependency of crate `h2`
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | --------------------- this type doesn't implement the required trait
      |
     ::: /usr/share/cargo/registry/http-1.2.0/src/header/name.rs:33:1
      |
33    | pub struct HeaderName {
      | ---------------------
      | |
      | this type implements the required trait
      | this type implements the required trait
      |
     ::: /usr/share/cargo/registry/http-0.2.11/src/header/map.rs:3321:5
      |
3321  |     pub trait IntoHeaderName: Sealed {}
      |     -------------------------------- this is the found trait
      = note: two types coming from two different versions of the same crate are different types even if they look the same
      = help: you can use `cargo tree` to explore your dependency tree

Some errors have detailed explanations: E0053, E0277, E0308.
For more information about an error, try `rustc --explain E0053`.
warning: `launchpadlib` (lib) generated 1 warning
error: could not compile `launchpadlib` (lib) due to 1978 previous errors; 1 warning emitted

Caused by:
  process didn't exit successfully: `CARGO=/usr/bin/cargo CARGO_CRATE_NAME=launchpadlib CARGO_MANIFEST_DIR=/<<PKGBUILDDIR>> CARGO_MANIFEST_PATH=/<<PKGBUILDDIR>>/Cargo.toml CARGO_PKG_AUTHORS='Jelmer Vernooij <jelmer at jelmer.uk>' CARGO_PKG_DESCRIPTION='Rust library for accessing Launchpad.net' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=Apache-2.0 CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=launchpadlib CARGO_PKG_README=README.md CARGO_PKG_REPOSITORY='https://github.com/jelmer/launchpadlib-rs' CARGO_PKG_RUST_VERSION='' CARGO_PKG_VERSION=0.2.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=2 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 LD_LIBRARY_PATH=/<<PKGBUILDDIR>>/target/debug/deps OUT_DIR=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/build/launchpadlib-dae6a5fbb3a686a5/out rustc --crate-name launchpadlib --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="api-v1_0"' --cfg 'feature="cli"' --cfg 'feature="default"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("api-beta", "api-devel", "api-v1_0", "cli", "default", "keyring"))' -C metadata=56d7fc62cd5b23b7 -C extra-filename=-56d7fc62cd5b23b7 --out-dir /<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps --target x86_64-unknown-linux-gnu -C incremental=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/incremental -L dependency=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps -L dependency=/<<PKGBUILDDIR>>/target/debug/deps --extern chrono=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libchrono-24c8e04b4229fa4f.rmeta --extern clap=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libclap-b91b9caecbc5eef4.rmeta --extern debversion=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libdebversion-9ca67dc30b406473.rmeta --extern form_urlencoded=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libform_urlencoded-359f41bdcdaa3aca.rmeta --extern lazy_static=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/liblazy_static-f74c77a20d13c02b.rmeta --extern log=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/liblog-80e16c09b8f7862f.rmeta --extern mime=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libmime-ae2e17fd4cb719e1.rmeta --extern percent_encoding=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libpercent_encoding-565dba9b275c5e1d.rmeta --extern rand=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/librand-a20224872362b27f.rmeta --extern reqwest=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libreqwest-15a707a8de312db9.rmeta --extern serde=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libserde-f71f41b2de6a7603.rmeta --extern serde_json=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libserde_json-0ce7f0887cf3d19c.rmeta --extern url=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/liburl-538f04646135e8a4.rmeta --extern wadl=/<<PKGBUILDDIR>>/target/x86_64-unknown-linux-gnu/debug/deps/libwadl-2698dcd917dd5fb0.rmeta -C debuginfo=2 -C strip=none --cap-lints warn -C linker=x86_64-linux-gnu-gcc -C link-arg=-Wl,-z,relro --remap-path-prefix /<<PKGBUILDDIR>>=/usr/share/cargo/registry/launchpadlib-0.2.0 --remap-path-prefix /<<PKGBUILDDIR>>/debian/cargo_registry=/usr/share/cargo/registry` (exit status: 1)
dh_auto_test: error: /usr/share/cargo/bin/cargo build returned exit code 101
make: *** [debian/rules:3: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202502/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:rust-launchpadlib, so that this is still
visible in the BTS web page for this package.

Thanks.



More information about the Pkg-rust-maintainers mailing list