move commands should not be applied if new ${CATEGORY} or ${PN} would be invalid in EAPI of installed ebuild. slotmove commands should not be applied if new ${SLOT} would be invalid in EAPI of installed ebuild. In these situations, Portage should print warnings telling users to upgrade/reinstall/uninstall given packages.
Usually ebuild with original ${CATEGORY}/${PN} or ${SLOT} will no longer be available, so Portage should only suggest manual uninstallation and later potential installation of new ebuild.
Here's a really minimal fix, just to prevent breakage from occurring: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=dde6df65ecbc522dc23cb8d24be3e4dd52657da8
(In reply to comment #0) > move commands should not be applied if new ${CATEGORY} or ${PN} would be > invalid in EAPI of installed ebuild. This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=2df06cb95c1f97a470034bf2be73869256633685 > In these situations, Portage should print warnings telling users to > upgrade/reinstall/uninstall given packages. I didn't add any warnings yet. I guess if there's a problem then it will show as a SLOT conflict, blocker, or just a plain unsatisfied dependency, which shouldn't be too hard for users to interpret.
This is fixed in 2.1.11.8 and 2.2.0_alpha119.