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:16:37
Message-Id: 20140223121300.GC3191@acm.acm
In Reply to: Re: [gentoo-user] "Multiple package instances ....". Help me understand this emerge error, please. by Alan McKinnon
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).

Replies