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