So, to begin with, there's the Dell box that I bought as my first computer when I moved to California -- unless I'm mistaken, the first computer I bought with my own money. Sometime in spring quarter of 1998, the campus bookstore was selling off their shelf models at 50% off of the list price, and I paid $1699 or so for an Optiplex GXPro. It was a good deal. This computer is made of solid reliable. Well, that, and significant quantities of dust, but mostly reliable. It has a 200 MHz Pentium Pro processor, and 226 MB of RAM, and it does not need a CPU fan. About three years ago, I finally retired it; it was cheaper to build a new computer than upgrade the memory.
However, a router and firewall and gateway does not need a lot of CPU or RAM, and it ideally is a computer that will be quiet and low-power.
The plan, then, was to pull the Optiplex out of storage (aka "the small pile of boxes against the wall in the bedroom") and install FreeBSD on it. This is sort of an exchange program with keshwyn; I helped convince her to install Debian (which I use) on her new box; and in return I install FreeBSD (which she is rather partisan to) on my gateway. (I have not previously told her about the second half of this plan.)
The first step of this plan turned out to be the most difficult. See, this computer is of an age slightly before the era of the bootable CD. It has USB, but the idea of booting from that is simply silly. And that pretty much leaves Boot ROMs (which I have not got) and floppy disks. Floppy disks were also something that I nearly but not quite have not got. It turns out that I currently have exactly one computer in runnable state (out of six in the room) that has a floppy drive, and it's the Optiplex. I also have a box of floppy disks that are labeled with the date that I backed them all up to disk images.
So I sat down to make boot floppies on the Optiplex. This is probably a good thing, on grounds that drive alignment can vary from drive to drive. But it's a bad thing, if a disk fails and I've already wiped out the existing OS. I figured I'd make an extra set, just to be safe.
Anyhow, the fundamental problem with this plan is that floppy disks are dead. Not just as a technology, but as pieces of magnetic storage. There are some individual disks which have not got the memo, but by and large, they no longer work. I sat down with the box, pulled out disks based on whether they looked to be in good shape (and completely disregarding the important files they purported to contain; at this point, they're worthless as backup media, and there's a reason I noted on the box that I'd backed them all up) and tried writing the relevant disk images on them. Occasionally, one actually made it. By the time I had two good sets, I had a nice little stack of rejects as well.
After that, things went a lot more smoothly -- making two sets of install disks ensured that the first one actually worked without trouble -- and pretty soon I had a working SSH login. Things went especially smoothly once it got booted and started downloading packages via ftp; network is a vastly superior technology for installation media than floppy disks, and I don't know how we lived without it.
(I wish to note, incidentally, that the "FREEBSD" ASCII-art-font logo at the boot screen is absolutely adorably 1980s. It is a cheerful thing, and made my heart go all warmfuzzy.)
And so, having somehow skipped over the "install optional software" part of the installation process, I went back and set up the FreeBSD ports thingy -- which is a package manager that consists of essentially a directory tree of makefiles that start out with "download the sources", so one can just go to the directory of the software one wants to install and type "make", and it deals.
So, hmm. What would be useful to start with. Samba's good; getting files onto and off the computer is nice to have as a first step.
So I tell it to make samba, and it pokes and figures out that samba depends on automake, and it pokes and automake depends on Perl. So it starts building Perl.
I suspect this may be a while....
(But: I have a BSD box! And it works and compiles Perl and everything! *happybounce*)
(Well, ok, not quite everything; my spare network card appears to be dead in that lovely "the system won't boot if this is installed" sort of way, so it can't be a gateway until I requisition a new one. But other than that.)
Edit: It has compiled Perl, in maybe an hour or so, and now moved on to autoconf. Or, well, to m4, which autoconf also depends on. But it actually builds things! (Hey, I started out running GCC source-repository trunk builds on Cygwin; large packages actually successfully building out-of-the-box still surprise me.)