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
signature.asc
Description: Digital signature