ocaml / opam

opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.
https://opam.ocaml.org
Other
1.24k stars 357 forks source link

`opam switch create . --locked`: No available version of ocaml-base-compiler satisfies the constraints #3932

Closed vogler closed 4 years ago

vogler commented 5 years ago

Using this opam file I can do opam switch create . --deps-only ocaml-base-compiler.4.07.1 to setup a switch with all dependencies. After opam lock I get this opam.locked file. I expected to be able to setup a switch with the locked versions as shown here. However I get: (full log)

$ opam switch -y create ./ --deps-only --locked ocaml-base-compiler.4.07.1
[ERROR] Could not resolve set of base packages:
        Your request can't be satisfied:
          - No available version of ocaml-base-compiler satisfies the constraints

Maybe it's related to #3874

If I try it without specifying a compiler, I get this strange behavior (no error, but it only installs the compiler and not the rest of the dependencies):

$ rm -rf _opam
$ opam switch create . --deps-only --locked
[WARNING] Lock file opam.locked is outdated, you may want to re-run opam lock:
          Dependencies present in opam file not in lock file:
            - ounit

[WARNING] Lock file opam.locked is outdated, you may want to re-run opam lock:
          Dependencies present in opam file not in lock file:
            - ounit

The following additional pinnings are required by goblint.dev:
  - goblint-cil.1.7.4 at git+https://github.com/goblint/cil.git
Continue? [Y/n] y
[goblint-cil.1.7.4] synchronised from git+https://github.com/goblint/cil.git
goblint-cil is now pinned to git+https://github.com/goblint/cil.git (version 1.7.4)
goblint is now pinned to file:///home/travis/a (version dev)

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[ocaml-base-compiler.4.07.1] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
∗ installed base-bigarray.base
∗ installed base-threads.base
∗ installed base-unix.base
∗ installed ocaml-base-compiler.4.07.1
∗ installed ocaml-config.1
∗ installed ocaml.4.07.1
Done.

(Also, the warning about ounit comes twice instead of once, and I'm not sure it should warn about with-test dependencies.)

rjbou commented 5 years ago

I can't reproduce the main reported errors... even with you opam version, that I see is 2.0.4 in the logs:

$ opam-2.0.4-x86_64-linux init -y -a --bare
[NOTE] Will configure from built-in defaults.
Checking for available remotes: rsync and local, git, mercurial, darcs. Perfect!

<><> Fetching repository information ><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised

User configuration:
  ~/.profile is already configured for another opam root.
$ opam-2.0.4-x86_64-linux switch create ./ --deps-only --locked ocaml-base-compiler.4.07.1  
<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
∗ installed base-bigarray.base
∗ installed base-threads.base
∗ installed base-unix.base
∗ installed ocaml-system.4.05.0
∗ installed ocaml-config.1
∗ installed ocaml.4.05.0
Done.
The following additional pinnings are required by goblint.1.0.0:
  - goblint-cil.1.7.4 at git+https://github.com/goblint/cil.git
Continue? [Y/n] y
[goblint-cil.1.7.4] synchronised from git+https://github.com/goblint/cil.git
goblint-cil is now pinned to git+https://github.com/goblint/cil.git (version 1.7.4)
The following actions will be performed:
[...]
===== ∗ 35 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[...]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
∗ installed base-num.base
∗ installed num.0
∗ installed conf-gmp.1
∗ installed conf-m4.1
∗ installed conf-perl.1
∗ installed conf-which.1
∗ installed ocamlfind.1.8.0
∗ installed xml-light.2.4
∗ installed ppx_tools.5.0+4.05.0
∗ installed ocamlbuild.0.14.0
∗ installed zarith.1.7
∗ installed ppx_distr_guards.0.1
∗ installed dune.1.10.0
∗ installed batteries.2.9.0
∗ installed cppo.1.6.6
∗ installed goblint-cil.1.7.4
∗ installed jbuilder.transition
∗ installed ocaml-compiler-libs.v0.12.0
∗ installed ppx_derivers.1.2.1
∗ installed result.1.4
∗ installed sexplib0.v0.12.0
∗ installed easy-format.1.3.1
∗ installed biniou.1.2.0
∗ installed ocaml-migrate-parsetree.1.4.0
∗ installed base.v0.12.2
∗ installed yojson.1.7.0
∗ installed ppx_tools_versioned.5.2.3
∗ installed ppxfind.1.3
∗ installed stdio.v0.12.0
∗ installed ppxx.2.3.1
∗ installed ppx_deriving.4.4
∗ installed ppx_monadic.2.3.0
∗ installed ppx_deriving_yojson.3.5.1
∗ installed ppxlib.0.8.0
∗ installed ppx_import.1.6.2
Done.

<><> jbuilder.transition installed successfully <><><><><><><><><><><><><><><><>
=> Jbuilder has been renamed and the jbuilder package is now a transition package. Use the dune package instead.

If I try it without specifying a compiler, I get this strange behavior (no error, but it only installs the compiler and not the rest of the dependencies)

Here, opam supposes that the local package is a compiler, so it doesn't install ir. I'll push a fix for that.

the warning about ounit comes twice instead of once

On double missing ounit report, it is because the package is internally pinned twice, virtually to determine the compiler, and really to install it.

I'm not sure it should warn about with-test dependencies.

Yes, it is disabled on master (#3746 - https://github.com/ocaml/opam/commit/e9f90fc290b2fceab342ea88d7af5054b2043763)

Thanks for reporting!

rjbou commented 5 years ago

Can you run with --debug and share the log ?

vogler commented 5 years ago

I can't reproduce the main reported errors... even with you opam version, that I see is 2.0.4 in the logs

$ git clone https://github.com/goblint/analyzer.git && cd analyzer
$ make docker
# the following runs in the container
$ opam --version
2.0.4
$ opam switch
#  switch  compiler                     description
   4.02    ocaml-base-compiler.4.02.3   4.02
   4.03    ocaml-base-compiler.4.03.0   4.03
   4.04    ocaml-base-compiler.4.04.2   4.04
   4.05    ocaml-base-compiler.4.05.0   4.05
   4.06    ocaml-base-compiler.4.06.1   4.06
→  4.07    ocaml-base-compiler.4.07.1   4.07
   4.08    ocaml-variants.4.08.1+trunk  4.08
$ opam switch --debug create ./ --deps-only --locked ocaml-base-compiler.4.07.1
00:00.001  GSTATE                 LOAD-GLOBAL-STATE @ /home/opam/.opam
00:00.007  RSTATE                 LOAD-REPOSITORY-STATE @ /home/opam/.opam
00:00.119  RSTATE                 Loaded /home/opam/.opam/repo/state.cache in 0.112s
00:00.154  RSTATE                 Cache found
00:00.401  GSTATE                 Failed to evaluate global variable sys-ocaml-version: "ocamlc": command not found.
00:01.384  SOLVER                 Load cudf universe (depopts:false, build:true, post:true)
00:01.423  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:01.423  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:01.443  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:01.443  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:01.443  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:01.443  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:01.454  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:06.370  SOLVER                 filter_dependencies result={ goblint.1.0.0, ppx_import.1.3, ppx_import.1.2, ppx_import.1.1, ppx_distr_guards.0.1, goblint-cil.1.7.4, goblint-cil.1.7.3, ppx_import.1.6.2, ppx_import.1.6.1, ppx_import.1.6, ppx_import.1.5-3-gbd627d5, ppx_import.1.5, ppx_import.1.4, ppx_monadic.1.0.1, ppx_monadic.1.0.0, ppx_monadic.2.3.0, ppx_monadic.2.2.2, ppx_monadic.2.2.1, ppx_monadic.1.1.0, ppx_monadic.1.0.6, ppx_monadic.1.0.5, ppx_monadic.1.0.4, ppx_monadic.1.0.3, ppx_monadic.1.0.2, ppx_deriving_yojson.2.4, ppx_deriving_yojson.2.3, ppx_deriving_yojson.2.2, ppx_deriving_yojson.2.1, ppx_deriving_yojson.2.0, ppx_deriving_yojson.1.1, ppx_deriving_yojson.1.0, ppx_deriving_yojson.3.5.1, ppx_deriving_yojson.3.5, ppx_deriving_yojson.3.4, ppx_deriving_yojson.3.3, ppx_deriving_yojson.3.1, ppx_deriving_yojson.3.0, xml-light.2.4, xml-light.2.3, ppxx.2.3.2, ppxx.2.3.1, ppxx.2.3.0, ppxx.2.2.0, ppxx.2.1.0, ppxx.2.0.0, ppxx.1.4.0, ppxx.1.3.2, ppxx.1.3.1, ppxx.1.3.0, omake.0.10.3, omake.0.10.2, omake.0.9.8.7, omake.0.9.8.6-0.rc1, yojson.1.2.0, yojson.1.1.8, yojson.1.1.6, yojson.1.1.3, yojson.1.0.3, biniou.1.0.5, yojson.1.7.0, yojson.1.6.0, yojson.1.5.0, yojson.1.4.1, yojson.1.4.0, yojson.1.3.3, yojson.1.3.2, yojson.1.3.1, yojson.1.3.0, yojson.1.2.3, yojson.1.2.1, biniou.1.2.0, biniou.1.1.0, biniou.1.0.13, biniou.1.0.12, biniou.1.0.9, biniou.1.0.6, easy-format.1.3.1, easy-format.1.3.0, easy-format.1.2.0, easy-format.1.1.0, easy-format.1.0.2, easy-format.1.0.1, batteries.2.9.0, batteries.2.8.0, batteries.2.7.0, batteries.2.6.0, batteries.2.5.3, batteries.2.5.2, batteries.2.4.0, batteries.2.3.1, batteries.2.3.0, batteries.2.2.0, batteries.2.1.0, batteries.2.0.0, batteries.1.5.0, batteries.1.4.3, camomile.1.0.1, camomile.1.0.0, camomile.0.8.7, camomile.0.8.6, camomile.0.8.5, camomile.0.8.3, conf-perl.1, ppx_tools_versioned.5.0beta1, ppx_tools_versioned.5.0beta, ppx_tools_versioned.5.0alpha, jbuilder.1.0+beta1, ppx_deriving.4.4, ppx_deriving.4.3, ppx_deriving.4.2.1, ppx_deriving.4.2, ppx_deriving.4.1.5, ppx_deriving.4.1, ppx_deriving.4.0, ppx_deriving.3.3, ppx_deriving.3.2, ppx_deriving.3.1, ppx_deriving.3.0, ppx_deriving.2.2, ppx_deriving.2.1, ppx_deriving.2.0, ppx_deriving.1.1, ppx_deriving.1.0, ppx_deriving.0.3, ppx_deriving.0.2, ppx_deriving.0.1, ppxlib.0.4.0, ppxlib.0.3.1, ppxfind.1.3, ppxfind.1.2, ppxfind.1.1, cppo.1.0.1, cppo.1.0.0, cppo.0.9.4, cppo.0.9.3, ppxlib.0.8.0, ppxlib.0.7.0, ppxlib.0.6.0, ppxlib.0.5.0, stdio.v0.12.0, stdio.v0.11.0, ocaml-compiler-libs.v0.12.0, ocaml-compiler-libs.v0.11.0, base.v0.12.2, base.v0.12.1, base.v0.12.0, base.v0.11.1, base.v0.11.0, sexplib0.v0.12.0, sexplib0.v0.11.0, ocaml-compiler-libs.v0.10.0, ocaml-compiler-libs.v0.9.0, num.1.2, num.1.1, num.1.0, ocaml.4.02.0, ocaml-variants.4.08.0+flambda+no-flat-float-array, ocaml-variants.4.05.0+flambda, ocaml-variants.4.05.0+rc1+flambda, ocaml-migrate-parsetree.1.2.0, ocaml-variants.4.07.1+flambda+no-flat-float-array, ocamlfind.1.5.5, ocaml-variants.4.07.0+default-unsafe-string, dune.1.9.2, ocaml-variants.4.07.1+flambda, ocaml-migrate-parsetree.1.0.10, jbuilder.1.0+beta2, camlp4.4.03+1, ocaml.3.08.2, ocaml-variants.4.08.0+afl, ocaml-migrate-parsetree.1.0.5, ocaml-migrate-parsetree.1.3.0, ocaml-variants.4.08.0+beta2+default-unsafe-string, ocaml-variants.4.06.1+musl+static+flambda, ocaml-variants.4.07.1+spacetime, ocaml.3.10.0, ocaml-variants.4.02.3+curried-constr, ocaml-variants.4.06.0+beta2+fp, jbuilder.1.0+beta14, ocamlfind.1.7.3-1, ocaml-variants.4.06.0+beta2+afl, ocaml-variants.4.04.2+bytecode-only, jbuilder.1.0+beta9, ocaml-variants.4.08.0+default-unsafe-string, dune.1.10.0, ocaml-variants.4.09.0+beta1+afl, jbuilder.1.0+beta5, ocaml-variants.4.06.1+rc2, ocamlfind.1.6.1, ocaml-variants.4.04.2+fp+flambda, ocaml-variants.4.09.0+trunk+flambda, cppo.1.6.4, ocaml-variants.4.04.0+copatterns, ocaml-variants.4.06.0+beta2+force-safe-string, ocaml-variants.4.05.0+32bit, ocaml-variants.4.06.1+rc2+flambda, ocaml-variants.4.02.0+improved-errors, ocaml-migrate-parsetree.1.3.0~4.08.0+beta2, ocaml.3.07+2, ocaml-variants.4.06.0+beta1+default-unsafe-string, ocaml-variants.4.04.0+beta1, ocaml-variants.4.03.0+fp, ocaml-base-compiler.3.10.0, camlp4.4.02+2, ocaml-variants.4.03.0+trunk, ocaml-variants.4.00.1+mirage-unix, lwt.2.4.6, lwt.4.2.0, ocaml-variants.4.06.0+rc1+fp+flambda, camlp4.4.04+1, ocaml-variants.4.06.1+trunk+flambda, ppx_tools_versioned.5.2, ocaml-variants.4.04.0+BER, ocaml.4.04.1, ocaml-variants.4.07.0+rc1+fp, ocaml-variants.4.06.1+no-naked-pointers+flambda, ocaml-variants.4.00.1+french, ocaml-variants.4.06.0+rc1+default-unsafe-string, cppo.1.3.2, dune.1.8.1, ocaml-migrate-parsetree.1.0.2, ocaml-variants.4.07.1+fp, ocaml-variants.4.08.1+trunk+flambda, ocaml-variants.4.08.0+rc2+fp, ocaml.4.02.1, dune.1.5.1, ocaml-variants.4.08.0+beta3+flambda, ocaml-variants.4.08.0+beta2+flambda, ocaml-variants.4.02.0+rc1, ocaml-variants.4.08.0+rc1+default-unsafe-string, ocaml-variants.4.01.0+32bit, lwt.4.1.0, jbuilder.transition, ocaml-variants.4.04.2+flambda, jbuilder.1.0+beta10, ppx_tools_versioned.5.2.2, ocaml-variants.4.01.0+musl+static, ocaml-variants.4.06.1+bytecode-only, lwt.3.2.0, cppo.1.3.1, ocaml.3.11.0, ocaml-variants.4.07.0+fp+flambda, ocamlfind.1.6.2, ocamlfind.1.5.6, ocaml-variants.4.08.0+beta3+fp+flambda, ocaml-variants.4.07.1+fp+flambda, ocaml-variants.4.07.1+rc1+fp+flambda, ocaml-variants.4.06.1+statistical-memprof, ocaml-variants.4.05.0+spacetime, ocaml-migrate-parsetree.1.0.11, ocaml-variants.4.06.0+beta1+flambda, ocaml-variants.4.02.3+musl+static, ocaml-variants.4.06.1+no-flat-float-array, jbuilder.1.0+beta12, ocaml.4.02.2, ocaml-variants.4.03.0+beta1-no-debug, ocaml-variants.4.02.3+32bit, lwt.3.0.0, ocaml-variants.4.02.1+modular-implicits, ocaml-variants.4.05.0+beta3, ocaml-migrate-parsetree.1.3.1, ocaml-variants.4.08.0+rc1+fp, ocaml-variants.4.08.0+rc2+fp+flambda, camlp4.4.02+6, dune.1.5.0, ocaml-variants.4.07.1+default-unsafe-string, ocaml-variants.4.05.0+lto, ocaml-variants.4.08.1+trunk+fp+flambda, ocaml-variants.4.02.3+buckle-1, ocaml-variants.4.06.0+rc1, ocaml-variants.4.08.0+musl+static+flambda, ocaml-variants.4.01.0+musl, num.0, cppo.1.3.0, dune.1.7.2, ocaml-variants.4.04.0+beta2, ocaml-variants.4.09.0+beta1+fp, ocaml-base-compiler.3.07+2, ocaml-variants.4.05.0+rc1, ocaml-variants.4.03.0+beta1+flambda, ppx_tools.5.0+4.05.0, ocaml-variants.4.04.0+fp+flambda, dune.1.6.1, ocaml-variants.4.07.0+rc1, ocaml-variants.4.07.0+rc1+afl, ocaml-variants.4.06.0+beta1+force-safe-string, ocaml-variants.4.07.0+force-safe-string, ppx_derivers.1.2.1, result.1.1, ocaml-variants.4.06.0+beta2, ocaml-variants.4.06.0+rc1+force-safe-string, ocaml-variants.4.06.1+rc1+force-safe-string, ocaml-variants.4.02.1+PIC, ocaml.4.02.3, ocaml.3.08.1, ocaml-variants.4.07.0+rc2, ocaml-variants.4.07.0+beta2+default-unsafe-string, ocamlfind.1.5.2, ocaml-variants.4.07.0+rc1+fp+flambda, ocaml-variants.4.06.0+beta2+default-unsafe-string, ocaml-variants.4.03.0+beta2, ocaml-variants.4.07.1+bytecode-only, ocaml-migrate-parsetree.1.0.4, ocaml-variants.4.04.2+fPIC, ocaml-variants.4.06.0+rc1+flambda, ocaml-variants.4.08.0+no-flat-float-array, dune.1.8.2, ocaml-variants.4.04.1+safe-string, ocaml-variants.4.06.1+flambda, ocaml.3.12.1, ocaml-variants.4.06.0+fp+flambda, ocaml-migrate-parsetree.0.6, cppo.1.4.1, ocaml-variants.4.05.0+afl, jbuilder.1.0+beta19, ocaml-variants.4.04.0+afl, ocaml.4.05.0, ocaml-variants.4.08.0+rc1+afl, ocaml-variants.4.04.1+spacetime, ocaml-variants.4.07.1+rc1+32bit, ppx_tools.4.02.3, ocaml-variants.4.05.0+beta1+flambda, cppo.1.1.1, dune.1.8.0, ocaml-variants.4.06.0+beta1+fp+flambda, ocaml-variants.4.09.0+beta1+default-unsafe-string, ocaml-variants.4.07.0+32bit, dune.1.1.0, ocaml-variants.4.06.0+afl, ocaml-variants.4.06.0+beta1+afl, ocaml.3.11.2, ocaml-variants.4.08.1+trunk+default-unsafe-string, ocaml-variants.4.06.0+beta1, ppx_tools.5.1+4.06.0, ocaml-variants.4.08.0+rc1+flambda, ocaml-variants.4.04.2+safe-string, ocaml-variants.4.03.0+32bit, ocaml-variants.4.07.1+BER, ocaml-variants.4.08.0+fp, ocaml-variants.4.04.1+bytecode-only, ocaml-variants.4.05.0+beta1, ocaml-variants.4.02.1+fp, dune.1.2.0, ocaml-variants.4.07.0+trunk+default-unsafe-string, ocaml-variants.4.06.0+default-unsafe-string, ocaml-variants.4.07.1+musl+static+flambda, ocaml-variants.4.08.0+spacetime, ocamlfind.1.7.1, camlp4.4.02+4, ocaml-variants.4.08.0+beta1+afl, ocaml-migrate-parsetree.1.0.8, ocaml-variants.4.04.0+fPIC, ocaml-variants.4.07.0+rc1+flambda, ocaml.4.08.0, ocaml-variants.4.03.0+fp+flambda, ocaml-variants.4.08.0+beta1+default-unsafe-string, ocaml-variants.4.06.0+32bit, ocaml.3.09.3, ocaml-variants.4.01.0+armv6-freebsd, ocaml-variants.4.06.0+statistical-memprof, ocaml-variants.4.06.0+spacetime, camlp4.4.05+1, ocaml-variants.4.00.1+BER, lwt.2.5.2, ppx_tools.4.03.0, ocaml-variants.4.07.0+rc2+flambda, base-bytes.base, base-metaocaml-ocamlfind.base, ocaml-variants.4.09.0+beta1+fp+flambda, result.1.3, camlp4.4.02+7, ocaml-variants.4.02.3+bytecode-only, ocaml-variants.4.07.1+rc1+afl, ocaml-base-compiler.3.11.2, ocaml-variants.4.00.1+PIC, cppo.1.6.5, ocamlfind.1.3.1, ocaml-variants.4.04.1+fp+flambda, cppo_ocamlbuild.1.6.6, ocaml.3.09.0, ocaml.4.01.0, ocaml-variants.4.07.1+rc1+flambda, ocaml-variants.4.07.1+rc1+force-safe-string, ocaml-variants.4.05.0+bytecode-only, ocamlfind.1.3.3, ocaml-variants.4.06.1+trunk+fp+flambda, ocaml-variants.4.08.0+rc1, ocaml-variants.4.07.0+beta2+force-safe-string, camlp4.4.02+system, ocaml-variants.4.07.1+rc1+flambda+no-flat-float-array, ocaml-variants.4.08.0+beta1+fp, ocaml-variants.4.10.0+trunk+flambda, dune.1.6.0, result.1.2, base-bytes.backport, ocaml-variants.4.10.0+trunk+afl, ocamlbuild.0, ocaml-variants.4.07.0+trunk, ocaml-variants.4.08.1+trunk+force-safe-string, ocaml-base-compiler.3.08.2, ocaml-variants.4.06.1+rc1+fp+flambda, ocamlbuild.0.11.0, seq.0.1, cppo.1.5.0, ppx_tools_versioned.5.2.3, ppx_tools.0.99.2, ocaml-variants.4.08.0+beta1+fp+flambda, ocaml-variants.4.07.0+beta2+fp+flambda, ocaml-variants.4.07.0+trunk+afl, ocamlfind.1.5.4, ocaml-variants.4.02.2+improved-errors, ocaml-variants.4.06.1+default-unsafe-string, camlp4.4.03+system, ocaml-variants.4.07.0+trunk+flambda, ocaml-variants.4.06.1+rc2+default-unsafe-string, lwt.2.4.5, dune.1.7.3, ocaml-variants.4.03.0+fPIC, ocaml-variants.4.06.0+beta2+flambda, ocaml-variants.4.03.0+statistical-memprof, base-ocamlbuild.base, ocaml.3.08.4, ocaml.4.10.0, ocaml-variants.4.06.1+rc2+fp+flambda, ocaml-variants.4.06.1+afl, ocaml-variants.4.02.1+32bit, ppx_tools_versioned.5.2.1, ocaml-base-compiler.3.08.1, ocaml-variants.4.00.1+raspberrypi, base-no-ppx.base, ocaml-variants.4.07.1+32bit, ocaml.3.10.1, jbuilder.1.0+beta20, ocaml-variants.4.09.0+trunk+default-unsafe-string, ocaml-variants.4.08.0+rc2, ocaml-variants.4.07.0+rc2+force-safe-string, ocaml-variants.4.09.0+trunk, ocaml-variants.4.03.0+flambda, ocaml-variants.4.04.0+32bit, ocaml-variants.4.08.1+trunk, lwt.3.2.1, ocaml.4.07.0, ocaml-variants.4.03.0+trunk+fp+flambda, ocaml-variants.4.04.1+fp, ocaml-variants.4.00.1+annot, lwt.2.4.0, ocaml-variants.4.06.0+force-safe-string, cppo.1.6.1, ocamlfind.1.5.3, ocaml-variants.4.08.0+beta2+fp+flambda, ocaml-variants.4.01.0+open-types, ocaml.4.08.1, ocaml-variants.4.08.1+trunk+afl, ocaml-variants.4.07.0+bytecode-only, ocamlfind.1.8.0, ocaml-variants.4.06.1+trunk+force-safe-string, ocaml-variants.4.00.0+debug-runtime, ocaml-variants.4.06.0+flambda+no-flat-float-array, dune.1.9.3, ocaml-variants.4.00.0+fp, ocaml-variants.4.06.0+no-flat-float-array, ocaml-variants.4.09.0+beta1, ocaml-variants.4.04.2+32bit, ppx_tools.5.2+4.08.0, ppx_tools.5.0+4.03.0, ocaml-base-compiler.4.02.0, ocaml-variants.4.08.0+rc2+afl, ocamlbuild.0.9.2, ocaml-variants.4.07.1+afl, ocaml-variants.4.07.1+statistical-memprof, ocaml-variants.4.10.0+trunk, cppo.1.6.0, camlp4.4.01, ocamlbuild.0.9.3, ocaml-migrate-parsetree.1.4.0, ocaml-variants.4.08.0+rc1+fp+flambda, ocaml-variants.4.07.0+rc2+afl, ocaml-migrate-parsetree.1.0, ocaml-variants.4.07.0+rc1+default-unsafe-string, ocaml-base-compiler.4.04.1, ppx_tools.0.99, ocaml-variants.4.08.0+32bit, ppx_tools.0.1, seq.base, ocaml-variants.4.05.0+trunk+safe-string, ocaml-variants.4.07.1+no-flat-float-array, ocaml-variants.4.07.0+flambda+no-flat-float-array, ocamlbuild.0.9.1, ocaml-variants.4.06.1+trunk+afl, camlp4.4.07+system, ocaml-variants.4.09.0+trunk+afl, ocaml-variants.4.00.1+short-types, ocaml-variants.4.07.0+rc2+fp+flambda, lwt.2.4.7, ocaml-variants.4.08.0+beta1+flambda, ocaml-variants.4.06.1+force-safe-string, ocaml-variants.4.06.1+rc2+afl, ocaml-variants.4.06.0+musl+static+flambda, dune.1.0.1, camlp4.4.05+system, ocaml.4.00.0, ocaml-variants.4.07.0+no-flat-float-array, jbuilder.1.0+beta8, ocaml-variants.4.02.3+buckle-master, jbuilder.1.0+beta11, ocaml-variants.4.03.0+beta1, ocaml-variants.4.06.1+fp, cppo.1.6.6, ocaml-variants.3.09.1+metaocaml, ocaml.3.07, ocaml.4.00.1, lwt.3.1.0, ocaml-base-compiler.3.09.0, ocaml-migrate-parsetree.1.0.1, cppo.1.6.2, ocaml-variants.4.05.0+trunk, ocaml-variants.4.09.0+beta1+flambda, ocaml-base-compiler.4.02.2, ocaml-variants.4.00.1+debug-runtime, ocaml-variants.4.07.0+beta2+flambda, ocaml-variants.4.08.0+beta3+afl, ocaml.4.06.0, ocaml-variants.4.07.1+rc1+fp, ocaml-variants.4.06.0+beta2+fp+flambda, ocaml-variants.4.04.0+safe-string, ocaml-variants.4.02.3+musl, ocaml-variants.4.01.0+BER, ocaml-migrate-parsetree.1.0.7, ocaml-variants.4.04.1+fPIC, dune.1.7.1, ocaml-variants.4.04.0+beta1+flambda, ocaml-variants.4.07.0+trunk+fp, lwt.2.7.0, ocaml-base-compiler.4.02.1, cppo.1.2.2, ocaml.3.08.0, ocaml-variants.4.06.1+fp+flambda, jbuilder.1.0+beta13, jbuilder.1.0+beta4, ocaml-variants.4.08.0+beta1, lwt.2.3.2, ocaml.3.12.0, ocaml-variants.4.06.1+rc1+afl, ocaml-base-compiler.4.05.0, ocaml-variants.4.04.1+flambda, ocaml-variants.4.04.2+statistical-memprof, ocamlbuild.0.14.0, ocaml-variants.4.04.2+fp, camlp4.4.07+1, ocaml-variants.4.02.1+BER, ocaml-variants.4.07.1+rc1+default-unsafe-string, ocaml-variants.4.05.0+statistical-memprof, dune.1.3.0, camlp4.4.01+system, ocaml-variants.4.06.1+rc1+flambda, ocaml-variants.4.08.0+beta3+fp, ocaml-variants.4.06.0+bytecode-only, ppx_tools.0.99.1, lwt.2.4.1, ocaml-base-compiler.3.09.3, dune.1.4.0, lwt.2.4.2, lwt.4.2.1, ocaml-variants.4.04.0+trunk+forced_lto, dune.1.6.3, ocaml-variants.4.03.0+trunk+flambda, ocaml-variants.4.07.0+rc2+default-unsafe-string, ocaml-variants.4.06.0+rc1+fp, ocaml-variants.4.07.0+beta2+afl, ocaml.3.09.2, lwt.2.5.1, camlp4.4.02.0-1modular-implicits, ocaml-config.1, ocaml.3.07+1, ocaml-variants.4.01.0+profile, ocaml-variants.4.08.0+beta3, base-num.base, dune.1.0.0, ocaml-variants.4.06.0+beta1+fp, ocaml-variants.4.06.0+rc1+afl, ocaml-variants.4.08.0+rc2+default-unsafe-string, ocaml-migrate-parsetree.1.0.3, ocaml.4.07.1, lwt.2.4.4, ocaml-variants.4.08.0+bytecode-only, ocaml-variants.4.07.0+rc1+force-safe-string, ocaml-base-compiler.3.12.1, ocaml.3.11.1, camlp4.4.06+system, ocaml.4.09.0, jbuilder.1.0+beta17, ocaml-variants.4.06.1+rc2+force-safe-string, ppx_tools_versioned.5.0.1, lwt.2.4.3, ocaml-variants.4.04.0+beta2+flambda, ocamlbuild.0.12.0, ocaml-variants.4.04.0+fp, ocamlbuild.0.9.0, ocaml-migrate-parsetree.1.0.9, lwt.2.5.0, camlp4.4.04+system, ocaml-variants.4.07.0+beta2+fp, ocaml-variants.4.09.0+trunk+fp+flambda, ppx_tools_versioned.5.1, ocaml-variants.4.01.0+fp, ocaml-variants.4.05.0+trunk+fp+flambda, jbuilder.1.0+beta19.1, ocaml-variants.4.06.1+lto, dune.1.2.1, ocaml-base-compiler.4.02.3, ocamlfind.1.5.1, ocaml-variants.4.06.0+flambda, dune.1.6.2, ocaml-variants.4.05.0+beta2, ocaml-variants.4.08.1+trunk+fp, ocaml-variants.4.02.1+musl+static, ocaml-variants.4.06.1+rc1+fp, ocaml-variants.4.02.3+PIC, ppx_tools.5.0+4.02.0, ocaml-migrate-parsetree.1.3.0~4.08.0+beta3, ocaml-variants.4.07.0+afl, ocaml-variants.4.08.0+force-safe-string, camlp4.4.02+1, ocaml-variants.4.06.1+rc2+fp, ocaml-variants.4.05.0+trunk+afl, ocaml.4.04.2, lwt.4.0.0, lwt.2.4.8, ocaml-variants.4.07.0+rc2+fp, ocaml-variants.4.08.0+rc2+flambda, ocaml-migrate-parsetree.0.7, ocaml-variants.4.06.0+fp, ocaml-variants.4.09.0+trunk+fp, ocaml-variants.4.08.0+beta3+default-unsafe-string, camlp4.4.06+1, jbuilder.1.0+beta18.1, ocaml-variants.4.08.0+beta2, jbuilder.1.0+beta15, mmap.1.1.0, ocaml-variants.4.04.0+flambda, cppo_ocamlbuild.1.6.0, ocaml-variants.4.04.0+spacetime, ocaml-variants.4.06.1+termux, ocaml-migrate-parsetree.1.0.6, ocamlfind.1.7.2, ocaml-variants.4.08.0+flambda, ocaml-variants.4.07.0+spacetime, ocaml.3.09.1, ocamlfind.1.4.1, dune.1.7.0, ocaml-base-compiler.4.04.0, ocaml-variants.4.01.0+lsb, jbuilder.1.0+beta18, ocaml-variants.4.06.1+trunk, ocamlfind.1.4.0, ocaml-variants.4.06.1+32bit, ocaml-variants.4.06.1+rc1, jbuilder.1.0+beta6, ppx_tools.0.99.3, dune.1.9.0, ocaml-variants.4.00.1+mirage-xen, ocaml-variants.4.06.1+rc1+default-unsafe-string, result.1.4, ocaml-variants.4.07.1+force-safe-string, ocaml-variants.4.05.0+beta2+flambda, ocaml-variants.4.02.0+PIC, mmap.1.0.2, ocaml-variants.4.07.0+flambda, ocaml.3.10.2, ocaml-variants.4.06.1+trunk+fp, ocaml-variants.4.08.0+beta2+fp, ocaml-base-compiler.3.11.0, result.1.0, ocaml-variants.4.07.0+beta2, jbuilder.1.0+beta7, ocaml-variants.4.08.0+fp+flambda, ocaml-variants.4.03.0+beta2-no-debug, ppx_tools.5.0, ocaml-variants.4.02.3+fp, ocaml-variants.4.02.1+modular-implicits-ber, jbuilder.1.0+beta3, ocaml-variants.4.02.0+trunk, ocaml-variants.4.02.1+musl, ocaml.4.04.0, ocamlfind.1.7.3, cppo.1.1.0, ocamlfind.1.3.2, ocaml-variants.4.05.0+safe-string, jbuilder.1.0+beta16, cppo.1.4.0, camlp4.4.02+3, dune.1.9.1, ppx_derivers.1.0, ocaml-variants.4.00.1+open-types, ocaml-variants.4.03.0+beta2+flambda, ocaml-variants.4.04.1+32bit, ocaml-variants.4.04.0+bytecode-only, ocaml.3.08.3, ocaml-migrate-parsetree.1.1.0, ocaml-variants.4.07.1+rc1, ocaml.4.06.1, ocaml.4.03.0, ocaml-variants.4.08.0+beta2+afl, dune.1.1.1, ocaml-variants.4.05.0+musl+static+flambda, ocaml-variants.4.02.2+rc1, ocaml-variants.4.07.0+fp, cppo.1.1.2, conf-ncurses.1, ocaml-beta.enabled, conf-which.1, conf-m4.1, base-unix.base, base-threads.base, base-bigarray.base, conf-pkg-config.1.1, conf-pkg-config.1.0 }
00:06.382  SOLVER                 trim-subset
00:07.268  SOLVER                 Load cudf universe (depopts:false, build:true, post:true)
00:07.302  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:07.302  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:07.322  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:07.322  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:07.322  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:07.322  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:07.328  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:14.708  SOLVER                 trim-subset
00:15.535  SOLVER                 Load cudf universe (depopts:false, build:true, post:true)
00:15.568  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:15.568  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:15.585  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:15.585  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:15.585  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:15.585  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:15.592  FILTER                 ERR: value_bool: "/home/opam/.opam/#unset#/doc"
00:18.586  SWACT                  create_empty_switch at /home/opam/analyzer
00:18.586  SYSTEM                 mkdir /home/opam/analyzer/_opam
00:18.589  SYSTEM                 mkdir /home/opam/analyzer/_opam/lib
00:18.589  SYSTEM                 mkdir /home/opam/analyzer/_opam/lib/stublibs
00:18.589  SYSTEM                 mkdir /home/opam/analyzer/_opam/lib/toplevel
00:18.590  SYSTEM                 mkdir /home/opam/analyzer/_opam/.opam-switch
00:18.590  SYSTEM                 mkdir /home/opam/analyzer/_opam/.opam-switch/build
00:18.590  SYSTEM                 mkdir /home/opam/analyzer/_opam/bin
00:18.590  SYSTEM                 mkdir /home/opam/analyzer/_opam/sbin
00:18.590  SYSTEM                 mkdir /home/opam/analyzer/_opam/doc
00:18.594  SYSTEM                 mkdir /home/opam/analyzer/_opam/man
00:18.594  SYSTEM                 mkdir /home/opam/analyzer/_opam/.opam-switch/install
00:18.595  SYSTEM                 mkdir /home/opam/analyzer/_opam/.opam-switch/config
00:18.596  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man1
00:18.596  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man1M
00:18.597  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man2
00:18.597  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man3
00:18.598  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man4
00:18.600  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man5
00:18.600  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man6
00:18.600  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man7
00:18.600  SYSTEM                 mkdir /home/opam/analyzer/_opam/man/man9
00:18.601  SWACT                  install_switch_config switch=/home/opam/analyzer
00:18.603  FILE(switch-config)    Wrote /home/opam/analyzer/_opam/.opam-switch/switch-config in 0.003s
00:18.605  FILE(config)           Wrote /home/opam/.opam/config in 0.002s
00:18.605  STATE                  LOAD-SWITCH-STATE @ /home/opam/analyzer
00:18.647  STATE                  Detected changed packages (marked for reinstall): {}
00:18.648  FILE(switch-config)    Wrote /home/opam/analyzer/_opam/.opam-switch/switch-config in 0.001s
00:18.648  STATE                  Switch state loaded in 0.043s
00:18.977  SOLVER                 resolve request=install:() remove:() upgrade:(ocaml-base-compiler (= 4.07.1) & ocaml-base-compiler (= 4.07.0) & ocaml-base-compiler (= 4.06.1) & ocaml-base-compiler (= 4.06.0) & ocaml-base-compiler (= 4.05.0) & ocaml-base-compiler (= 4.04.2) & ocaml-base-compiler (= 4.04.1))
00:19.844  SOLVER                 Load cudf universe (depopts:false, build:true, post:true)
00:19.877  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.877  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.894  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.894  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.894  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.894  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.901  FILTER                 ERR: value_bool: "/home/opam/analyzer/_opam/doc"
00:19.935  CUDF                   resolve request=install:() remove:() upgrade:(ocaml-base-compiler (= 36) & ocaml-base-compiler (= 35) & ocaml-base-compiler (= 34) & ocaml-base-compiler (= 33) & ocaml-base-compiler (= 32) & ocaml-base-compiler (= 31) & ocaml-base-compiler (= 30))
00:19.935  SOLVER                 Calling solver builtin-mccs+glpk with criteria -removed,-count[version-lag,request],-count[version-lag,changed],-changed
00:21.134  CUDF                   Solver call done in 1.199
[ERROR] Could not resolve set of base packages:
        Your request can't be satisfied:
          - No available version of ocaml-base-compiler satisfies the constraints

Switch initialisation failed: clean up? ('n' will leave the switch partially installed) [Y/n] y
00:21.160  FILE(config)           Wrote /home/opam/.opam/config in 0.000s
00:21.160  SYSTEM                 rmdir /home/opam/analyzer/_opam
rjbou commented 5 years ago

Ok... It's a mix of several things... It is clearly the same case than #3874. What happen here is the same than in #3964, as there is an argument after the --locked option, opam looks for opam.ocaml-base-compiler.4.07.1, don't find it and then roll back to default opam, without the compiler specification. It is then the same specific case described in #3874. What makes it works for me is that I have an ocaml system installed but not in the CI, so a single solution is found, the system one.

Put the --locked option at the end, and your switch will be created using the locked file. With integration of lock command in opam, --locked option has been split into two option, to avoid these kind of misuse/misreading/mis*. I'll also add in the 2.0 branch a warning in case of not found lock file.

rjbou commented 4 years ago

Is this resolved ?

vogler commented 4 years ago

Sorry, with --locked at the end it worked, yes. Thanks!

rjbou commented 4 years ago

Great!