[Pkg-kde-extras] Bug#618747: Please clean dependency_libs from libexiv2.la at build-time

Steve Langasek steve.langasek at canonical.com
Fri Mar 18 07:53:02 UTC 2011


Package: exiv2
Version: 0.21.1-1
Severity: important
Tags: patch
User: vorlon at debian.org
Usertags: multiarch

Hi folks,

The libexiv2-dev package includes a .la file that has a non-null
dependency_libs field.  This means that when any other libtool-using
software builds against libexiv2 in Debian, it has to traverse the .la files
for all the other libraries listed here; and in some cases the
reverse-dependencies pick up unnecessary library dependencies as a result.

Debian Policy 10.2 recommends blanking out this dependency_libs field from
.la files that you install:

     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.[6] 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.

This becomes a practical issue soon because of multiarch; once multiarch
lands in the archive, libexpat, which has an .la file referenced by
libexiv2.la, will move directories, making packages fail to build if they
try to find /usr/lib/libexpat.la at build time.  So I would suggest applying
the attached patch to exiv2, before multiarch forces the issue.

This patch, by Fabrice Coutadeur <fabricesp at ubuntu.com>, has already been
applied in Ubuntu, with the following changelog entry:

  * debian/rules: delete the content of dependency_libs in la file to avoid
    having to rebuild this package if the path of the libs changes. This fixes
    also FTBFS in packages that b-d on libexiv2-dev because of incorrect
    reference of libexpat.la. (LP: #737340)

Thanks,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tmpGo2fUj
Type: text/x-diff
Size: 691 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-kde-extras/attachments/20110318/501a9af3/attachment.diff>


More information about the pkg-kde-extras mailing list