Hi,

A portage question, to satisfy my own curiosity i.e. I know how to fix 
the problem I had, but I'd like to know if I fully understand how to 
use portage in a case like this:

My desktop is a mostly stable x86 machine, but I use e17-9999 as my wm. 
x11-wm/e depends on evas which has a hard dependency on cairo:

        cairo? ( >=x11-libs/cairo-1.2 )

I had to unmask e, evas and cairo to get this to emerge.

I also have x86 pygtk and pycairo already installed, pycairo has a hard 
dependency on cairo-1.0*

        =x11-libs/cairo-1.0*

emerge world wants to downgrade cairo to 1.0* to satisfy pycairo, then 
the next emerge world wants to upgrade it to 1.2* to satisfy evas = a 
version conflict which yo-yos back and forth. The fix is obviously to 
keyword pycairo to ~x86 to give consistent dependencies. This is harder 
than it could be: pygtk could also have had it's own conflicts, and it 
takes several 'emerge -pv world' and reading ebuilds to get the whole 
picture. And this is something portage could have figured out itself.

emerge -p world had to parse the entire portage tree anyway, it could 
easily check for versioning conflicts while doing it and display a 
message to the user, much like blockers do currently. I get it that 
portage likely can't suggest resolutions but it would be nice to see in 
one display that evas and pygtk requires mutually exclusive versions of 
cairo.

Can portage do this? Is it something useful that warrants a feature 
request? Or am I missing an option in the man page even though I've 
read it >30 times? :-)

alan
-- 
[email protected] mailing list

Reply via email to