Linux PPC and ia32 FreeBSD development configs

Matthew Hawkins matt at
Wed Jun 26 22:32:41 EST 2002

Hi Brad,

Brad Hards (bhards at wrote:
> I'm working on the zeroconf networking stuff some more, and I'd like to have a 
> FreeBSD box to test it on. I'm thinking of dual booting my current scratch 
> box to do this (after a little parted magic). I'm not sure I understand the 
> FreeBSD devel philosphy though. Are development boxes supposed to be kept up 
> to date using CVS (or CVSup)? Or is the normal approach to use individual 
> tarballs when required?

FreeBSD has a 3-tier distribution model similar to what Debian are now
doing.  the "-current" release is where all the new stuff goes.  Stuff
gets "merged from current" (MFC) into "-stable", which eventually
becomes the new "-release".  So -current =~ unstable, -stable =~ testing
and -release =~ stable if comparing FreeBSD and Debian.

Applications that don't come with FreeBSD can usually be installed from
"ports".  This is a build system (which Gentoo Linux is cloning) which
you can keep up-to-date using cvsup.  It's similar to a Debian build
system in that you get some file metadata and package information, and a
Makefile from which to build.  To build a new vim editor for example, I
would first "less /usr/ports/editors/vim/Makefile" to check for any
options I might want in the build (in the case of vim I can choose which
GUI to use and any scripting language support combinations I might need)
then "cd /usr/ports/editors/vim" and "make && make install"
(there's actually a better way, but that's irrelevent atm).  The port
will check if I have all the necessary components, pull down any missing
pieces (tarballs, patches, etc), check the md5 checksum for correctness,
extract, apply patches, do anything else it needs to & compile away.
Installing will track the port in the FreeBSD package system.
If you trust upstream binaries, or don't want to waste time compiling,
you can pull down precompiled ports using pkg_add(8) instead.
Oh... ports always belong to -current and you need to run at least
-stable if you want to use ports.

Like ports, the original FreeBSD system can also be kept up-to-date with
CVSup.  You're given config files from which you pick your closest
mirror (yay planetmirror!) and the usual way you configure the system is
to run CVSup as a local cron job each night.  I also tend to run it
manually before doing a build of the world.  You can simply "make
update" from /usr/src if you've got /etc/make.conf configured properly,
and it'll update all the sources on your system (kernel, userspace,
ports, documentation).  You can then follow the simple instructions in
the handbook to configure, build and install a new kernel and system
from the new sources.

I suggest you install from whatever -release is available (actually,
would you like a hard drive with FreeBSD already installed?) and then
cvsup to -stable.  Install from ports any applications you need to
assist in your task at hand.  Track -stable by using cvsup periodically.
To give you some idea of bandwidth, I once cvsup'd from a 4.3 release
candidate to a 4.5-stable and chewed a whole whopping 11Mb of data as
measured in ifconfig.

I suggest using -stable as a base as it'll make it a lot easier to
forward-port to -current later, than if you're running what could be a
2-year-old -release.  Also, it means you can use ports which is as close
to apt-get as you can get :)  (actually, in some respects its better

I was forced to run FreeBSD for 18 months or so at my previous job as
Linux wouldn't run on the workstation (via686b bug causing kernel
oopses) and I'd rather scrub myself raw with a steel brush and roll
around in salt & vinegar than run MS-Windows.  It's not a bad system,
straightforward to port to (if necessary) and for the most part the
developers are not rabid freaks.  You should have lots of fun doing the
zeroconfig networking stuff on it.  Good luck!


More information about the linux mailing list