On Sun, Nov 03, 2013 at 02:58:54AM +0100, Kurt Roeckx wrote: > On Sat, Nov 02, 2013 at 10:06:20PM +0100, Mark Wielaard wrote: > > Although the public ABI of libelf is stable and should never break, > > the elfutils tools (at least readelf) also use some internals from > > libelf, which isn't public ABI/API. So the elfutils tools (if > > packaged separately from libelf) should depend on the exact same > > version of the elfutils libelf library being installed. > > > > The same holds true for libdw/libasm if packaged separately. > > They always have to be upgraded in lockstep. Other packages that only > > use the public interfaces of libelf (or libdw/libasm) can use whatever > > version that provides the public symbols they are providing. > > I'm not sure which symbols from libelf are exported but not public > then.
The elfutils tools and libraries depent on some internal datastructures which aren't exported. They use internal headers like libelf/libelfP.h which normally aren't (and shouldn't be) accessible outside elfutils sources. > Anyway, does this make sense for other packages, or should all > package depend on the latest version? Is it enough that elfutils > itself depends on the latest version? It is enought for the elfutils sub-packages to depend on the latest version. All other packages should (and can) only use the public exported symbols, so there the symbol/version dependencies should work just fine. In fedora the package is split up in elfutils (the tools), elfutils-libelf (the libelf library), elfutils-libs (libdw, libasm and the backends). elfutils-libelf is "standalone". elfutils-libs Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} elfutils Requires: elfutils-libelf%{depsuffix} = %{version}-%{release} Requires: elfutils-libs%{depsuffix} = %{version}-%{release} That makes sure that elfutils-libs will always require the same version of elfutils-libelf, and the the elfutils package itself always depends on the exact same version of elfutils-libelf and elfutils-libs (I guess the explicit Requires on elfutils-libelf isn't really required since it also comes through elfutils-libs). If you package libasm separately it does depend on backend internals so should depend on the exact version of libdw1 (in which the libebl backends are). Cheers, Mark -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org