2009/11/4 Alex Schuster <wo...@wonkology.org>:
> Hi there!
>
> Again, this is just something I am curious about, not a real problem.
> emerge -p --depclean gives me this output:
>
> [...]
> Calculating dependencies... done!
>>>> Checking for lib consumers...
>>>> Assigning files to packages...
>  * In order to avoid breakage of link level dependencies, one or more
>  * packages will not be removed. This can be solved by rebuilding the
>  * packages that pulled them in.
>  *
>  *   dev-libs/elfutils-0.131-r2 pulled in by:
>  *     dev-util/ddd-3.3.12-r1 needs libelf.so.1

Newer versions of portage print this message if a package is about to
be removed because there is no ebuild dependency from all other
installed packages, but it is still needed because other packages link
to it automagically. This seems to be the case here, ddd automagically
links to elfutils depending on whether it is available or not, instead
of being controlled by the ebuild via use flag. So ddd links against
elfutils and portage does not know about it. In this case the
suggestion of rebuilding the packages does not work.

With older portage versions elfutils is removed and the dependency is
ignored. Revdep-rebuild will complain about ddd linking against
elfutils which is not available anymore and then rebuild ddd which
will result in ddd not linking against elfutils anymore.

> [...]
> And some more of that involving media-libs/libcddb-1.3.2, media-
> sound/esound-0.2.41, sys-libs/db-4.5.20_p2-r1 and sys-libs/db-4.6.21_p4.
>
> Okay, ddd needs libelf.so.1, provided by elfutils. Still the same when I
> rebuild ddd. So, why does this output appear at all? ddd needs
> libelf.so.1, this is in elfutils, so of course elfutils is needed just
> like any other package.
>
> Oh, wait.... I think I got it. emerge -pe ddd dos NOT list elfutils. So is
> this a bug in the ddd ebuild, not having elfutils as a dependency? And the
> same would be true for the other packages? Should I file some bugs?
>
> Hmmmm. Now I got it. ddd does indeed not need elfutils. But it uses it
> when it is available. After removing elfutils, ddd still builds. Starting
> the ddd configure script in by hand with the --help option does not show
> options like --without-elf, so it's not the ebuild's fault that ddd makes
> use of the libelf library when it is available.
>

[snip]

> Should some bugs be filed? And if so, should they go:
> - To the ebuild maintainers? But they probably cannot do much about it,
> apart from patching the package's autoconf stuff.
> - To upstream? Well, would they consider this this a bug at all, or a mere
> problem with Gentoo's special build system, that wants to know all the
> dependencies?

If ddd really links automagically against elfutils, you should file a
Gentoo bug about ddd which needs it's autotools fixed. To save the
Gentoo developers some time you can also file an upstream bug and add
a reference to it in the Gentoo bug report. If upstream cares about
automagic dependencies is another story, in Gentoo it is considered a
bug.

-- 
Daniel Pielmeier

Reply via email to