Gentoo Archives: gentoo-user

From: Alan Mackenzie <acm@×××.de>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] "Multiple package instances ....". Help me understand this emerge error, please.
Date: Sun, 23 Feb 2014 12:18:51
Message-Id: 20140223121510.GD3191@acm.acm
In Reply to: Re: [gentoo-user] "Multiple package instances ....". Help me understand this emerge error, please. by Mick
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).