Gentoo Archives: gentoo-user

From: Alan McKinnon <alan.mckinnon@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] "Multiple package instances ....". Help me understand this emerge error, please.
Date: Sat, 22 Feb 2014 22:06:41
Message-Id: 53091F57.1020106@gmail.com
In Reply to: [gentoo-user] "Multiple package instances ....". Help me understand this emerge error, please. by Alan Mackenzie
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

Replies