This morning I saw that libexpat was upgraded to 2.0.0. I simply emerged that and I thought all was good, but within minutes, I saw issues with my PHP CLI apps having problem. I noticed that expat was a USE flag, and I need to rebuild PHP against the new libexpat. No problem, so I did that. Shortly after, I noticed that Apache's logresolve2 was complaining as well. At this point, I thought I would do a revdep-rebuild, since there clearly are reverse dependency issues.
This generated the oneshot emerges that needed to be rebuilt on the system, and I was on my way. On another box running kdelibs and gnome packages... this was a whole different story.
I was seeing various messages similar to these during rebuilds:
/usr/kde/3.5/bin/kde-config: error while loading shared libraries: libexpat.so.0: cannot open shared object file: No such file or directory
Hitting the Gentoo forums, I noticed I wasn't the only one, and there was a slew of people running into problems. So many people were masking the latest expat, but I'm not like that. I'd rather bust through the problem and get it fixed. It's simply a matter of repairing 'old' packages.
revdep-rebuild -X --library libexpat.so.0
This will correct about 90% of the errors. After muscling through this, go back to standard revdep-rebuild, and hopefully, you'll be able to work the rest through. Make sure you read the error messages, it's usually quite clear. Also, remember to remove .revdep-rebuild.* files in /root, to prevent cached results.
When Gentoo pushes these moves, it can be extremely uncomfortable.. but there is no 'smooth' way of doing this with a source based distro. I love Gentoo, and know this is what needs to be dealt with on occasion. Not to mention, it'll get your problem solving chops up.
I hope this helps some of you.