[Ffmpeg-devel] Shared libraries install script broken in cvs

Diego Biurrun diego
Thu Dec 15 19:01:29 CET 2005


On Thu, Dec 15, 2005 at 11:06:05AM +0000, M?ns Rullg?rd wrote:
> 
> The current makefile attempts to run ldconfig, but fails if 'make install'
> is not run as root, or if $libdir is not in /etc/ld.so.conf.

Yes.  Is that really a problem?  I mean that in the sense of: Don't all
(most) install routines work that way?  What's the alternative?

> If we are to
> rely on ldconfig creating the links, we should be running it in a way that
> doesn't fail, or at the very least document that the user must do whatever
> it takes to have the links created.  Furthermore, just running ldconfig is
> not enough to create all links needed, as ldconfig only creates a link for
> the library SONAME (e.g. libavcodec.so.0), not the unversioned name of the
> library (e.g. libavcodec.so).  The latter is required for linking with the
> library, since the linker will only search for lib*.so and lib*.a, and not
> names with a version number appended.  Creating libfoo.so links is not the
> job of ldconfig.  Its job is to create the links needed to resolve runtime
> dependencies, nothing else.

We already do that, here are some of the lines printed by 'make -n
install':

install -d /usr/local/lib
install -s -m 755 libavcodec.so /usr/local/lib/libavcodec-CVS.so
ln -sf libavcodec-CVS.so /usr/local/lib/libavcodec.so
ldconfig || true

So this should be enough.  Unless we could drop ldconfig entirely in
favor of creating the links ourselves.

> Phew, I don't think I'd be able to go on much longer keeping the lines all
> the same length.

:)

Diego





More information about the ffmpeg-devel mailing list