> I am not sure I see the advantages of the *-conf solution vs a more
> granular approach [...] where each package has a
> fixed set of system dependencies.

If several OCaml package have system dependencies in common,
(of several versions of the same OCaml package),
indicating depexts per-package duplicate the information. This is what we
were doing before and in practice most package depexts were perpetually
out-of-date.
Some information in the conf-package is rather canonical from system to system
(such as: the pkg-config name, even though there is still variation unfortunately),
some is highly system-dependent (the package name in the package manager);
I think it's reasonable to also have the "canonical" information in the build system.

Also, conf-* packages are very early in the dependency tree, so a pragmatic advantage
is that they will fail early in the build, typically before you have installed all the OCaml dependencies
and you start building the package itself.
(Also, depending on the configure/build system, you may geta nice error if a dependency is missing,
or a crappy compilation failure that can be hard for users to interpret).

> they don't have the *-conf pitfall of having to recompile a lot of
> dependencies when a *-conf package is installed

If you edit a package to update system dependencies, you have the same recompilation issues.
If you have to recompile *more* in the case of a conf-* package, it is because it introduced dependency
sharing, which is a good thing -- making the repository more maintainable.


> I find more natural to do `opam install lablgtk2-sourceview2` than
> `opam install conf-gtksourceview lablgtk2`

I don't understand, the point is for lablgtk2-sourceview2 to depend
on conf-gtksourceview2, so you should just use the first command
and the conf-* package(s) will get installed as well.


On Fri, Dec 7, 2018 at 11:04 AM Emilio Jesús Gallego Arias <e@x80.org> wrote:
Jacques Garrigue <garrigue@math.nagoya-u.ac.jp> writes:

> There is no opam package yet, because I’m not sure how to do that:
> I seem to need to add a new conf-gtksourceview3 package too, and I’m not
> sure how to proceed. Help accepted.
>
> Note that this is not the originally planned introspection based port, but
> a manual port of lablgtk2, dropping widgets that are no longer
> available. It is of course possible to add new widgets if people
> are willing to contribute.
>
> The main goal is to allow application using lablgtksourceview,
> such as CoqIDE, to compile on top of Gtk-3. Since Gtk-2 itself
> stays available, lablgtk2 will continue to be supported for other
> applications.

I am not sure I see the advantages of the *-conf solution vs a more
granular approach as done here
https://github.com/garrigue/lablgtk/pull/14, where each package has a
fixed set of system dependencies.

AFAICT `depext` fields can be added to the custom packages just fine,
and they don't have the *-conf pitfall of having to recompile a lot of
dependencies when a *-conf package is installed.

I find more natural to do `opam install lablgtk2-sourceview2` than
`opam install conf-gtksourceview lablgtk2`

E.

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list https://inbox.ocaml.org/caml-list
Forum: https://discuss.ocaml.org/
Bug reports: http://caml.inria.fr/bin/caml-bugs