Contributed by Jordan K. Hubbard <jkh@FreeBSD.org>.
FreeBSD-stable is our development branch for a more low-key and conservative set of changes intended for our next mainstream release. Changes of an experimental or untested nature do not go into this branch (see FreeBSD-current).
If you are a commercial user or someone who puts maximum stability of their FreeBSD system before all other concerns, you should consider tracking stable. This is especially true if you have installed the most recent release (3.4-RELEASE at the time of this writing) since the stable branch is effectively a bug-fix stream relative to the previous release.
Warning: The stable tree endeavors, above all, to be fully compilable and stable at all times, but we do occasionally make mistakes (these are still active sources with quickly-transmitted updates, after all). We also do our best to thoroughly test fixes in current before bringing them into stable, but sometimes our tests fail to catch every case. If something breaks for you in stable, please let us know immediately! (see next section).
Join the FreeBSD-stable mailing list <freebsd-stable@FreeBSD.org>. This will keep you informed of build-dependencies that may appear in stable or any other issues requiring special attention. Developers will also make announcements in this mailing list when they are contemplating some controversial fix or update, giving the users a chance to respond if they have any issues to raise concerning the proposed change.
The FreeBSD CVS commit message mailing list <cvs-all@FreeBSD.org> mailing list will allow you to see the commit log entry for each change as it is made along with any pertinent information on possible side-effects.
To join these lists, send mail to <majordomo@FreeBSD.org> and specify:
subscribe freebsd-stable subscribe cvs-allin the body of your message. Optionally, you can also say help and Majordomo will send you full help on how to subscribe and unsubscribe to the various other mailing lists we support.
If you are installing a new system and want it to be as stable as possible, you can simply grab the latest dated branch snapshot from ftp://releng3.FreeBSD.org/pub/FreeBSD/ and install it like any other release.
If you are already running a previous release of FreeBSD and wish to upgrade via sources then you can easily do so from ftp.FreeBSD.org. This can be done in one of three ways:
Use the CTM facility. Unless you have a good TCP/IP connection at a flat rate, this is the way to do it.
Use the cvsup program with this supfile. This is the second most recommended method, since it allows you to grab the entire collection once and then only what has changed from then on. Many people run cvsup from cron to keep their sources up-to-date automatically. For a fairly easy interface to this, simply type;
# pkg_add -f \ ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz
Use ftp. The source tree for FreeBSD-stable is always ``exported'' on: ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/
We also use wu-ftpd which allows compressed/tar'd grabbing of whole trees. e.g. you see:
You can do:
ftp> cd usr.bin ftp> get lex.tarand it will get the whole directory for you as a tar file.
Essentially, if you need rapid on-demand access to the source and communications bandwidth is not a consideration, use cvsup or ftp. Otherwise, use CTM.
Before compiling stable, read the Makefile in /usr/src carefully. You should at least run a make world the first time through as part of the upgrading process. Reading the FreeBSD-stable mailing list <freebsd-stable@FreeBSD.org> will keep you up-to-date on other bootstrapping procedures that sometimes become necessary as we move towards the next release.