I figured out how to get the Linux client running under FreeBSD's Linux emulation.
I'm running FreeBSD-RELEASE 4.3.
You'll need the Linux emulation environment; see the FreeBSD handbook for how to install it. Use linux_base-6 (from /usr/ports/emulation/) instead of linux_base as later versions of the package fail. Version 7 did not work for me.
Create a Linux-formatted mtab file in /usr/compat/linux/etc/ based on /etc/fstab. I altered fstab to appear as a Linux mtab would; for example, I replaced references to ufs with ext2. I also removed filesystems I don't want to back up.
This allows Retrospect to see the Linux filesystem FreeBSD creates for the Linux emulation layer; unfortunately, this does not include all the files on your machine -- it's mostly comprised of the /usr/compat/linux directory masquerading as /.
We then need to expose the rest of the filesystem to Retrospect. It can see directories in / which have no corresponding directory in /usr/compat/linux, so I created an alternate mountpoint in / called /backup. Under /backup I created mountpoints for each directory in / (bin, etc, usr...). Next I used the null filesystem to mount the directories I want to back up on these new mountpoints. For example,
mount_null -o ro /bin/ /backup/bin
mounts /bin/ as /backup/bin. I repeated this for each directory in /backup.
That's it... all files are visible in the preview window, and were downloaded by the backup server during a test backup I just ran.
I'd like to see a recompiled FreeBSD client, but this isn't too bad...