a few questions and concepts

Kevin Kinsey kdk at daleco.biz
Sat Apr 8 04:18:28 UTC 2006

Jonathan Horne wrote:

>On Friday 07 April 2006 16:34, Giorgos Keramidas wrote:
>>>i can definatly see the benefits of using cvsup to take care of
>>>problem with some things (like sendmail), but allowing it to update
>>>everything under the /usr/src tree, im wondering if i could be setting
>>>myself up for issues (by not editing the stable-supfile and taking
>>>only what i need).
>>This is why each FreeBSD release is associated with at least:
>>    * A "frozen" tag, like RELENG_6_0_RELEASE
>>    * A security branch, like RELENG_6_0
>>    * A stable branch, like RELENG_6
>>Changes go very fast in the CURRENT FreeBSD branch.  After they settle
>>in for a while, soem of them are backported to the RELENG_X branch.  The
>>RELENG_X branch changes much slower than the experimental, CURRENT
>>branch, but it does change every time a new feature is backported to
>>Then, when security fixes are made available, they are added both to the
>>RELENG_X branch and the RELENG_X_Y security branches.
>>If all you want is the "frozen" release sources plus changes that are
>>really really necessary, because they fix a serious security bug, you
>>probably want RELENG_X_Y (RELENG_6_0 in this case).
>thank you kindly for your reply, that was quite informative.  ive actually 
>read the document on the differences between the stable, current, and release 
>(or whatever), and find that system quite confusing for the moment.   im sure 
>ill grasp the method of the madness eventually.  i guess what confuses me, is 
>that i read about those, and then try to find them on the ftp sites.  i 
>assume, that only release is made into a .iso file?  and to move to a higher 
>version (either the security RELENG_6_0 or stable RELENG_6), you do this thru 
>the cvsup tool.
>so, by your descriptions and reply to my previous comments, my system that is 
>running what says 6.1-PRERELEASE is really RELENG_6 (stable) ?
>Jonathan Horne

Yes, and furthermore it's a RELENG_6 dated at the exact time of your
last cvsup/build cycle.  The CVS system allows you to check out source
code from any time in the history of the Project's development (and it
would do this for any project that had started out using CVS and continued
to do so consistently, like FreeBSD has).

Leading source code committers are typically always working on the
Next Big Thing(tm), which is known as -HEAD in CVS, and often called
(and officially, even, called) -CURRENT in FreeBSD.  Most users, though,
are using the Last Big Thing(tm), known as -STABLE.

In -CURRENT, I assume, the committers are doing wacko stuff to try
and make FreeBSD into a new version of the Six Million Dollar Man,
so once in a while, -CURRENT won't compile, because someone was
typing whilst they should be sleeping, and made a mistake, or, something
else happens.  In -STABLE, they don't try much "new" stuff, just fixing
bugs, or, as Giorgos pointed out, taking things that have proven themselves
in CURRENT, things that users are clamoring for (sometimes) and "back 
them to the older branch.

1.X -------->
       2.X ---------------------->
                        3.X --------->
                                      4.X ------------------------------->
    6.X ------------->
               7.X ------------->

So, back in 1993, users were using 1.0, and the developers were
working furiously to prepare the "next version", which came to
be 2.0.  During this time, 1.1, 1.1.5, and were released
for general use, and, spurred on by daemons the likes of which
New Jersey has ever known, the developers readied 2.0.

Once 2.0 was released, these crazy developers moved immediately
to the "ng", and 2.x became the "STABLE" branch, the maintenance
branch, the code that users were using to build the WWW, as 'twere;
somebody can remind me, I guess --- the world record FTP server
was a 2.X machine, right?  (Gee, am I too lazy to Google, now?)

So, at that time, 3.X became -CURRENT, and 2.X became -STABLE,
and 1.X began to go the way of the dinosaur.

This cycle repeats itself each time a "really new" or "major release"
occurs; ATM there are, actually, two elder STABLES hanging about,
besides 6-STABLE (5-STABLE and 4-STABLE are still supported,
to some extent).  At the present time the HEAD or CURRENT stream
is the "7" series; it's possible that some dreamer is envisioning
what "8" might look like, but I kinda doubt it, since there's
plenty of work to do on 7-CURRENT, and keeping 6-STABLE going,
and patching any security issues in 5.X, 4.X, etc....

Incidentally, but perhaps of value: regarding the RELEASE tag,
these are simply "cuts" from the -STABLE line that are polished
up (by going into a "code freeze" during which only critical bug
fixes are committed to -STABLE) and then running the release(7)
tools to create the crunched binaries, FTP directory structure,
and CDROM ISO's.  An announcement is made to the entire world
(well, those who are paying attention, anyway), and a new "point
$n" release is created.  The Release Engineering (releng) team
is about ready to do this again in the 6-STABLE branch, which is
why your CVSupped and recompiled system states "PRELEASE"
in the output of uname....

It's somewhat interesting (to me) that the even numbered releases
seem to have had longer and perhaps more successful runs than the
odd numbered ones.  5.X, in particular, seemed short to me.  If
I remember my reading of the history, 1.X was short because of
the AT&T lawsuit/settlement.  You can read more of this, in graphic
form, under /usr/share/misc/bsd-family-tree  ....

And then, on April 1, 2006, 2.2.9 was released ... (j/k, but it was
a pretty good joke, Scott, if you're reading this immense missive).

Bah, enough of my rambling .... 


Kevin Kinsey

Usage: fortune -P [] -a [xsz] [Q: [file]] [rKe9] -v6[+] dataspec ... inputdir

More information about the freebsd-questions mailing list