Re: Old Release goal: Getting rid of unneeded *.la / emptying dependency_libs
- To: firstname.lastname@example.org
- Subject: Re: Old Release goal: Getting rid of unneeded *.la / emptying dependency_libs
- From: Russ Allbery <email@example.com>
- Date: Sun, 03 Apr 2011 15:04:01 -0700
- Message-id: <[🔎] firstname.lastname@example.org>
- In-reply-to: <8751_1301828025_4D9851B7_8751_3896_1_20110403115302.email@example.com> (Neil Williams's message of "Sun, 3 Apr 2011 11:53:02 +0100")
- References: <8751_1301828025_4D9851B7_8751_3896_1_20110403115302.firstname.lastname@example.org>
Neil Williams <email@example.com> writes:
> If you are listed in the attached dd-list, it means that the following
> tasks should be done REAL SOON NOW in order to smooth the path for
> Multi-Arch and comply with Policy 10.2:
> 0: Check the listed package for .la files in the current version in sid.
> 1: Modify your package to DROP the .la file completely, if it remains.
You cannot just drop *.la files completely in every case. Software that
uses libltdl to load dynamic objects often loads those objects by the *.la
file name (and hence is documented that way in upstream documentation,
FAQs, and so forth), so we create gratuitous incompatibilities with
upstream if we drop those *.la files. It's also not necessary since there
isn't a multi-arch issue.
Policy 10.2 doesn't say to remove all *.la files. It says:
Packages that use libtool to create and install their shared libraries
install a file containing additional metadata (ending in .la)
alongside the library. For public libraries intended for use by other
packages, these files normally should not be included in the Debian
package, since the information they include is not necessary to link
with the shared library on Debian and can add unnecessary additional
dependencies to other programs or libraries. If the .la file is
required for that library (if, for instance, it's loaded via libltdl
in a way that requires that meta-information), the dependency_libs
setting in the .la file should normally be set to the empty string. If
the shared library development package has historically included the
.la, it must be retained in the development package (with
dependency_libs emptied) until all libraries that depend on it have
removed or emptied dependency_libs in their .la files to prevent
linking with those other libraries using libtool from failing.
I still believe all those caveats are important.
For example, shibboleth-sp2 was in your list because it has loadable
modules in the libapache2-mod-shib2 package:
This is already Policy 10.2-compliant and will not cause problems with
multi-arch since those modules and their *.la files are arch-dependent and
will get separate installs on 32-bit and 64-bit paths if needed.
Lintian already checks that *.la files don't contain the problematic
Russ Allbery (firstname.lastname@example.org) <http://www.eyrie.org/~eagle/>