Hi,

On Wed, 05 Aug 2020 15:33:21 -0400 Daniel Kahn Gillmor <d...@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

Attachment: signature.asc
Description: signature

Reply via email to