retitle 557143 libfuse should set shlibs correctly
clone 557143 -1
severity -1 wishlist
retitle -1 libfuse2: consider providing a symbols file
thanks

On Fri, 20 Nov 2009 at 12:08:29 +0100, Sebastien Delafond wrote:
> fuse using 'dh_makeshlibs -s -V "libfuse2 (>= 2.6)"' in tis debian/rules
> files, and not having a symbols file, is causing problems for packages
> depending on it

Right. That doesn't mean the RC bug needs a symbols file in order to be fixed,
though; I'm going to prepare an NMU that just increases the argument to
dh_makeshlibs, which is sufficient (although not ideal).

To the fuse maintainers: there are three ways to do correct library
versioning. The more work you put in, the more liberal the dependencies you
get are - the ideal situation is that the dependencies are as liberal as
possible while remaining correct. At the moment they're *too* liberal, which
breaks things.

In increasing order of effort:

1) dh_makeshlibs -V

This assumes that every upstream release adds new symbols, so each package
built against libfuse2 will get a dependency on libfuse2 (>= N) where N
is the upstream version it was built against. That's too conservative,
if your upstream sometimes makes bugfix-only releases with no new ABI.

2) dh_makeshlibs -V"libfuse2 (>= M)"

(Currently used)

This explicitly tells debhelper when symbols were last added. If you use this
approach, you must check, on each new release, whether ABI has been added.
If so, you need to increase the version in debian/rules accordingly.

3) Add a symbols file

This tracks the version in which each individual symbol was added. You
still need to do either (1) or (2) as a fallback for older dpkg versions.
http://wiki.debian.org/UsingSymbolsFiles, dpkg-shlibdeps(1) and
dpkg-gensymbols(1) have some more details.

telepathy-glib, one of my packages, might be useful as a reference for how
symbols files look in practice. It has all the major cases - versioned
symbols, versions that added new ABI, and versions that didn't add ABI.

Regards,
    Simon

Attachment: signature.asc
Description: Digital signature

Reply via email to