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. |