Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Project Proposals
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-05-15 (20:43)
From: Sven Luther <luther@l...>
Subject: Re: [Caml-list] OCaml packaging problems
On Tue, May 14, 2002 at 08:39:54PM +0900, Jacques Garrigue wrote:
> From: Xavier Leroy <>
> Date: Tue, 14 May 2002 10:54:52 +0200
> > Concerning this ld.conf issue, I disagree both with Sven Luther's solution
> > (a tool that adds/removes lines from this file) and with Vitaly
> > Lugovsky's suggestion (multiple configuration files in a directory).
> I was always wondering about the need for removing any directory from
> ld.conf: it the directory is not there, there will be no problem
> anyway...

So, you prefer to clutter the /usr/lib/ocaml/ld.conf file rather than
have a convenient tool for removing a line there when you remove the
package they belong to ? Remember, clutter is an open way to insecure
behavior ...

> > The ld.conf mechanism was modeled after the /etc/ file used
> > by the Unix dynamic loader.  It is intended to list a small number of
> > standard directories that contain shared libraries, typically one
> > directory for the "system" libraries (i.e. those provided by the OCaml
> > core distribution), one for local extensions (e.g. /usr/local/lib),
> > and perhaps one or two for especially large packages with many libraries
> > (e.g. /usr/X11R6/lib).  
> > 
> > When you install a package that provides a C shared library, you don't
> > install it in a package-dependent directory and add a line to
> > /etc/ with this directory; you install in /usr/lib or
> > /usr/local/lib, perhaps via a symbolic link.  I urge everyone to use
> > the same scheme for OCaml shared libraries.
> It's not because Unix does something wrong that you have to follow it.
> In the past I was installing libraries somewhere else (using --prefix
> in most packages) and using -rpath. The trouble is that -rpath is
> broken on some Unices, so I've reverted to making symbolic links to
> /usr/local/lib for the soname. Otherwise it's a pain to manage.

Mmm, there is a long discution on some of the debian lists (well a
flamewar would be a more correct name) with one side claiming that rpath
are evil, and can lead to problems if the files are moved around later
one (example cited was the moving of the /usr/X11R6 directory, probably
because you want to install a new X server while keeping the old one).

> Now I don't think that the current scheme in caml is perfect, but to
> me it works ok. When I delete a library I just delete its directory,
> and I'm sure it's clean.
> > (And, yes, I haven't followed this recommendation in some of the
> > standard OCaml libraries (labltk) or some of my own extensions,
> > but I've realized my error and intend to fix this in release 3.05.)
> I'm the culprit. And well, I have no definite opinion about libraries in
> the standard distribution, just that they set an example.
> Note that moving dlls around _is_ dangerous, because you may
> end-up with dlls with the same name in different place when
> overwriting an existing installation.

unless you have a package manager handling things :)))

> By the way, if you're so fond of the C way, using versioning on dlls
> would be very useful about this kind of problems (with the version in
> the .cma, rather than using symbolic links!)



Sven Luther
To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: