[Pkg-rust-maintainers] Bug#967954: debcargo: generated ranged build-deps result in "BD-uninstallable" on debian buildd network

Johannes Schauer josch at debian.org
Fri Oct 16 07:40:25 BST 2020


Hi,

On Wed, 05 Aug 2020 15:33:21 -0400 Daniel Kahn Gillmor <dkg at fifthhorseman.net> wrote:
> Looking at buffered-reader version 0.18.0, upstream lists dependencies
> in Cargo.toml including:
> 
> [dependencies.flate2]
> version = ">= 1.0.1, < 1.0.16"
> optional = true
> 
> 
> debcargo 2.4.2 converts this to a b-d list:
> 
> Build-Depends: […]
>   librust-flate2-1.0.15+default-dev <!nocheck> |
>   librust-flate2-1.0.14+default-dev <!nocheck> |
>   librust-flate2-1.0.13+default-dev <!nocheck> |
>   librust-flate2-1.0.12+default-dev <!nocheck> |
>   librust-flate2-1.0.11+default-dev <!nocheck> |
>   librust-flate2-1.0.10+default-dev <!nocheck> |
>   librust-flate2-1.0.9+default-dev <!nocheck> |
>   librust-flate2-1.0.8+default-dev <!nocheck> |
>   librust-flate2-1.0.7+default-dev <!nocheck> |
>   librust-flate2-1.0.6+default-dev <!nocheck> |
>   librust-flate2-1.0.5+default-dev <!nocheck> |
>   librust-flate2-1.0.4+default-dev <!nocheck> |
>   librust-flate2-1.0.3+default-dev <!nocheck> |
>   librust-flate2-1.0.2+default-dev <!nocheck> |
>   librust-flate2-1.0.1+default-dev <!nocheck>,
>   […]
> 
> 
> But https://buildd.debian.org/status/package.php?p=rust-buffered-reader
> says "BD-uninstallable" for all platforms, for example:
> 
> 
>     rust-buffered-reader build-depends on missing:
>      - librust-flate2-1.0.15+default-dev:amd64
> 
> note that librust-flate2+rust-backend-dev version 1.0.13-2 is in
> unstable, and it has:
> 
> Provides: […] librust-flate2-1.0.13+default-dev (= 1.0.13-2)
> 
> Clearly, the solver is ignoring all but the first build-depends in an
> "or"ed dependency.  debcargo probably needs to figure out a way around
> this :/

one possible way around this today, would be if librust-flate2-X-dev would add
a "Provides: librust-flate2-dev (= X)" and then you could write:

 Build-Depends: […]
   librust-flate2-dev (= 1.0.15+default) <!nocheck> |
   librust-flate2-dev (= 1.0.14+default) <!nocheck> |
   librust-flate2-dev (= 1.0.13+default) <!nocheck> |
   librust-flate2-dev (= 1.0.12+default) <!nocheck> |
   librust-flate2-dev (= 1.0.11+default) <!nocheck> |
   librust-flate2-dev (= 1.0.10+default) <!nocheck> |
   librust-flate2-dev (= 1.0.9+default) <!nocheck> |
   librust-flate2-dev (= 1.0.8+default) <!nocheck> |
   librust-flate2-dev (= 1.0.7+default) <!nocheck> |
   librust-flate2-dev (= 1.0.6+default) <!nocheck> |
   librust-flate2-dev (= 1.0.5+default) <!nocheck> |
   librust-flate2-dev (= 1.0.4+default) <!nocheck> |
   librust-flate2-dev (= 1.0.3+default) <!nocheck> |
   librust-flate2-dev (= 1.0.2+default) <!nocheck> |
   librust-flate2-dev (= 1.0.1+default) <!nocheck>,
   […]

sbuild will not reduce an OR dependency to just the first entry if the package
names are all equal.

Thanks!

cheers, josch
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-rust-maintainers/attachments/20201016/afee4acf/attachment.sig>


More information about the Pkg-rust-maintainers mailing list