Gentoo Archives: gentoo-portage-dev

From: "Patrick Börjesson" <psychotical@×××××××.com>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] Conflicting RDEPENDS
Date: Fri, 29 May 2009 08:08:19
Message-Id: 20090529080324.GA11660@nexon.nexus
In Reply to: [gentoo-portage-dev] Conflicting RDEPENDS by "René 'Necoro' Neumann"
1 On Fri, May 29, 2009 at 01:36:20AM +0200, René 'Necoro' Neumann wrote:
2 > Package "spam" rdepends on "=eggs-2".
3 > Package "bacon" rdepends on "=eggs-1".
4 >
5 > So in theory there should be no way of installing them together (given
6 > that eggs is not slotted). This works if I try to install them in one go.
7 >
8 > !!! Multiple package instances within a single package slot have been pulled
9 > !!! into the dependency graph, resulting in a slot conflict:
10 >
11 > app-test/eggs:0
12 >
13 > ('ebuild', '/', 'app-test/eggs-2', 'merge') pulled in by
14 > =app-test/eggs-2 required by ('ebuild', '/', 'app-test/spam-1', 'merge')
15 >
16 > ('ebuild', '/', 'app-test/eggs-1', 'merge') pulled in by
17 > =app-test/eggs-1 required by ('ebuild', '/', 'app-test/bacon-1',
18 > 'merge')
19 >
20 >
21 > It looks different, if spam is installed and I try to install bacon
22 > additionally:
23 >
24 > # emerge -1av bacon
25 >
26 > These are the packages that would be merged, in order:
27 >
28 > Calculating dependencies ... done!
29 > [ebuild UD] app-test/eggs-1 [2] 0 kB [1]
30 > [ebuild N ] app-test/bacon-1 0 kB [1]
31 >
32 >
33 > This second behavior looks wrong to me, as it downgrades the RDEPEND of
34 > spam and thus spam becomes unusable.
35
36 Try: emerge -1av --complete-graph bacon
37
38 Unless --complete-graph is specified emerge won't pull in the entire
39 dependency graph, thus won't notice the dependency-spec of
40 app-test/spam.
41 Using -D combined with the world set when updating your system yields
42 the same result as that also pulls in the entire dependency graph.
43
44 Unless the entire dependency graph is pulled in emerge only tries to
45 satisfy the dependencies of the packages given on the commandline, and
46 since there's no "connection" between app-test/spam and app-test/bacon,
47 and emerge doesn't do reverse deps when adding something to the
48 dep-graph, it doesn't notice that app-test/bacon and app-test/spam has
49 conflicting dependencies
50
51 Using --complete-graph is noticably slower since it slows down
52 dependency calculations, but it should (IMHO) really be the default
53 since these conflicts shows _before_ anything breaks.

Replies

Subject Author
Re: [gentoo-portage-dev] Conflicting RDEPENDS "René 'Necoro' Neumann" <lists@××××××.eu>