"emerge -puD world" was not showing kde as a package which has upgrade available, although 3.2.1 is in portage and kde-base/kde is in "world" file. This is with ROOT feature being used. Reproducible: Always Steps to Reproduce: 1. Set ROOT to /opt/ 2. Install kde in ${ROOT} 3. emerge -puD world Actual Results: It didn't say that update for kde was available when there indeed was an upgrade available. Expected Results: It should have listed kde in output. I changed following in ${ROOT}usr/lib/portage/bin/emerge: --------------------------------------- #actually available -- this prevents emerge from bombing out due to no match being found (we want a silent ignore) if "empty" in myparams: if portage.db["/"]["vartree"].dbapi.match(x): sysdict[x]=worlddict[x] elif portage.db[portage.root]["vartree"].dbapi.match(x): #package is installed sysdict[x]=worlddict[x] else: print "\n*** Package in world file is not installed: "+x ---------------------- TO ---------------------- #actually available -- this prevents emerge from bombing out due to no match being found (we want a silent ignore) if "empty" in myparams: if portage.db["/"]["vartree"].dbapi.match(x): sysdict[x]=worlddict[x] elif portage.db[portage.root]["vartree"].dbapi.match(x): #package is installed sysdict[x]=worlddict[x] else: print "\n*** Package in world file is not installed: "+x -------------------------- please note the extra tabs. And it reported the correct results.
we cant notice the extra tabs ... posting patches in comments is wrong, it always mangles it please post your patch as an attachment ... also, using an unified diff format is prefered
OK, forget the patch. I had to make more changes for that file for it to work on solaris and true ROOT form, so posting a diff here will be major digressing. Here is what I think should be the behaviour in precedence view and by looking at that part of file 'emerge', you can figure what to do: if empty in myparams; then (if match in "/"; then sysdict[x]=worlddict[x] else if match in ${ROOT}; then sysdict[x]=worlddict[x] else print message that world package not installed. ) Current tabbing doesn't allow this behaviour. Please note the '(', ')' parenthesis.
have a look at this and you will get a visual diff: http://forums.gentoo.org/viewtopic.php?t=113387&postdays=0&postorder=asc&start=75
If you have a patch for current stable please attach it and re-open the bug.