[opam-devel] 'opam install' fails when it should(?) downgrade packages

David Sheets sheets at alum.mit.edu
Thu Jul 9 11:07:28 BST 2015


On Thu, Jul 9, 2015 at 11:03 AM, Martin Lucina <martin at lucina.net> wrote:
> Hi,
>
> after reinstalling my OPAM installation that I use for working on the
> cross-compiled packages for rumprun [1], and thus updating to the latest
> OPAM upstream repository I can no longer install mirage drivers
> cross-compiled for rumprun:
>
> $ opam install mirage-console-rumprun mirage-unix-rumprun
> The following dependencies couldn't be met:
>   - ipaddr-rumprun -> sexplib-rumprun -> sexplib = 112.24.01
> Your request can't be satisfied:
>   - No package matches sexplib.112.24.01.
>
> The requirement for an older sexplib is expected, since my sexplib-rumprun
> package has not been updated to the latest version. However, I would expect
> 'opam install' to resolve this by downgrading sexplib and any dependencies.
>
> If I try to install the older version of sexplib manually, the result is:
>
> The following actions will be performed:
>   ↘  downgrade ocamlfind     1.5.5 to 1.5.4          [required by sexplib]
>   ∗  install   ounit         1.1.2                   [required by cstruct]
>   ↘  downgrade ipaddr        2.5.0 to 1.0.0          [uses ocamlfind]
>   ↘  downgrade cmdliner      0.9.7 to 0.9.5          [uses ocamlfind]
>   ∗  install   base-bytes    base                    [required by ocplib-endian]
>   ↻  recompile ocaml-rumprun 4.02.1                  [uses ocamlfind]
>   ↻  recompile camlp4        4.02+6                  [uses ocamlfind]
>   ↘  downgrade depext        0.6 to 0.4              [uses cmdliner]
>   ↘  downgrade crunch        1.4.0 to 1.0.0          [uses ocamlfind]
>   ↗  upgrade   re            1.2.2 to 1.3.2          [uses ocamlfind]
>   ↘  downgrade type_conv     112.01.02 to 112.01.00  [required by sexplib]
>   ↻  recompile optcomp       1.6                     [uses ocamlfind]
>   ↻  recompile lwt           2.4.5                   [uses ocamlfind]
>   ↘  downgrade sexplib       112.35.00 to 112.24.01
>   ↗  upgrade   ocplib-endian 0.4 to 0.6              [uses ocamlfind]
>   ↘  downgrade cstruct       1.6.0 to 1.2.0          [uses ocamlfind]
>   ↘  downgrade io-page       1.5.1 to 1.5.0          [uses ocamlfind]
>   ↘  downgrade mirage-types  2.3.0 to 2.1.1          [uses sexplib]
>   ↘  downgrade mirage        2.5.0+rumprun to 2.1.1  [uses sexplib]
>
> This is not correct either; I can't see anything in the older sexplib that
> would cause all of the downgrades above, and the solution is incorrect in
> downgrading mirage from 2.5.0+rumprun to 2.1.1.
>
> How can I debug this? Is there a way to get more information from the
> dependency solver about why it is choosing the above solution?

Do you have aspcud installed? If not (or one of the other supported
external solvers), then you are using opam's approximate (and often
bad/wrong) internal solver.

David

> Thanks,
>
> Martin
>
> [1] https://github.com/mato/opam-rumprun
> _______________________________________________
> opam-devel mailing list
> opam-devel at lists.ocaml.org
> http://lists.ocaml.org/listinfo/opam-devel


More information about the opam-devel mailing list