1 |
On 22/02/2014 23:15, Alan Mackenzie wrote: |
2 |
> Hi, Gentoo. |
3 |
> |
4 |
> I've just tried an emerge -puND world, after a shockingly long interval. |
5 |
> I got the error message: |
6 |
> |
7 |
> !!! Multiple package instances within a single package slot have been pulled |
8 |
> !!! into the dependency graph, resulting in a slot conflict: |
9 |
> |
10 |
> , etc. |
11 |
> |
12 |
> To simplify the problem, I tried to emerge an individual package |
13 |
> identified in that message, and tried emerge -p libpng. I got the same |
14 |
> message, with this: |
15 |
> |
16 |
> ############################################################################### |
17 |
> !!! Multiple package instances within a single package slot have been pulled |
18 |
> !!! into the dependency graph, resulting in a slot conflict: |
19 |
> |
20 |
> media-libs/libpng:0 |
21 |
> |
22 |
> (media-libs/libpng-1.5.17-r1::gentoo, installed) pulled in by |
23 |
> media-libs/libpng:0/0= required by (x11-libs/cairo-1.12.14-r4::gentoo, installed) |
24 |
> >=media-libs/libpng-1.4:0/0= required by (app-editors/emacs-24.3-r2::gentoo, installed) |
25 |
> media-libs/libpng:0/0= required by (media-libs/libwebp-0.3.1::gentoo, installed) |
26 |
> media-libs/libpng:0/0= required by (net-print/cups-filters-1.0.36-r1::gentoo, installed) |
27 |
> media-libs/libpng:0/0= required by (kde-base/kdelibs-4.11.2-r1::gentoo, installed) |
28 |
> media-libs/libpng:0/0= required by (dev-qt/qtgui-4.8.5-r1::gentoo, installed) |
29 |
> media-libs/libpng:0/0= required by (app-text/poppler-0.24.3::gentoo, installed) |
30 |
> (and 3 more with the same problems) |
31 |
> |
32 |
> (media-libs/libpng-1.6.8::gentoo, ebuild scheduled for merge) pulled in by |
33 |
> (no parents that aren't satisfied by other packages in this slot) |
34 |
> ############################################################################### |
35 |
> Clearly, I'm trying to update libpng-1.5.17 to libpng-1.6.8. What does |
36 |
> this portion of the message mean: |
37 |
> |
38 |
> media-libs/libpng:0/0= |
39 |
> ^^^^^ |
40 |
> |
41 |
> ? Is it somehow telling me that cairo and friends require the currently |
42 |
> installed version, whatever that is? Where is this format documented? I |
43 |
> couldn't find anything about it in the Gentoo handbook, and not in the |
44 |
> emerge man page either. |
45 |
> |
46 |
> What do I have to do to get this thing emerged? |
47 |
> |
48 |
> Thanks! |
49 |
> |
50 |
|
51 |
You've hit the dreaded sub-slot (a new portage feature). It causes no |
52 |
end of trouble as so few people know how it really works, but it's |
53 |
intended to replace @preserved-rebuild by DoingItRite and finally make |
54 |
revdep-rebuild obsolete. |
55 |
|
56 |
It's documented in man 5 ebuild under these headings: |
57 |
|
58 |
Atom Slots |
59 |
Sub Slots |
60 |
Atom Slot Operators |
61 |
SLOT |
62 |
|
63 |
libpng:0/0 is libpng SLOT 0 which has been around since EAPI1 and |
64 |
SUBSLOT 0 which is new. |
65 |
|
66 |
Take cairo which is one of your deps. In the ebuild: |
67 |
|
68 |
RDEPEND=" |
69 |
media-libs/libpng:0= |
70 |
" |
71 |
|
72 |
eix libpng shows: |
73 |
|
74 |
(0) 1.5.15 1.5.17-r1 (~)1.6.6(0/16) (~)1.6.7(0/16) 1.6.8(0/16) |
75 |
(~)1.6.9(0/16) |
76 |
|
77 |
That shows libpng-1.5.* have slot/subslot 0/0 and |
78 |
libpng-1.6.* have slot/subslot 0/16 |
79 |
where presumably "16" is shorthand for "1.6" in the version |
80 |
|
81 |
|
82 |
|
83 |
Now read those headings in the man page, you will find this gem: |
84 |
|
85 |
"= Indicates that any slot value is acceptable. In addition, for |
86 |
runtime dependencies, indicates that the package will break unless a |
87 |
matching package with slot and sub-slot equal to the slot and |
88 |
sub-slot of the best installed version at the time the package was |
89 |
installed is available. |
90 |
|
91 |
Examples: |
92 |
dev-libs/icu:= |
93 |
dev-lang/perl:= |
94 |
dev-libs/glib:= |
95 |
" |
96 |
|
97 |
in other words, even though libpng-1.5.17-r1 and libpng-1.6.8 are in the |
98 |
same SLOT, nevertheless cairo will break if you upgrade libpng that way. |
99 |
|
100 |
Or expressed another way in language from before sub-slots, cairo will |
101 |
stop working properly after the emerge world until you run |
102 |
revdep-rebuild and fix and the borkage |
103 |
|
104 |
|
105 |
The world update wants to upgrade libpng as a new stable version is |
106 |
available but portage won't do it as it will break packages that use libpng. |
107 |
|
108 |
|
109 |
All my hosts here are up to date so I can't reproduce your problem: |
110 |
|
111 |
- is portage up to date runnign latest version in your tree? Update that |
112 |
first (always a good idea anyway) |
113 |
- are you sure that's an emerge failure and not just a convoluted info |
114 |
message? Perhaps post the entire emerge output. |
115 |
|
116 |
|
117 |
-- |
118 |
Alan McKinnon |
119 |
alan.mckinnon@×××××.com |