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