Package: dh-rust Version: 0.0.11 Followup-For: Bug #1094483 X-Debbugs-Cc: noisyc...@tutanota.com
I confirm the analysis of this bug which I gave in #1094199. Both bugs are the manifestation of the same underlying implementation bug: dh-rust relies on `cargo package` to normalize the crate and to include/exclude the desired files from the Debian package. At this time, `cargo package` always generates or creates a Cargo.lock file in the package, which requires the local registry to be populated with all dependencies. For what concerns this bug, cargo's behavior forces build-dependencies to be installed even when they are not needed at all for the purposes of Debian packaging: Cargo.lock is deleted from the package anyway. As a consequence, it is forcing Jonas to remove the <!nocheck> condition in tens of packages' B-Ds. In other contexts is makes useless gymastics compulsory, like needing to resolve the installation order and forcing one into dependency cycles which could be very hard to solve, like in bug #1094199. Upstream it is causing a number of issues too, see e.g. [1] and [2]. The situation got (probably one order of magnitude?) worse with cargo 1.84, which started to create lock files not only for binary crates and for library crates with examples, but for *all* crates. Starting with cargo 1.84 Jonas will have to remove the <!nocheck> condition from *all* of his packages as long as he continues to use `cargo package` in dh-rust. An example of a package that I could test to build with cargo 1.83 but not with cargo 1.84 is rust-nanorand 0.7.0-11, which just yesterday was updated to 0.7.0-12 in order (among other things) to remove the <!nocheck>s. [1] https://github.com/rust-lang/cargo/issues/15059 [2] https://github.com/rust-lang/cargo/issues/15151