1 |
2009/11/4 Alex Schuster <wonko@×××××××××.org>: |
2 |
> Hi there! |
3 |
> |
4 |
> Again, this is just something I am curious about, not a real problem. |
5 |
> emerge -p --depclean gives me this output: |
6 |
> |
7 |
> [...] |
8 |
> Calculating dependencies... done! |
9 |
>>>> Checking for lib consumers... |
10 |
>>>> Assigning files to packages... |
11 |
> * In order to avoid breakage of link level dependencies, one or more |
12 |
> * packages will not be removed. This can be solved by rebuilding the |
13 |
> * packages that pulled them in. |
14 |
> * |
15 |
> * dev-libs/elfutils-0.131-r2 pulled in by: |
16 |
> * dev-util/ddd-3.3.12-r1 needs libelf.so.1 |
17 |
|
18 |
Newer versions of portage print this message if a package is about to |
19 |
be removed because there is no ebuild dependency from all other |
20 |
installed packages, but it is still needed because other packages link |
21 |
to it automagically. This seems to be the case here, ddd automagically |
22 |
links to elfutils depending on whether it is available or not, instead |
23 |
of being controlled by the ebuild via use flag. So ddd links against |
24 |
elfutils and portage does not know about it. In this case the |
25 |
suggestion of rebuilding the packages does not work. |
26 |
|
27 |
With older portage versions elfutils is removed and the dependency is |
28 |
ignored. Revdep-rebuild will complain about ddd linking against |
29 |
elfutils which is not available anymore and then rebuild ddd which |
30 |
will result in ddd not linking against elfutils anymore. |
31 |
|
32 |
> [...] |
33 |
> And some more of that involving media-libs/libcddb-1.3.2, media- |
34 |
> sound/esound-0.2.41, sys-libs/db-4.5.20_p2-r1 and sys-libs/db-4.6.21_p4. |
35 |
> |
36 |
> Okay, ddd needs libelf.so.1, provided by elfutils. Still the same when I |
37 |
> rebuild ddd. So, why does this output appear at all? ddd needs |
38 |
> libelf.so.1, this is in elfutils, so of course elfutils is needed just |
39 |
> like any other package. |
40 |
> |
41 |
> Oh, wait.... I think I got it. emerge -pe ddd dos NOT list elfutils. So is |
42 |
> this a bug in the ddd ebuild, not having elfutils as a dependency? And the |
43 |
> same would be true for the other packages? Should I file some bugs? |
44 |
> |
45 |
> Hmmmm. Now I got it. ddd does indeed not need elfutils. But it uses it |
46 |
> when it is available. After removing elfutils, ddd still builds. Starting |
47 |
> the ddd configure script in by hand with the --help option does not show |
48 |
> options like --without-elf, so it's not the ebuild's fault that ddd makes |
49 |
> use of the libelf library when it is available. |
50 |
> |
51 |
|
52 |
[snip] |
53 |
|
54 |
> Should some bugs be filed? And if so, should they go: |
55 |
> - To the ebuild maintainers? But they probably cannot do much about it, |
56 |
> apart from patching the package's autoconf stuff. |
57 |
> - To upstream? Well, would they consider this this a bug at all, or a mere |
58 |
> problem with Gentoo's special build system, that wants to know all the |
59 |
> dependencies? |
60 |
|
61 |
If ddd really links automagically against elfutils, you should file a |
62 |
Gentoo bug about ddd which needs it's autotools fixed. To save the |
63 |
Gentoo developers some time you can also file an upstream bug and add |
64 |
a reference to it in the Gentoo bug report. If upstream cares about |
65 |
automagic dependencies is another story, in Gentoo it is considered a |
66 |
bug. |
67 |
|
68 |
-- |
69 |
Daniel Pielmeier |