libtool archive madness

Michael Schwendt bugs.michael at gmx.net
Thu Mar 16 13:13:11 UTC 2006


On Thu, 16 Mar 2006 06:24:21 -0600, Rex Dieter wrote:

> > This is insufficient and creates broken inter-library dependency chains.
> > 
> > It seems that pieces within KDE still _require_ .la files to be present in
> > %{_libdir}/kde3 in order to find/load plugins. E.g. k3b needs .la files
> > for its plugins. However, these .la files contain dependencies to other
> > .la files in %_libdir. So if you don't package .la files in %_libdir, but
> > include other .la files which contain a dependency on the excluded files,
> > this breaks the dependency chain. 
> 
> Turns out that the missing dependancies of loadable modules, in 100% of
> cases that *I* have seen, is harmless.

_so far_ ;)

We've seen before how the broken libltdl in KDE caused ordinary applications
to ignore .so files and require .la files to be present for non-KDE libs, too.
The upstream bug report is still open, IIRC. Hence providing broken libtool
depchains is not good. They may be "enough" for some special implementations,
but can break any other implementation.

With the example of k3b, an strace looks as if it first looks for a
/usr/share/apps/k3b/plugins/k3b*.plugin file, then searches for
%_libdir/kde3/k3b*.la and gives up if it doesn't find it. If it finds it,
it dlopens the .so file with absolute path. Probably it evaluates some of
the definitions in the .la file (dlname + libdir) to get the full path
and doesn't use the rest.

> So, I'm of the opinion that
> unless a concrete example of broken-ness (ie, an app that doesn't work
> after removing *only %_libdir/lib*.la), then I'd say don't worry about it.

It needs run-time evaluation to test whether any loaded modules are not
broken by that. I believe FC KDE contains the .la->.so fix, so the only
hope is that no other implemenation evaluates more of what's stored within
.la files.




More information about the fedora-extras-list mailing list