Hello There seems to be a bug in how portage (version 1.8.8) determine which package to update when 'virtuals' package are involved. FIRST PROBLEM When a package depends on a 'virtual' package, portage first look in '/etc/make.profile/virtuals' to see which regular package provide this 'virtual' package, and don't look in database of installed package to see if one of them provide this functionnality. It should first look in the database of installed packages ('/var/db/pkg/virtual/...'), and only if no package is found uses '/etc/make.profile/virtuals' as a fallback. With this new scheme, '/etc/make.profile/virtuals' can be used as a list of default 'virtual' package providers that can be overriden by installed packages. It would solve problem like portage trying to install 'dev-java/blackdown-jdk' when a package depends on 'virtual/jdk' even though 'dev-java/sun-jdk' is installed (see http://lists.gentoo.org/pipermail/gentoo-dev/2002-March/010295.html and followups). SECOND PROBLEM The second problem comes from the first. When doing an 'emerge --world update', portage look in '/var/db/pkg/...' to determines which package are installed and possibly need updating. If one of this package is a virtual package, portage try to update the 'virtual' package using the previous method instead of trying to update the providing package. For exemple, on my system 'sys-apps/console-tools' is not installed but is provided by 'sys-apps/kbd' and no package depend on 'sys-apps/console-tools'. But when doing an update, I get : These are the packages that I would merge, in order. Calculating system dependencies.............. <snip> .... done! [ebuild U] sys-apps/console-tools-0.2.3-r4 to / [ebuild U] x11-base/xfree-4.2.0-r8 to / It want to update 'sys-apps/console-tools' even though this package is not installed ! It should instead update 'sys-apps/kbd' ... -- Keiichi
This is a known issue and --world updates have been removed from our _pre portage. A fix is on the way.