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

Reply via email to