Re: libtool archive madness

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

 



On Thu, 2006-03-16 at 06:24 -0600, Rex Dieter wrote:
> Michael Schwendt wrote:
> > On Mon, 13 Mar 2006 15:03:24 -0600, Rex Dieter wrote:
> > 
> >>> I have found the solution after a strace session.
> >>>
> >>> Don't remove the *.la files which will be installed by the make
> >>> install step into the '%install' stanza.. Both .la files, the
> >>> Kpart and the kio_slave will be needed.
> >>>
> >>> Conclussion: IN opposite to the packaging guidelines it may be
> >>> make sense to put .la files into rpms for KDE programs.
> >> If the packaging guidelines don't already say it, the omission of .la 
> >> files should be limited to shared libraries in %{_libdir}/
> > 
> > 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, 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.

The point about *.la's, you both are seem to be deliberately want to ignore:
* Many aspects about shared libraries are non-portable
* Many aspects about shared libraries are non-standardized.
* Many aspects about mixing shared/static libraries are non-portable.

What libtool tries with it's *.la's is to implement is an additional
layer (API) on top of libraries, which makes many of those aspects
portable.

As Linux is a fairly modern OS it isn't affected by most of the issues,
which affect building shared libraries on other OSes. That's why *.la's,
in the vast majority of cases are not necessary to keep Linux systems
operational and appear as "unnecessarily restrictive and disturbing".

I.e. the main purpose of *.la's is the portability related API they
implement, and the dependencies they make visible. Most of these
dependencies are dynamic under Linux ("Unnecessary"), but are static on
many other OSes.

Ralf


-- 
fedora-extras-list mailing list
fedora-extras-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-extras-list

[Index of Archives]     [Fedora General Discussion]     [Fedora Art]     [Fedora Docs]     [Fedora Package Review]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite Backpacking]     [KDE Users]

  Powered by Linux