During testing, I merged courier (~x86 - current version 0.41.0) which went fine. I unmerged courier later and it was properly removed from the world file (/var/cache/edb/world) but the virtual entries remained. Namely, virtual/imap and virtual/mta listed courier AFTER it was unmerged. This caused an odd situation because the next time I sync'd and looked with 'emerge -up --deep world', it wanted to merge courier (the operation marked as 'N', not 'R' if it was installed) but nothing required it. I can't imagine this is just an ebuild issue as ebuilds don't directly muck with the cache files (in my experience). To reproduce: emerge courier emerge unmerge courier emerge -up --deep world (note courier listed as to be installed) less /var/cache/edb/world (note no courier listing) less /var/cache/edb/virtuals (note courier IS listed for virtuals/imap and virtuals/mta) System: Unstable x86 Portage: Portage 2.0.47-r10 (default-x86-1.4, gcc-3.2.2, glibc-2.3.2-r0) Issue resolved by hand editing /var/cache/edb/virtuals and removing the offending entries.
I have just confirmed the same behavior with another package: postfix. The same result - removed from world, but not virtuals.
*** This bug has been marked as a duplicate of 1891 ***