[opam-devel] OPAM + Docker

Nicolas Braud-Santoni nicolas at braud-santoni.eu
Mon Jan 13 13:07:23 GMT 2014

First, sorry for the delay; it seems I accidentally saved this mail to
“Drafts” instead of sending it.

On 19/11/2013 11:20, Sylvain Le Gall wrote:
> Hey, just think about an even more "reliable" way to do all that: make
> it fails ! ;-)
> [...]
> On the first try it will not be very efficient, but you can send the
> result for ObscureOS Y to opam and register it for other ObscureOS Y
> users.

By “register it for other ObscureOS Y users”, do you mean that the user
for whom the package failed should submit a patch adding the correct
depext ?
If so, the “only” work required would be to present the relevant parts
of the build log to the user, right ?

> 2013/11/19 Sylvain Le Gall <sylvain+ocaml at le-gall.net>:
>> 2013/11/19 Nicolas Braud-Santoni <nicolas at braud-santoni.eu>:
>>> This seems to be the most sane and generic option if we wish to interact
>>> with the system's package manager [0].
>> The problem is that each time you want to extend to a new OS
>> distribution, you may need to do a lot of work. Not to mention that
>> this work will probably need to be done when upgrading as well,
>> although it may be less expensive. On the long term you may need to
>> dedicate a fair amount of time dealing with updating the depext. But
>> that is my rough estimate, and I do prefer to see people try it than
>> not do anything about that (but we should be open and consider
>> dropping this if it turns to be a not that sustainable solution).

I disagree w.r.t. the work required.
Over the 100 packages currently (2014/01/13) in the default OPAM repository:
- 25 are conf-* packages;
- 1 is liquidsoap;
- the others are bindings (I might have misclassified some).

While it is true that I noticed, during this cursory examination, little
opportunity to further factor depexts using conf- packages, I suspect
that these packages will not grow very quickly in number, and will have
stable depexts[0], making this mainly a one-time effort.

[0] By this, I mean “stable associated package names”; one doesn't need
distro-specific knowledge to change the version number, as far as I can see.

>>> Moreover, it seems unwise to fill in information that ought to belong in
>>> the distribution's packages :
>> [...]
>> Most of the package manager allow you to do file lookup: e.g. "dpkg
>> -S" on Debian, example:
>> [...]
>> You don't even have to do crazy comlpex thing here (a simple grep in
>> the source will already provide you good insight). Although, you may
>> replace dpkg by apt-file, because dpkg only rely on files installed.

It seems we had different objectives regarding depexts:
- you wish to check, before installing a package, whether a dependency
is satisfied;
- I wish to be able to use this dependency information to install
missing dependencies [1].

This makes a difference because not all package management systems offer
an index to match files to not-yet-installed packages.

[1] I have been working on giving Paludis (the package manager used in
Exherbo (and useable in Gentoo)) the ability to read OPAM's repository
format. (Unfortunately, I've been slowed down by some data-loss)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.ocaml.org/pipermail/opam-devel/attachments/20140113/cec5684d/attachment.sig>

More information about the opam-devel mailing list