[Pkg-rust-maintainers] Bug#1014996: Bug#1014996: librust-curl-sys-dev: has build loop with librust-curl-dev that causes rebuild delay when building against local debian source

Fabian Grünbichler f.gruenbichler at proxmox.com
Mon Jul 18 13:50:50 BST 2022


On July 15, 2022 10:59 pm, Daniel Kahn Gillmor wrote:
> Package: librust-curl-sys-dev
> Version: 0.4.49-1
> Control: affects -1 src:rust-debcargo librust-curl-dev
> 
> There's a build loop between librust-curl-dev and librust-curl-sys-dev
> in debian: when i "cargo build" anything that depends on the curl crate,
> it causes a rebuild of curl-sys, which in turn causes a rebuild of curl
> on the next build.  So "cargo build" always has to do more building than
> it should.
> 
> [.. reproducing instructions omitted..]
> 
> OTOH, if i remove the .cargo/config.toml (so that it pulls from
> crates.io directly) i do not see the rebuild happening for either curl
> or curl-sys.  subsequent "cargo build" operations just terminate
> cleanly, even if i pin the versions of curl and curl-sys in Cargo.toml.
> 
> This is likely related to "cargo:rerun-if-changed=curl" in build.rs for
> librust-curl-sys-dev (see
> https://github.com/alexcrichton/curl-rust/pull/407) but I don't
> understand it.
> 
> But when i asked on ##rust on libera's IRC service, folks there not
> using debian were unable to reproduce this problem.

note that the rerun line upstream refers to the vendored copy of the 
curl library which is contained as a git submodule (and directory, in 
the published .crate file) - to pick up any changes made to the 
submodule during development.

we do (obviously ;)) remove that directory in Debian[0], which then 
makes the reference to 'curl' point to the 'curl' crate. but, we also 
patch out the println[1]. seems like that fixed version never got 
uploaded though - but that would likely fix it.

note that I am currently working on upgrading cargo/debcargo which will 
also entail updating curl-sys and curl, so if you want to wait for that 
(ETA ~1 week) instead of uploading the prepared -2 that should also fix 
it in due course, but I am happy to rebase on top of a finalized -2 
version as well :)

0: https://salsa.debian.org/rust-team/debcargo-conf/-/blob/master/src/curl-sys/debian/debcargo.toml#L3
1: https://salsa.debian.org/rust-team/debcargo-conf/-/blob/master/src/curl-sys/debian/patches/avoid-spurious-rebuilds.patch



More information about the Pkg-rust-maintainers mailing list