On Friday 18 of October 2013 17:23:21 Michele Calgaro wrote:
HI there,
is anybody aware of any good reason why tdelibs14-trinity and some other
packages have a very strict dependency on binutils in Debian Jessie and
Wheezy (and I suspect also on previous versions and in Ubuntu, even though
I didn't check)? For example I get dependencies such as:
binutils (>= 2.23.52.20130828), binutils (<< 2.23.52.20130829).
The problem with such kind of dependency is that when binutils is updated,
I need to do a full rebuild of TDE before I can update the binutils package
on my machine. After the full rebuild is completed, everything can be
updated, but I don't see the reason for having the '<<' part of the
dependency since it doesn't seem to affect anything: TDE builds with both
the old and the new binutils package.
So I am wondering if such strict dependency is intentional or if it is
something that we are dragging along from the past (perhaps because of a
broken or incompatible binutils version in the past).
If there isn't any particular reason, I will open a bug report in a few
days about this point.
Thanks
Michele
Hi Michele,
explanation of very tight depending on binutils is simple:
For easier detection of particular bug were incorporated into kdesktop_lock
function to generate backtrace (commit 786e248c - tdebase). Later the same
function incorporated into tdeio (commit a166b1da - tdelibs). And lastly,
both these functions were replaced with improved function kdBacktrace in
kdebug (commit a5ba7ad7 - tdelibs).
This implementation uses for generate backtraces library bfd from binutils.
And this library is causing this problem with a very tight dependency. This
library is always one specific version and does not allow even a small
difference. For example on Debian Squeeze: libbfd-2.20.1-system.20100303.so
For this reason, wherever it is used kdBacktrace => is dependent on libbfd =>
is so strict dependency on a particular version of binutils.
The solution would be if instead of linking the library dynamically loaded.
But it can be a problem when that will happen in a crash handler => in an
emergency situation.
--
Slavek