From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-user+bounces-154137-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	by finch.gentoo.org (Postfix) with ESMTP id 009C6138E66
	for <garchives@archives.gentoo.org>; Sun, 23 Feb 2014 12:18:51 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 847A0E0AF7;
	Sun, 23 Feb 2014 12:18:40 +0000 (UTC)
Received: from mail.muc.de (colin.muc.de [193.149.48.1])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id A114CE0AC3
	for <gentoo-user@lists.gentoo.org>; Sun, 23 Feb 2014 12:18:38 +0000 (UTC)
Received: (qmail 89332 invoked by uid 3782); 23 Feb 2014 12:18:36 -0000
Received: from acm.muc.de (pD951B638.dip0.t-ipconnect.de [217.81.182.56]) by
	colin.muc.de (tmda-ofmipd) with ESMTP;
	Sun, 23 Feb 2014 13:18:36 +0100
Received: (qmail 3968 invoked by uid 1000); 23 Feb 2014 12:15:10 -0000
Date: Sun, 23 Feb 2014 12:15:10 +0000
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user] "Multiple package instances ....".  Help me
	understand this emerge error, please.
Message-ID: <20140223121510.GD3191@acm.acm>
References: <20140222211505.GB2639@acm.acm> <53091F57.1020106@gmail.com>
	<201402222332.44431.michaelkintzios@gmail.com>
Precedence: bulk
List-Post: <mailto:gentoo-user@lists.gentoo.org>
List-Help: <mailto:gentoo-user+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-user+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-user+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-user.gentoo.org>
X-BeenThere: gentoo-user@lists.gentoo.org
Reply-to: gentoo-user@lists.gentoo.org
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201402222332.44431.michaelkintzios@gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Delivery-Agent: TMDA/1.1.12 (Macallan)
From: Alan Mackenzie <acm@muc.de>
X-Primary-Address: acm@muc.de
X-Archives-Salt: 3a3e94a0-acc3-4f7d-82a1-681ef2c49bc7
X-Archives-Hash: 4b63b89f103dc7614e64272567004c15

Hi, Mick.

On Sat, Feb 22, 2014 at 11:32:42PM +0000, Mick wrote:
> On Saturday 22 Feb 2014 22:06:15 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

> > 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.

> > 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


> > 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.


> > 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)
> > - are you sure that's an emerge failure and not just a convoluted info
> > message? Perhaps post the entire emerge output.

> I can't recall how I got out of this, but by instinct I would probably unmerge 
> libpng, emerge world and then @preserved-rebuild and revdep-rebuild.

I've reported the situation to bugs.gentoo.org (#502236), so I'll wait
and see what comes back before I change my current portage state.

> -- 
> Regards,
> Mick

-- 
Alan Mackenzie (Nuremberg, Germany).