Where is my conf-libenv package


#1

I’m confused about the status of the conf-libev package. I have Lwt installed and working on my Mac. The README file for the Lwt package says that Lwt depends on conf-libev, and indeed if I do opam show lwt I see that conf-libev is listed among the depopts.

BUT : I cannot find any “conf-libev” package inside my .opam directory, and if I do opam list I do not see any “conf-libev” package mentioned. I only see two packages whose name begins with conf :

conf-m4             1           Virtual package relying on m4
conf-which          1           Virtual package relying on which

Where are the source files for conf-libev then ?


#2

I think the explanation is in two parts:

  • as you mention, conf-libev is part of the depopts of lwt, which means it is an optional dependency, hence lwt can be installed and working without conf-libev installed
  • opam list lists the packages installed in your current switch, which does not seem to include conf-libev. If you instead do opam search conf-libev it should show you that the package exists in the opam repository. Then opam info conf-libev will probably show that it is simply not installed on your machine.

#3

Indeed (except you interchanged opam search and opam info).


#4

There are still some things that confuse me. If I try opam install conf-libenv I get the error message [ERROR] No package named conf-libenv found, even though opam info conf-libenv does not return an error :

sk1

It seems that this package is not integrated with opam. The link provided in the output of opam info is to a package called libev. Why is it called conf-libev by opam then ?


#5

I think there may be some typos here: the package seems to be called conf-libev, and not conf-libenv (i.e. there is no n in the actual package name). So be sure to check these typos when typing opam commands.
Additionally, the conf-* packages usually represent configuration packages that check that some system dependency external to opam is installed, such as libev, lablgtk, m4, and so on. As such, the package itself doesn’t install anything, but should fail to install if the external dependency is not present.