opam package should depend on ocaml-compiler-libs

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Mon Jun 8 18:58:31 GMT 2020


On 2020-06-08 03:14, David Allsopp via Cygwin wrote:
> Brian Inglis wrote:
>> On 2020-05-28 03:28, David Allsopp via Cygwin wrote:
>>> opam assumes that OCaml installed by the "OS" package manager is
>> "complete"
>>> (i.e. is the same as "make install" from the OCaml sources), which is
>>> a problem when "OS" package managers split upstream ocaml and don't
>>> install the ocaml-compiler-libs package by default.
>>>
>>> Please could either the opam or ocaml package be updated to depend on
>>> ocaml-compiler-libs. Fixes
>>> https://github.com/ocaml/opam-repository/issues/16457.
>>>
>>> Debian/Ubuntu and Fedora both also have ocaml-compiler-libs packages,
>>> but it's installed by their ocaml package as well.
>>>
>>> Arch chooses not to do this, having packages like ocaml-findlib
>>> expressly depending on ocaml-compilerlibs and so also has its opam
>>> package depend on ocaml-compilerlibs.
>>>
>>> As both an upstream OCaml and opam maintainer, I don't mind which
>>> package has the dependency, but if opam is installed, please can any
>>> system-installed ocaml definitely be "complete"!
>>
>> [current maintainer has resigned so packages are up for adoption]
>>
>> Cygwin packages are granular and dependencies are functional: which of the
>> Cygwin packages opam and opam-installer uses Cygwin package ocaml-
>> compiler-libs, or does opam use another ocaml package to build?
>>
>> Current packages are:
>> emacs-ocaml 4.10.0-1 x86_64
>> ocaml 4.10.0-1 x86_64
>> ocaml-base 4.10.0-1 x86_64
>> ocaml-cairo2 0.6.1-1 x86_64
>> ocaml-cairo2-gtk 0.6.1-1 x86_64
>> ocaml-cairo2-pango 0.6.1-1 x86_64
>> ocaml-calendar 2.04-2 x86_64
>> ocaml-camlp4 4.10-0.1 x86_64
>> ocaml-camlp5 7.11-1 x86_64
>> ocaml-camomile 1.0.2-1 x86_64
>> ocaml-camomile-data 1.0.2-1 x86_64
>> ocaml-compiler-libs 4.10.0-1 x86_64
>> ocaml-cppo 1.6.6-1 x86_64
>> ocaml-csv 1.7-1 x86_64
>> ocaml-ctypes 0.17.1-1 x86_64
>> ocaml-curses 1.0.4-1 x86_64
>> ocaml-curses-debuginfo 1.0.4-1 x86_64
>> ocaml-debuginfo 4.04.2-1 x86_64
>> ocaml-doc 4.10.0-1 x86_64
>> ocaml-dune 2.5.1-1 x86_64
>> ocaml-extlib 1.7.7-1 x86_64
>> ocaml-facile 1.1.3-3 x86_64
>> ocaml-fileutils 0.6.2-1 x86_64
>> ocaml-findlib 1.8.1-1 x86_64
>> ocaml-gettext 0.4.1-1 x86_64
>> ocaml-graphics 5.1.0-1 x86_64
>> ocaml-gv 2.40.1-5 x86_64
>> ocaml-integers 0.3.0-1 x86_64
>> ocaml-lablgl 1.06-1 x86_64
>> ocaml-lablglade2 2.18.10-1 x86_64
>> ocaml-lablgnomecanvas 2.18.10-1 x86_64
>> ocaml-lablgnomeui 2.18.10-1 x86_64
>> ocaml-lablgtk2 2.18.10-1 x86_64
>> ocaml-lablgtk3 3.1.0-1 x86_64
>> ocaml-lablgtk3-gtkspell3 3.1.0-1 x86_64
>> ocaml-lablgtk3-sourceview3 3.1.0-1 x86_64
>> ocaml-lablgtkgl2 2.18.10-1 x86_64
>> ocaml-lablgtksourceview2 2.18.10-1 x86_64 ocaml-lablgtkspell 2.18.10-1
>> x86_64 ocaml-lablrsvg 2.18.10-1 x86_64 ocaml-labltk 8.06.8-1 x86_64 ocaml-
>> libvirt 0.6.1.5-1 x86_64 ocaml-libvirt-debuginfo 0.6.1.5-1 x86_64 ocaml-
>> llvm 8.0.1-1 x86_64 ocaml-llvm-doc 8.0.1-1 x86_64 ocaml-num 1.3-1 x86_64
>> ocaml-ocamlbuild 0.14.0-1 x86_64 ocaml-ocamldoc 4.10.0-1 x86_64 ocaml-
>> ounit 2.2.2-1 x86_64 ocaml-result 1.5-1 x86_64 ocaml-runtime 4.10.0-1
>> x86_64 ocaml-source 4.10.0-1 x86_64 ocaml-topkg 1.0.1-1 x86_64 ocaml-xml-
>> light 2.3-0.2.svn234 x86_64
> 
> I don't quite understand your question - opam is OCaml's package manager.
> 
> It can either compile OCaml itself from sources or use the OCaml installed by the system's package manager. In the second case, it quite reasonably assumes that the OCaml which has been installed is the one the OCaml developers intended which includes its compiler-libs package. Given that opam depends on ocaml, it should also depend on ocaml-compiler-libs, therefore.

What you or the ocaml developers assume does not matter: what matters is how the
package works. If you do not understand the question and can not provide the
answer, I can see why the maintainer made his choice: he probably never used the
packages, just ran any tests included.
It appears that neither ocaml nor opam use ocaml-compiler-libs, otherwise the
cygwin build and packaging software would include it, so which package in the
ocaml suite actually binds the ocaml-compiler-libs to do its job, or does that
package just provide dynamic libraries which are expected to be present when
anyone runs ocaml programs?
In which case users would be expected to manually install the package
ocaml-compiler-libs.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in IEC units and prefixes, physical quantities in SI.]


More information about the Cygwin mailing list