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

Re: Make ocaml-best-compilers non-virtual



Hi Ralf and all,

Quoting Ralf Treinen (2016-11-03 16:51:43)
> It works with dose-builddebcheck, so I assume it also works with
> apt-cudf, but I couldn't check it.

yes, dose-builddebcheck is able to find a solution, or otherwise wanna-build
would not have triggered the build. But that does not mean that the cudf
encoding is correct as dose-builddebcheck might've found a wrong solution.
Another possibility is, that the cudf encoding is incorrect and thus aspcud
finds a solution which apt is then not able to install because it represents an
impossible situation. I fear the latter might be the case...

Consider the following EDSP input which represents the core of the situation we
are talking about:

--%<--------------------------------------------------
Request: EDSP 0.5
Install: sbuild-build-depends-ocamlbuild-dummy:amd64
Strict-Pinning: no

Package: sbuild-build-depends-ocamlbuild-dummy
Architecture: amd64
Version: 0.invalid.0
APT-ID: 52830
APT-Pin: 500
Depends: ocaml-best-compilers (>= 4.03.0)

Package: ocaml-native-compilers
Architecture: amd64
Version: 4.03.0-5
APT-ID: 53875
APT-Pin: 1
Provides: ocaml-best-compilers (= 4.03.0-5)

Package: ocaml-native-compilers
Architecture: amd64
Version: 4.02.3-7+b1
APT-ID: 34663
APT-Pin: 500
Provides: ocaml-best-compilers
-->%--------------------------------------------------

With the above in /tmp/dump.edsp I get:

$ apt-cudf -v --solver=aspcud -c "-removed,-changed,-new" /tmp/dump.edsp
Install: 34663
Package: ocaml-native-compilers
Version: 4.02.3-7+b1
Architecture: amd64

Install: 52830
Package: sbuild-build-depends-ocamlbuild-dummy
Version: 0.invalid.0
Architecture: amd64

Notice, that apscud somehow seems to think that ocaml-native-compilers (=
4.02.3-7+b1) is able to satisfy the dependency on "ocaml-best-compilers (>=
4.03.0)" even though that version of ocaml-native-compilers does not provide a
specific version of ocaml-best-compilers and should thus not be considered
for possibly providing a versioned dependency.

Looking at the Cudf encoding of the above EDSP request, the reason for this
problem becomes clear (only mentioning the relevant parts for brevity):

--%<--------------------------------------------------
package: ocaml-native-compilers%3aamd64
version: 5
provides: ocaml-native-compilers , --virtual-ocaml-best-compilers%3aamd64 = 5 , ocaml-best-compilers%3aamd64 = 5
number: 4.03.0-5

package: sbuild-build-depends-ocamlbuild-dummy%3aamd64
version: 2
depends: --virtual-ocaml-best-compilers%3aamd64 = 2147483647 | --virtual-ocaml-best-compilers%3aamd64 >= 4
number: 0.invalid.0

package: ocaml-native-compilers%3aamd64
version: 3
provides: ocaml-native-compilers , --virtual-ocaml-best-compilers%3aamd64 = 2147483646
number: 4.02.3-7+b1
-->%--------------------------------------------------

So since the Cudf representation of ocaml-native-compilers (= 4.02.3-7+b1)
provides "--virtual-ocaml-best-compilers%3aamd64 = 2147483646" it is able to
satisfy the dependency relationship of sbuild-build-depends-ocamlbuild-dummy.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature


Reply to: