I recently had to update perl and its deps (bash, groff, libperl, python,
ncurses and portage) and told it "emerge -u perl", but as I hunted the problem
down (after it quit a compile of one of the deps), I found out that whichever
of the packages I wanted to update, it did unmerge the recent package it had
just merged (eg. emerge -u python -> merges python-2.2.2 -> tells me "will be
unmerged: 2.2.2, protected 2.2.1-rXX" and if I wouldnt interrupt, it would
unmerge python 2.2.2 again, instead of the old one I wanted to replace with a
I was using portage 2.0.44 at the moment these problems came up, but even the
2.0.46-r10 (think it was 10), didnt make a change.
So I had to unmerge the package first (including bash, hm.) and re-emerge the
package. Or emerge the new one and unmerge the old one afterwards (would
say "omitted: [new version] unmerging: [old version]".
Hope you can reproduce that problem and fix it.
Steps to Reproduce:
1. emerge -u [package]
Unmerging: [new version]
Protected: [old version]
Unmerging: [old version]
Protected or Omitted: [new version]
# AUTOCLEAN="no" emerge -e world
will fix it. It's corrupt COUNTER files in your portage db.
There is a script in bugs somewhere that can fix that. It
shouldn't happen ever again in >=portage-2.0.46-r10. Your
problem started with 2.0.44 so it'll persist until you
rebuild with 2.0.46 or you fix the counters by hand.