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