Rob Farmer rfarmer at
Sat Dec 4 00:55:25 UTC 2010

On Fri, Dec 3, 2010 at 13:26, JB <jb.1234abcd at> wrote:
> The other *BSD are developed sequentially, that is, there is one
> branch and each major/minor release cycle follows the previous one
> (at no time there is a parallel major/minor branch development).
> In case of FreeBSD, it seems (visually) that there is some mainline
> CURRENT branch repository since FreeBSD 1.0 time, from which major
> branches are started in parallel (right now there are 8.2-CURRENT
> and 9.0-CURRENT developed, if I am correct), and they end their own
> life so to speak, without affecting other major branches; but there
> were periods of sequential dvelopments as well, e.g. 5.0 thru 5.2.
> So, this is the overview, as I see it.

In the past 5.x and prior, I believe things were a bit different, but
this represents what has happened for the last several years:

There is only one current. It is the main branch in CVS and is where
primary development occurs. There are no guarantees with current - the
ABI may change at any time, features added/removed, and other major
changes made, with the build sometimes broken. Some debugging stuff is
turned on by default and there is an expectation that you follow the
commit mails and current at list to keep track of things
which may affect you.

Current is branched off every 18 months (approximately) to make a
stable branch. On this branch, the ABI is consistent (applications
will not need recompiled due to changes) and backwards compatibility
isn't broken within the branch. Nothing is committed directly here -
if a change in current meets these criteria, then it may be MFC'ed
(merged from current) after it has been proven to work properly (can
be several days to weeks/months depending on the severity). There are
two supported stable branches right now, 7 and 8. The CVS tags have
the form RELENG_8. For current and stable you build your system from
source, though snapshots are generated monthly for a convenient
starting point.

Several times per year, a new release is created from the stable
branches - such as 8.1. There is a list on the website of which are
currently supported and when they will EoL. Once a release is created,
only security fixes and serious errata fixes may be applied on that
branch. CVS tags are like RELENG_8_1. These can also be updated with
freebsd-update (binary updates).

Current is (right now) called 9.0 for cases where a version number is
necessary, because that is what will be branched from it next, but it
will become 10.0, 11.0, etc. without a new branch in CVS once more
stable branches exist.


Rob Farmer

More information about the freebsd-questions mailing list