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 ?
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.
Well, perhaps it's already fixed in one of more recent version, but...
One example could be http://forums.gentoo.org/viewtopic-t-807715.html
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.
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)
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.