Gentoo Archives: gentoo-user

From: Daniel Pielmeier <billie@g.o>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] emerge --depclean does not remove due to link level dependencies
Date: Wed, 04 Nov 2009 12:26:55
Message-Id: 6142e6140911040426y183c122hcc3ae941d3bec321@mail.gmail.com
In Reply to: [gentoo-user] emerge --depclean does not remove due to link level dependencies by Alex Schuster
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

Replies

Subject Author
Re: [gentoo-user] emerge --depclean does not remove due to link level dependencies Alex Schuster <wonko@×××××××××.org>