Hi, Alan.

On Sun, Feb 23, 2014 at 12:06:15AM +0200, Alan McKinnon wrote:
> On 22/02/2014 23:15, Alan Mackenzie wrote:
> > Hi, Gentoo.

> > I've just tried an emerge -puND world, after a shockingly long interval.
> > I got the error message:

> >    !!! Multiple package instances within a single package slot have been 
> > pulled
> >    !!! into the dependency graph, resulting in a slot conflict:

> > , etc.

> > To simplify the problem, I tried to emerge an individual package
> > identified in that message, and tried emerge -p libpng.  I got the same
> > message, with this:

> > ###############################################################################
> > !!! Multiple package instances within a single package slot have been pulled
> > !!! into the dependency graph, resulting in a slot conflict:

> > media-libs/libpng:0

> >   (media-libs/libpng-1.5.17-r1::gentoo, installed) pulled in by
> >     media-libs/libpng:0/0= required by (x11-libs/cairo-1.12.14-r4::gentoo, 
> > installed)
> >     >=media-libs/libpng-1.4:0/0= required by 
> > (app-editors/emacs-24.3-r2::gentoo, installed)
> >     media-libs/libpng:0/0= required by (media-libs/libwebp-0.3.1::gentoo, 
> > installed)
> >     media-libs/libpng:0/0= required by 
> > (net-print/cups-filters-1.0.36-r1::gentoo, installed)
> >     media-libs/libpng:0/0= required by (kde-base/kdelibs-4.11.2-r1::gentoo, 
> > installed)
> >     media-libs/libpng:0/0= required by (dev-qt/qtgui-4.8.5-r1::gentoo, 
> > installed)
> >     media-libs/libpng:0/0= required by (app-text/poppler-0.24.3::gentoo, 
> > installed)
> >     (and 3 more with the same problems)

> >   (media-libs/libpng-1.6.8::gentoo, ebuild scheduled for merge) pulled in by
> >     (no parents that aren't satisfied by other packages in this slot)
> > ###############################################################################
> > Clearly, I'm trying to update libpng-1.5.17 to libpng-1.6.8.  What does
> > this portion of the message mean:

> >     media-libs/libpng:0/0=
> >                      ^^^^^

> > ?  Is it somehow telling me that cairo and friends require the currently
> > installed version, whatever that is?  Where is this format documented?  I
> > couldn't find anything about it in the Gentoo handbook, and not in the
> > emerge man page either.

> > What do I have to do to get this thing emerged?

> > Thanks!


> You've hit the dreaded sub-slot (a new portage feature). It causes no
> end of trouble as so few people know how it really works, but it's
> intended to replace @preserved-rebuild by DoingItRite and finally make
> revdep-rebuild obsolete.

> It's documented in man 5 ebuild under these headings:

> Atom Slots
> Sub Slots
> Atom Slot Operators
> SLOT

Thanks!  I know what :0/0= means, now.

> libpng:0/0 is libpng SLOT 0 which has been around since EAPI1 and
> SUBSLOT 0 which is new.

> Take cairo which is one of your deps. In the ebuild:

> RDEPEND="
>         media-libs/libpng:0=
> "

> eix libpng shows:

>      (0)    1.5.15 1.5.17-r1 (~)1.6.6(0/16) (~)1.6.7(0/16) 1.6.8(0/16)
> (~)1.6.9(0/16)

> That shows libpng-1.5.* have slot/subslot 0/0 and
>            libpng-1.6.* have slot/subslot 0/16
> where presumably "16" is shorthand for "1.6" in the version



> Now read those headings in the man page, you will find this gem:

> "=      Indicates  that any slot value is acceptable. In addition, for
> runtime dependencies, indicates that the package will break unless a
> matching package with slot and  sub-slot  equal to  the  slot  and
> sub-slot  of  the  best  installed version at the time the package was
> installed is available.

>                      Examples:
>                           dev-libs/icu:=
>                           dev-lang/perl:=
>                           dev-libs/glib:=
> "

> in other words, even though libpng-1.5.17-r1 and libpng-1.6.8 are in the
> same SLOT, nevertheless cairo will break if you upgrade libpng that way.

OK.

> Or expressed another way in language from before sub-slots, cairo will
> stop working properly after the emerge world until you run
> revdep-rebuild and fix and the borkage

I wouldn't have a problem with that.  Trouble is, emerge won't merge
libpng because of this "conflict".

> The world update wants to upgrade libpng as a new stable version is
> available but portage won't do it as it will break packages that use libpng.

Yes.

> All my hosts here are up to date so I can't reproduce your problem:

> - is portage up to date runnign latest version in your tree? Update that
> first (always a good idea anyway)

Yes:  I've got portage-2.2.7, having synched my portage yesterday and
checked with emerge -s.

> - are you sure that's an emerge failure and not just a convoluted info
> message? Perhaps post the entire emerge output.

I tried it again without the -p, and got the same output.

I think this is a portage bug.  At the very least, it's poor
documentation.  I've reported the situation to bugs.gentoo.org, bug
#502236.

Thanks for the help.

> -- 
> Alan McKinnon
> alan.mckin...@gmail.com

-- 
Alan Mackenzie (Nuremberg, Germany).

Reply via email to