I upgraded my 5.2 box to 5.3. It's a funny path of events: I wanted ImageMagick, but pkg_add wasn't finding binaries because (I think?) 5.3 is now the -RELEASE branch. I think I have the 5.3 ports tree too, 'cause other stuff regularly complains about library versions. So I figured I may as well use 5.3. (portinstall complained about missing some Japanese file, which I thought might have been related.)

/usr/src/sys/kern/sched_ule.c:60:2: #error "The SCHED_ULE scheduler is broken. Please use SCHED_4BSD":(

All of the upgrade docs I read neglected to mention that vinum no longer works and in fact its vestiges would cause my system to panic upon boot. I've dealt with enough of these sorts of systems that I didn't immediately freak out, and plugging the error message into Google produced someone else with the same problem and instructions on how to switch to gvinum, which happily worked. But that's still sucky.

And after all that I still had the same problem:"Makefile", line 16: Could not find /usr/ports/japanese/postgresql-tcltk/../../databases/postgresql7/Makefilemake: fatal errors encountered -- cannot continue===> japanese/postgresql-tcltk failed*sigh*

I think in general I don't have the time to track down these sorts of problems. I know enough about how to make Debian run so I'll probably just end up using it for my next server despite wanting to know about FreeBSD. :\

I think something failed due to running out of disk. Is there any way to get my ports tree to rebuild itself without downloading it all again? cvsup doesn't seem to care when I rm directories. (That's perfectly reasonable behavior, of course -- the common case is someone dutifully tracking CVS.)

You can have cvsup only update certain ports collections (see the supfiles in /usr/share/examples/cvsup) and you can also refuse to update certain individual port directories (see the REFUSE section of the cvsup manpage.)

Here's a handy tarball of the ports tree as-shipped with FreeBSD 5.3, its about 26MB: