Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 297785 - sys-apps/portage: change the way dependency conflicts are reported
Summary: sys-apps/portage: change the way dependency conflicts are reported
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All All
: High enhancement (vote)
Assignee: Portage team
Depends on:
Blocks: 300071
  Show dependency tree
Reported: 2009-12-21 15:00 UTC by Rafał Mużyło
Modified: 2010-01-11 00:09 UTC (History)
1 user (show)

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


Note You need to log in before you can comment on or make changes to this bug.
Description Rafał Mużyło 2009-12-21 15:00:05 UTC
Right now, as observed in several bugs/forum threads,
it doesn't really work right, as more often than not,
it gives the wrong hint about the source of the conflict.

Would there be a way to at least filter out unversioned deps,
as in most cases it's either a slot dep or =* dep that's the source
of the conflict ?
Comment 1 Zac Medico gentoo-dev 2009-12-21 21:24:53 UTC
Can you give some specific examples? There's already some code for separating out "conflict atoms", so I'm not sure exactly what the problem you're referring to.
Comment 2 Rafał Mużyło 2009-12-22 00:17:22 UTC
Well, perhaps it's already fixed in one of more recent version, but...
One example could be
even if it was invalid, the point is that of the 4 conflicts,
the 3 printed were obviously bogus, as they were unversioned.
Perhaps the fourth was the right one, perhaps not,
the point is most of that conflict message was just noise.
Even if that particular problem was invalid,
I've seen many bugs like this - that output seems 
to rather confuse users than help them.

I'm not saying that solution will be straight-forward, but
it would be nice (and good for bug-wranglers/forum) if such filtering
could be implemented.
Comment 3 Zac Medico gentoo-dev 2009-12-22 09:37:07 UTC
There are too many different kinds of conflicts to fix it all at once. You have to add code to recognize each specific class of conflict that you find, and provide a helpful message for each class. It can only be done over a long period of time as each conflict class is reported and the code is written to recognize and handle it.

The specific class of conflict that's reported at the beginning of that forum thread is triggered by having an installed package that's masked. We could easily add some code to recognize that case an show a normal masking message instead of this slot conflict message:

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


  ('installed', '/', 'app-admin/eselect-opengl-1.0.9', 'nomerge') pulled in by
    >=app-admin/eselect-opengl-1.0.9 required by ('ebuild', '/', 'x11-drivers/nvidia-drivers-190.42-r3', 'merge')
    (and 4 more)

  ('ebuild', '/', 'app-admin/eselect-opengl-1.0.8-r1', 'merge') pulled in by
    app-admin/eselect-opengl required by ('ebuild', '/', 'x11-apps/xdriinfo-1.0.3', 'merge')
    app-admin/eselect-opengl required by ('ebuild', '/', 'media-libs/mesa-7.5.2', 'merge')
    app-admin/eselect-opengl required by ('installed', '/', 'x11-proto/glproto-1.4.10', 'nomerge')
    (and 1 more) 
Comment 4 Rafał Mużyło 2009-12-22 10:11:58 UTC
Similar,but different case are qt splits conflicts,
caused either by unmasking x11-libs/qt:4 (so, invalid)
or useflag conflict (some people got used to giving advice of
"unmerge them all, then reemerge" - in most cases, it's simply
not needed, but it's a bit hard to figure out the first time).
There too a lot of warnings are printed, but most are
not really helpful.