libtool archive madness
Rex Dieter
rdieter at math.unl.edu
Thu Mar 16 14:39:27 UTC 2006
Ralf Corsepius wrote:
> 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* certainly am not ignoring this, and have almost always claimed the
same, that "*.la's, in the vast majority of cases are not necessary".
However, the point I'm trying to make is that the only case that I know
of where .la files cause concrete harm (esp in packaging) are those
associated with shared libs. That's why I'm suggesting that the
packaging guidelines only include the requirement/hard-recommendation
regarding %_libdir}/lib*.la files. Other .la files *probably* aren't
needed (in most cases, except for many kde loadable modules/plugins(*)),
but neither do they cause harm, so these should be dealt with either on
a case-by-case basis and/or at the discretion of the packager
-- Rex
(*) Which I'd argue means there's probably a bug in there somewhere, but
AFAIK, is difficult to diagnose/fix.
More information about the fedora-extras-list
mailing list