Saturday, July 25, 2009

Upgrading to CRUX 2.6 on Slicehost

I'm one of those sadists that like to upgrade CRUX releases from ports rather than release packages. I've been testing the CRUX 2.6 branch on my home PC for some time now without any problems, so I've decided to upgrade my VPS as I am no longer maintaining my multilib branch of 2.5.

libarchive and pkgutils

First get yourself a copy of the 2.6 core repo, either from git or rsync. If you rebuilt libarchive while lzma was installed, you will need to remove lzma and rebuild/install libarchive manually.

You will then need to install xz then upgrade libarchive. Follow this by upgrading pkgutils and ports. Now you can upgrade your ports and begin rebuilding the toolchain.

Rebuilding the Toolchain

The only issue I encountered here was that the Slicehost kernel is too old to be built with the new glibc. This is easily fixed by changing one line in core/glibc/Pkgfile, change
--enable-kernel=2.6.27
to,
--enable-kernel=2.6.24

e2fsprogs and util-linux-ng

libuuid and libblkid has moved from e2fsprogs to util-linux-ng. You will need to remove e2fsprogs, update util-linux-ng then reinstall e2fsprogs.
Everything else should go fine after that. It's simply a matter of doing a sysup, checking for missing libraries via revdep and rebuilding where appropriate.