Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 297785

Summary: sys-apps/portage: change the way dependency conflicts are reported
Product: Gentoo Linux Reporter: Rafał Mużyło <galtgendo>
Component: [OLD] Core systemAssignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: enhancement CC: esigra, kingjon3377
Priority: High    
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 300071    

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

app-admin/eselect-opengl:0

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