[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: debian ocaml packaging policy :: findlib->site-lib



On Fri, Dec 26, 2008 at 10:09:42PM +0100, Florent Monnier wrote:
> > Can you please explain why you think it should be written in the
> > debian ocaml policy?
> 
> Because how findlib is configure affects how are installed a lot of
> packages.

No, not really. What affects where OCaml libraries are installed in a
Debian system is the OCaml standard library directory, which is
specified in Section 1.3.2 of the Debian OCaml policy; quoting:

  The root of all installed OCaml libraries is the OCaml standard
  library directory, which is /usr/lib/ocaml/VERSION/, at the time of
  writing /usr/lib/ocaml/3.10.2. This location can be obtained from
  the OCaml compiler by invoking it as ocamlc -where.

Then, it just happens that packages installed under that dir are
(mostly, possibly all) accessible via findlib, but that is not related
to where packages are installed. In fact, using findlib you are
completely agnostic about where files are installed.

> > findlib is an abstraction layer which precisely enable users to not
> > knowing details like this one.
> 
> Please don't forget that everyone is not a findlib user !
> There are people that prefer to use the direct interface.
> For these people, knowing the path of the directory where a lib is installed 
> is important. In the Makefile one will write -I +foo or -I +site-lib/foo

Sure, and I'm not assuming that everybody is using findlib at all. In
fact, by default most library when one invokes "make install" (or the
equivalent) try to install themselves under a sub-directory of `ocamlc
-where`, and we are not changing that.

We are just implicitly recasting the "/usr/local/lib/ocaml/..." path
which you would get from a legacy OCaml to the "/usr/lib/ocaml/..." to
comply with FHS.

This has nothing to do with findlib either.

> > Moreover, the findlib configuration in Debian is precisely tuned
> > to work properly both with libraries shipped as Debian packages
> > and library "manually" installed by local administrators (the
> > latter end up under /usr/local/...).
> 
> And this point depends on the current configuration of findlib.
> Moreover, as you do it, why don't tell in the policy that you do it ?

Policy is about the libraries packaged as official Debian
packages. That libraries are only interested in the "/usr/lib/..."
path which _is_ reported in the policy as I discussed above.

The "/usr/local/lib/..." path is of no interest for official packages
and, IMO, is just a configuration detail of findlib.  Also, please
remember that ocamlfind.conf is a configuration file, which admins are
free to change as they see fit.

But I've no strong objection in mentioning that path in the policy, if
coupled with the disclaimer that the findlib package configuration is
authoritative on that. Is that, in essence, what you are requesting?

> For example, to search the configuration of debian findlib I have searched for 
> the build script of the ocaml packages, and felt there :

You should have just looked at /etc/ocamlfind.conf, because that
setting is a *runtime* setting of ocamlfind, rather than a build-time
one. Once more, if you want we can mention this in the policy, but
once more this is specific of a single package.

> > Still, the findlib path for looking for libraries is more than
> > that, it also contains a dir located /usr/local, as discussed
> > above.
> 
> Where is it discussed, I don't see, could you please point me where
> to find these details ?

What I meant is "discussed above in that mail", sorry if that wasn't
clear. Regarding the pointers it is the /etc/ocamlfind.conf file,
which is documented in the findlib documentation.

Cheers.

-- 
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Dietro un grande uomo c'è ..|  .  |. Et ne m'en veux pas si je te tutoie
sempre uno zaino ...........| ..: |.... Je dis tu à tous ceux que j'aime

Attachment: signature.asc
Description: Digital signature


Reply to: