[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#864906: apt-cudf: gives invalid solutions involving mixed versioned/unversioned provides



Hi James,

On Fri, Jun 16, 2017 at 09:22:41PM +0100, James Cowgill wrote:
> Package: apt-cudf
> Version: 5.0.1-8
> Severity: normal
> 
> Hi,
> 
> This bug has arisen after I started looking at why pdl 1:2.018-1~exp1
> has been failing to install its dependencies in experimental.
> 
> https://buildd.debian.org/status/package.php?p=pdl&suite=experimental
> 
> The failures only happen when the aspcud solver is used. When the normal
> APT solver is used, everything works fine.
> 
> The error in pdl seems to revolve around the versioned provides of
> perl-base which currently confuse apt-cudf because perl-base in sid does
> NOT use versioned provides, but perl-base in experimental does.

thanks for the bug report, and for having worked out the nice example
edsp file. The problem is related to versionend Provides, almost as 
you suspected. 

The semantics of CUDF is that *unversionend* Provides provide all
possible versions of a virtual package, that is eggplant(=1) in your
example will satisfy not only a dependency on cantelope, but also any
versionend dependency on cantalope, whatever the version constraint.
That choice seemed reasonable to us at the time when we designed the format,
but we didn't think of a scenario of gradually moving from unversioned
provides to versionend provides.

I have the impression that we have encountered that problem before and
that we had solved it. Maybe it is solved in dose-debcheck, but not
in apt-cudf? I will try to look into this, but it will take a few days.

-Ralf.


Reply to: