NOTICE:

The FreeBSD world/kernel build process seems to dislike having its sources mounted via smbfs. If you witness strange errors or compiler crashes, and they're not due to the samba connection timing out, then you may have to copy the sources locally before building. A pain, I know.

Commands:

mkdir /mnt/src
mount -t smbfs //guest@server/src /mnt/src
mount -t nullfs /mnt/src/FreeBSD/RELENG_8_0/src /usr/src
mount -t nullfs /mnt/src/FreeBSD/ports /usr/ports
mkdir -p /var/ports/distfiles

fstab:

//guest@alba/src                /mnt/src        smbfs   ro      0 0
/mnt/src/FreeBSD/RELENG_8_0/src /usr/src        nullfs  ro      0 0
/mnt/src/FreeBSD/ports          /usr/ports      nullfs  ro      0 0

Ports really loves building things in-tree. Doesn't really work with a read-only ports tree.

make.conf:

# Read-only ports tree
DISTDIR=/var/ports/distfiles
PACKAGES=/var/ports/packages
WRKDIRPREFIX=/usr/obj

Workdir will be ${WRDKIRPREFIX}/${PWD}/work, so /usr/obj/usr/ports/sysutils/screen/work/ for sysutils/screen. Won't interfere with buildworld/buildkernel this way.