Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 293614 - confusing slot conflict messages in portage-2.2
Summary: confusing slot conflict messages in portage-2.2
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Portage team
URL: http://forums.gentoo.org/viewtopic-p-...
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 288499
  Show dependency tree
 
Reported: 2009-11-18 12:04 UTC by Victor Mataré
Modified: 2009-11-26 00:06 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Victor Mataré 2009-11-18 12:04:17 UTC
When there are resolvable and non-resolvable conflicts, the resolvable slot conflicts are displayed in-line with the non-resolvable ones. That leaves the user no way to tell which slot conflict actually needs to be resolved manually (by masking packages), and which slot conflicts will be implicitly resolved by portage. Clearly stating which slot conflict actually inhibits the merge will save us quite some hassle there.

Reproducible: Always

Steps to Reproduce:
Comment 1 Victor Mataré 2009-11-18 12:16:06 UTC
The URL documents my initial misunderstanding of one such message. Turns out it was actually only some libopensync mess that kept emerge from proceeding, but in the message all conflicts looked the same.
Comment 2 Sebastian Luther (few) 2009-11-19 08:22:24 UTC
Please post the emerge command you run, add --tree to the emerge options (if you don't have) and attach emerge's full output. Also attach emerge --info.
Comment 3 Victor Mataré 2009-11-19 20:08:51 UTC
Sorry I wasn't concrete enough. The problem is messages like this:

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

net-libs/xulrunner:1.9

  ('installed', '/', 'net-libs/xulrunner-1.9.0.14', 'nomerge') pulled in by
    =net-libs/xulrunner-1.9.0* required by ('installed', '/', 'www-client/mozilla-firefox-3.0.14', 'nomerge')
    (and 6 more)

  ('ebuild', '/', 'net-libs/xulrunner-1.9.1.4', 'merge') pulled in by
    >=net-libs/xulrunner-1.9.0.11-r1:1.9 required by ('installed', '/', 'net-libs/libproxy-0.2.3-r2', 'nomerge')
    >=net-libs/xulrunner-1.8 required by ('installed', '/', 'media-video/vlc-1.0.3', 'nomerge')
    net-libs/xulrunner:1.9 required by ('installed', '/', 'gnome-extra/yelp-2.28.0', 'nomerge')
    (and 3 more)

x11-base/xorg-server:0

  ('ebuild', '/', 'x11-base/xorg-server-1.7.1', 'merge') pulled in by
    x11-base/xorg-server required by ('installed', '/', 'media-video/nvidia-settings-190.42', 'nomerge')
    >=x11-base/xorg-server-1.5.99.901 required by ('installed', '/', 'x11-drivers/xf86-input-mouse-1.5.0', 'nomerge')
    x11-base/xorg-server required by @world
    (and 5 more)

  ('ebuild', '/', 'x11-base/xorg-server-1.6.5-r1', 'merge') pulled in by
    <x11-base/xorg-server-1.6.99 required by ('installed', '/', 'x11-drivers/nvidia-drivers-180.60', 'nomerge')
    (and 8 more)

app-pda/libopensync:0

  ('ebuild', '/', 'app-pda/libopensync-0.39', 'merge') pulled in by
    =app-pda/libopensync-0.39* required by ('ebuild', '/', 'app-pda/libopensync-plugin-file-0.39', 'merge')
    (and 1 more)

  ('installed', '/', 'app-pda/libopensync-0.36-r1', 'nomerge') pulled in by
    =app-pda/libopensync-0.36* required by ('installed', '/', 'app-pda/libopensync-plugin-gnokii-0.36', 'nomerge')
    =app-pda/libopensync-0.36* required by ('installed', '/', 'app-pda/msynctool-0.36', 'nomerge')
    (and 1 more)

This tells me there's a ton of slot conflicts and naturally, I'll start working through them from top to bottom. However the above two are *automatically resolvable*, hence not real conflicts. Once I mask >=libopensync-0.39, portage proceeds as expected, resolving the "conflicts" with xulrunner and xorg-server by just leaving them alone. This then yields the following message:

!!! One or more updates have been skipped due to a dependency conflict:

x11-base/xorg-server:0

  ('ebuild', '/', 'x11-base/xorg-server-1.7.1', 'merge') conflicts with
    <x11-base/xorg-server-1.6.99 required by ('installed', '/', 'x11-drivers/nvidia-drivers-180.60', 'nomerge')                                                                               

net-libs/xulrunner:1.9

  ('ebuild', '/', 'net-libs/xulrunner-1.9.1.4', 'merge') conflicts with
    =net-libs/xulrunner-1.9.0* required by ('installed', '/', 'www-client/mozilla-firefox-3.0.14', 'nomerge')

Which is expected and perfectly OK. What I'm saying is that it's just confusing to have the resolvable conflicts displayed in-line with non-resolvable ones, with no way to tell them apart. The xulrunner and xorg-server conflicts should somehow be labeled as non-fatal, i.e. resolvable, by putting them at the end and giving them an extra headline stating their status, for example.

Just to be perfectly clear: This bug is not about a slot conflict, but about the *formatting* of slot conflict *messages*.
Comment 4 Zac Medico gentoo-dev 2009-11-20 22:57:02 UTC
It may be that you have so many conflicts that you're just hitting the backtracking limit (default is 5). In light of this, all three conflicts are essentially equivalent. You can set a higher backtracking limit, such as --backtrack=10 in make.conf in EMERGE_DEFAULT_OPTS.
Comment 5 Victor Mataré 2009-11-21 13:57:00 UTC
(In reply to comment #4)
> It may be that you have so many conflicts that you're just hitting the
> backtracking limit (default is 5). In light of this, all three conflicts are
> essentially equivalent. You can set a higher backtracking limit, such as
> --backtrack=10 in make.conf in EMERGE_DEFAULT_OPTS.
> 

The message I've posted above is the entire slot conflict message. Seems like I still haven't made myself clear. The message above is simply *wrong* in that it gives false information, i.e. it lacks the essential information that two of those three conflicts are not actually conflicts.

The correct message should look something like this:

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

app-pda/libopensync:0

  ('ebuild', '/', 'app-pda/libopensync-0.39', 'merge') pulled in by
    =app-pda/libopensync-0.39* required by ('ebuild', '/',
'app-pda/libopensync-plugin-file-0.39', 'merge')
    (and 1 more)

  ('installed', '/', 'app-pda/libopensync-0.36-r1', 'nomerge') pulled in by
    =app-pda/libopensync-0.36* required by ('installed', '/',
'app-pda/libopensync-plugin-gnokii-0.36', 'nomerge')
    =app-pda/libopensync-0.36* required by ('installed', '/',
'app-pda/msynctool-0.36', 'nomerge')
    (and 1 more)


!!! One or more updates have been skipped due to a dependency conflict:

x11-base/xorg-server:0

  ('ebuild', '/', 'x11-base/xorg-server-1.7.1', 'merge') conflicts with
    <x11-base/xorg-server-1.6.99 required by ('installed', '/',
'x11-drivers/nvidia-drivers-180.60', 'nomerge')                                 

net-libs/xulrunner:1.9

  ('ebuild', '/', 'net-libs/xulrunner-1.9.1.4', 'merge') conflicts with
    =net-libs/xulrunner-1.9.0* required by ('installed', '/',
'www-client/mozilla-firefox-3.0.14', 'nomerge')


Note that the messages for xulrunner and xorg-server have been replaced by the correct message stating their status and the order has been changed. This message clearly states that the libopensync conflict requires manual intervention whereas the xulrunner and xorg-server conflicts will be resolved automatically. That and nothing more is what I'm talking about. It's simply a nice usability enhancement. Unfortunately I don't know python and portage, but if no one is willing to look into this, I'm perfectly fine with digging myself in and posting a patch, however that'll take time.
Comment 6 Zac Medico gentoo-dev 2009-11-21 21:46:59 UTC
(In reply to comment #5)
> The message I've posted above is the entire slot conflict message. Seems like I
> still haven't made myself clear. The message above is simply *wrong* in that it
> gives false information, i.e. it lacks the essential information that two of
> those three conflicts are not actually conflicts.

What I'm trying to say is that all three of them are "not actually conflicts" if you use a larger value for --backtrack, such as --backtrack=10.
Comment 7 Victor Mataré 2009-11-23 17:01:36 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > The message I've posted above is the entire slot conflict message. Seems like I
> > still haven't made myself clear. The message above is simply *wrong* in that it
> > gives false information, i.e. it lacks the essential information that two of
> > those three conflicts are not actually conflicts.
> 
> What I'm trying to say is that all three of them are "not actually conflicts"
> if you use a larger value for --backtrack, such as --backtrack=10.
> 

Oh. Right. Thanks. But it would be really nice (i.e. more people would get to appreciating it) if there was some hint in the slot conflict message that I might resolve this by using --backtrack.
Comment 8 Zac Medico gentoo-dev 2009-11-23 21:36:11 UTC
Ok, it's fixed in svn r14875 to give a hint about the --backtrack option:

It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously. If such a conflict exists in the
dependencies of two different packages, then those packages can not be
installed simultaneously. You may want to try a larger value of the
--backtrack option, such as --backtrack=30, in order to see if that will
solve this conflict automatically.
Comment 9 Zac Medico gentoo-dev 2009-11-26 00:06:28 UTC
This is fixed in 2.1.7.7 and 2.2_rc52.