Source: rust-derive-deftly
Version: 1.0.1-3
Severity: grave
Tags: patch ftbfs
X-Debbugs-Cc: [email protected]

Hi!

tests/Cargo.toml has a version constraint of

 toml = ">=0.5.0, <0.9"

but d/control has it encoded as

 librust-toml+default-dev (>= 0.5.0~),

missing the upper bound.

As a result, rust-derive-deftly now FTBFS and blocks rust-toml from migrating,
since its autopkgtests fail since the upgrade of rust-toml to 0.9:

> [..]
> dh binary
>    dh_update_autotools_config
>    dh_autoreconf
>    dh_auto_configure --buildsystem=rust
>       /usr/share/dh-rust/bin/cargo prepare-debian debian/cargo_registry
> debian cargo wrapper: options, profiles, parallel, lto: ['parallel=16'] [] 
> ['-j16'] 0
> debian cargo wrapper: rust_type, gnu_type: x86_64-unknown-linux-gnu, 
> x86_64-linux-gnu
> debian cargo wrapper: linking /usr/share/cargo/registry/* into 
> /build/reproducible-path/rust-derive-deftly-1.0.1/debian/cargo_registry/
>       cargo update
> error: failed to select a version for the requirement `toml = ">=0.5.0, <0.9"`
> candidate versions found which didn't match: 0.9.8
> location searched: directory source 
> `/build/reproducible-path/rust-derive-deftly-1.0.1/debian/cargo_registry` 
> (which is replacing registry `crates-io`)
> required by package `derive-deftly-tests v0.0.1 
> (/build/reproducible-path/rust-derive-deftly-1.0.1/tests)`
> perhaps a crate was updated and forgotten to be re-vendored?
> dh_auto_configure: error: cargo update returned exit code 101
> make: *** [debian/rules:4: binary] Error 25
> dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 
> 2

Either relaxing Cargo.toml to have <0.10 as upper bound, or restricting
Cargo.toml and d/control to pick up librust-toml-0.8+default-dev should work.
I've attached a patch for the former.

Please try to keep Cargo.toml and d/control consistent, or at least d/control
more strict than Cargo.toml to avoid breakage like this. debcargo would (in
this case, with the upper bound extended to <0.10) generate a Depends on
"librust-toml+default-dev (<< 0.10-~~), librust-toml+default-dev (>= 0.5.0-~~)"
which would have automatically switched over from 0.8 to 0.9 by virtue of
librust-toml-dev not being provided by either librust-toml-0.5-dev nor
librust-toml-0.8-dev.

Thanks!

Attachment: patch
Description: Binary data

Reply via email to