[ANN] opam 2.0.2!

We are pleased to announce the release of opam 2.0.2.

This new version contains mainly backported fixes, you can find more information in this blog post.

Note that as sandbox scripts have been updated, don’t forget to run opam init --reinit -ni to update yours.


opam is a source-based package manager for OCaml. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.

1 Like

Thanks @rjbou! :slight_smile: For anyone on Ubuntu that wants a quick upgrade, the opam2 PPA has been updated with this release as well.

2 Likes

Thank you for setting up the ppa! It makes it much easier to keep opam updated.

Btw, the opam2 PPA has been advertised a bit here, but I’m not sure its existence is very well known. Would it make sense to advertise it on the opam install page?

1 Like

I think that’d be great, but I won’t have a chance to send this PR for a while as I’m travelling – if someone else can I’d appreciate it!

I’m currently having a bit of trouble updating MacPorts to provide opam 2.0.2: see https://github.com/ocaml/opam/issues/3700

If someone can help me figure out that error message, I can probably get MacPorts updated within a few hours.

I’ve made a pull-request https://github.com/ocaml/opam/pull/3701 to update the installation instructions for Ubuntu.

2 Likes

The brew version of 2.0.2 landed today-ish.

3 Likes

It doesn’t build for me with dune-1.6.2 and ocaml-4.07.1:
opam-full-2.0.2$ make
dune build --profile=release opam-installer.install opam.install
File “src_ext/cppo/src/jbuild”, line 10, characters 10-50:
10 | (echo “let cppo_version = “${version:cppo}””)))))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: Package “cppo” doesn’t exist in the current project.
ocamlc src_ext/ocamlgraph/src/.graph.objs/graph__Dot_lexer.{cmi,cmo,cmt}
File “src/dot_lexer.mll”, line 38, characters 21-37:
Warning 3: deprecated: Stdlib.String.lowercase
Use String.lowercase_ascii instead.
ocamlopt src_ext/ocamlgraph/src/.graph.objs/graph__Dot_lexer.{cmx,o}
File “src/dot_lexer.mll”, line 38, characters 21-37:
Warning 3: deprecated: Stdlib.String.lowercase
Use String.lowercase_ascii instead.
ocamlc src_ext/mccs/src/glpk/wclique1.o
src_ext/mccs/src/glpk/misc/wclique1.c: In function ‘_glp_wclique1’:
src_ext/mccs/src/glpk/misc/wclique1.c:121:7: warning: ‘memset’ specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
src_ext/mccs/src/glpk/misc/wclique1.c:123:7: warning: ‘memset’ specified size between 18446744071562067968 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Wstringop-overflow=]
ocamlopt src_ext/cmdliner/src/.cmdliner.objs/cmdliner_base.{cmx,o}
File “src_ext/cmdliner/src/cmdliner_base.ml”, line 14, characters 16-32:
Warning 3: deprecated: Stdlib.String.lowercase
Use String.lowercase_ascii instead.
File “src_ext/cmdliner/src/cmdliner_base.ml”, line 15, characters 16-32:
Warning 3: deprecated: Stdlib.String.lowercase
Use String.lowercase_ascii instead.
File “src_ext/cmdliner/src/cmdliner_base.ml”, line 16, characters 17-34:
Warning 3: deprecated: Stdlib.String.capitalize
Use String.capitalize_ascii instead.
make: *** [Makefile:107: opam.install] Error 1

This is building with the built-in solver. The same error arises when compiling with ocaml-4.06.1. A different set of errors arises wtih dune-1.6.1. cppo-1.6.5 is installed, for that it is worth.

My build error seems to be a dune issue. I pinned/downgrade to dune-1.2.1, and opam-2.0.2 built.

Where a package like opam uses dune/jbuilder as its build system and has a specific version dependency, I suggest that the opam release announcement, and preferably also the README, says what it is, so that those building it know what to aim for.

Sorry about that @cvine; this is something we discovered post-release of opam 2.0.2 and is now fixed in Dune master by @rgrinberg and @jeremiedimino: https://github.com/ocaml/dune/pull/1648

The fix will be in the forthcoming dune 1.7.0, and only dune >= 1.5.0 & dune < 1.7.0 should be affected, and only for the opam-full package that vendors the dependent library sources.

MacPorts is now updated to opam 2.0.2; sorry for the delay.

We can also consider making 1.6.3 if you find that preferable. There’s still some issues that need to be hammered out for 1.7.0 as of I fear that we don’t have an ETA for it yet.

and as an update, dune 1.6.3 with a fix for the opam compilation problem is now available: [ANN] Dune 1.6.3