[opam-devel] 'opam install' fails when it should(?) downgrade packages
Martin Lucina
martin at lucina.net
Thu Jul 9 11:03:45 BST 2015
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?
Thanks,
Martin
[1] https://github.com/mato/opam-rumprun
More information about the opam-devel
mailing list