Gentoo Archives: gentoo-user

From: Tanstaafl <tanstaafl@×××××××××××.org>
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 17:26:02
Message-Id: 530A2EFE.1010606@libertytrek.org
In Reply to: Re: [gentoo-user] "Multiple package instances ....". Help me understand this emerge error, please. by Mick
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 >

Replies