(A cute image from CuteOverload for about as much particular reason as the last time)
So it spite of all the ranting about Gentoo being essentially impossible to upgrate, I tried to upgrade it. By going over the list of the packages and selecting those that were upgradable by hand, but I did it. Well, sort of ^_^.
And now I'll tell you what happened during the upgrade. First I rsynced the portage tree and svn-up'ed an "overlay" (equivalent of an extra repository in Debian) with Eclipse. That is, I did an equivalent of apt-get update.
Now every time I run emerge it tells me something about a parse error in one of the Eclipse ebuilds, but it doesn't seem to have any ill effects so let's skip that.
As full upgrade is impossible, I did some emerge magic, like emerge -about -seven -options -pasted -from -#gentoo -on -freenode that was supposed to tell me what can I upgrade. Of course it didn't work. It thinks that my version of mod_php is bad and I need to uninstall my mod_php and install a different mod_php if I want to keep using Gentoo. I still don't get it how mod_php is related to portage but anyway.
On the other hand emerge --pretend --update --newuse world did work, well kinda. It showed a list of packages that weren't 100% new, and I could hand pick from this list the ones that I wanted upgraded. About 200 package upgrades ones, two days and 3 emerge crashes (can't compile this or that) later, the system was it a kinda more up-to-date state. I even felt like maybe I was overreacting a little the last time. Then I rebooted ...
Now something came that I've never seen in Debian, even with all the unstable and experimental packages. The upgrades broke the configuration files ! lo interface was down, /etc/init.d/net.lo start gave a parse error, oh and half of the thing did not work because lo was down. I kinda remembered that I'm supposed to run etc-update after each upgrade. etc-update "automerged trivial changes" to about 20 configuration files and gave me a list of 49 others that I was supposed to merge by hand ! Well, /etc/init.d/net.lo was on the list so I just told it to use the new version from the package. Now lo works and I have only 48 broken config files on the system.
Was it over ? Not at all. svn was down because of library issues. Oh yeah, I'm supposed to reinstall all packages that use library X after I upgrade library X (like I ranted before about Perl and Python). Upgrading svn fixed it.
Now the funny thing, Gentoo has an automatic fixer. One just have to say revdep-rebuild, and it goes through the system, finds all executables with broken library dependencies, and reinstalls their packages. Now, it found that KDE ioslave for SVN is broken. However, it could not reistall KDE because the old version was not in portage any more, and I couldn't upgrade to the the new KDE because of some unrelated broken dependency on libfaad2. So I'll have to live with broken SVN ioslave in KDE. But I'm not complaining, compared to other problems I've had with Gentoo a broken ioslave is like a flu added to a cancer.
Summary for users of Debian and other sane systems - Gentoo is like Windows 98, you're not supposed to upgrade it, it is far easier to backup your /home, format your hard drive and reinstall it from scratch. Or switch back to Debian, what I plan to do as soon as possible.
The best kittens, technology, and video games blog in the world.