Replace most of the static 'FreeBSD' instances with &os;

While updating the Greek translation of the 'releng' article, I noticed
many places where 'FreeBSD' could be replaced by &os;.  This article
includes a few bits that are pretty FreeBSD-specific, but the general
idea of keeping a stable/current branch is relatively system-, type- and
version-agnostic.  Using &os; is ok almost everywhere.

Reviewed by:	manolis
This commit is contained in:
Giorgos Keramidas 2009-06-24 22:24:58 +00:00
parent 155acfaf5b
commit d569783d08
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=34479

View file

@ -9,7 +9,7 @@
]>
<article>
<title>FreeBSD Release Engineering</title>
<title>&os; Release Engineering</title>
<articleinfo>
<!-- This paper was presented at BSDCon Europe in Brighton, UK on
@ -24,9 +24,9 @@
<firstname>Murray</firstname>
<surname>Stokely</surname>
<authorblurb>
<para>I've been involved in the development of FreeBSD based products
<para>I've been involved in the development of &os; based products
since 1997 at Walnut Creek CDROM, BSDi, and now Wind River Systems.
FreeBSD 4.4 was the first official release of FreeBSD that I played
&os; 4.4 was the first official release of &os; that I played
a significant part in.</para>
</authorblurb>
<affiliation>
@ -48,11 +48,11 @@
</legalnotice>
<abstract>
<para>This paper describes the approach used by the FreeBSD
<para>This paper describes the approach used by the &os;
release engineering team to make production quality releases
of the FreeBSD Operating System. It details the methodology
used for the official FreeBSD releases and describes the tools
available for those interested in producing customized FreeBSD
of the &os; Operating System. It details the methodology
used for the official &os; releases and describes the tools
available for those interested in producing customized &os;
releases for corporate rollouts or commercial
productization.</para>
</abstract>
@ -63,54 +63,54 @@
<sect1 id="introduction">
<title>Introduction</title>
<para>The development of FreeBSD is a very open process. FreeBSD is
<para>The development of &os; is a very open process. &os; is
comprised of contributions from thousands of people around the
world. The FreeBSD Project provides anonymous
world. The &os; Project provides anonymous
<acronym>CVS</acronym>[1] access to the general public so that
others can have access to log messages, diffs (patches) between
development branches, and other productivity enhancements that
formal source code management provides. This has been a huge help
in attracting more talented developers to FreeBSD. However, I
in attracting more talented developers to &os;. However, I
think everyone would agree that chaos would soon manifest if write
access was opened up to everyone on the Internet. Therefore only
a <quote>select</quote> group of nearly 300 people are given write
access to the <acronym>CVS</acronym> repository. These
<emphasis>committers[5]</emphasis> are responsible for the bulk of
FreeBSD development. An elected <emphasis>core-team[6]</emphasis>
&os; development. An elected <emphasis>core-team[6]</emphasis>
of very senior developers provides some level of direction over
the project.</para>
<para>The rapid pace of <systemitem
class="osname">FreeBSD</systemitem> development leaves little time
class="osname">&os;</systemitem> development leaves little time
for polishing the development system into a production quality
release. To solve this dilemma, development continues on two
parallel tracks. The main development branch is the
<emphasis>HEAD</emphasis> or <emphasis>trunk</emphasis> of our CVS
tree, known as <quote>FreeBSD-CURRENT</quote> or
tree, known as <quote>&os;-CURRENT</quote> or
<quote>-CURRENT</quote> for short.</para>
<para>A more stable branch is maintained, known as
<quote>FreeBSD-STABLE</quote> or <quote>-STABLE</quote> for short.
<quote>&os;-STABLE</quote> or <quote>-STABLE</quote> for short.
Both branches live in a master CVS repository in California and
are replicated via <application
class="software">CVSup</application>[2] to mirrors all over the
world. FreeBSD-CURRENT[7] is the <quote>bleeding-edge</quote> of
FreeBSD development where all new changes first enter the system.
FreeBSD-STABLE is the development branch from which major releases
world. &os;-CURRENT[7] is the <quote>bleeding-edge</quote> of
&os; development where all new changes first enter the system.
&os;-STABLE is the development branch from which major releases
are made. Changes go into this branch at a different pace, and
with the general assumption that they have first gone into
FreeBSD-CURRENT and have been thoroughly tested by our user
&os;-CURRENT and have been thoroughly tested by our user
community.</para>
<para>In the interim period between releases, monthly snapshots are
built automatically by the FreeBSD Project build machines and made
built automatically by the &os; Project build machines and made
available for download from <systemitem
class="resource">ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/</systemitem>.
The widespread availability of binary release snapshots, and the
tendency of our user community to keep up with -STABLE development
with CVSup and <quote><command>make</command>
<maketarget>world</maketarget></quote>[7] helps to keep
FreeBSD-STABLE in a very reliable condition even before the
&os;-STABLE in a very reliable condition even before the
quality assurance activities ramp up pending a major
release.</para>
@ -121,11 +121,11 @@
interface provided at <ulink
url="http://www.FreeBSD.org/send-pr.html"></ulink>.
In addition to the multitude of different technical mailing lists
about FreeBSD, the &a.qa; provides a forum for discussing the finer
about &os;, the &a.qa; provides a forum for discussing the finer
points of <quote>release-polishing</quote>.</para>
<para>To service our most conservative users, individual release
branches were introduced with FreeBSD 4.3.
branches were introduced with &os; 4.3.
These release branches are created shortly before a final release
is made. After the release goes out, only the most critical
security fixes and additions are merged onto the release branch.
@ -188,8 +188,8 @@
<sect1 id="release-proc">
<title>Release Process</title>
<para>New releases of FreeBSD are released from the -STABLE branch
at approximately four month intervals. The FreeBSD release
<para>New releases of &os; are released from the -STABLE branch
at approximately four month intervals. The &os; release
process begins to ramp up 45 days before the anticipated release
date when the release engineer sends an email to the development
mailing lists to remind developers that they only have 15 days to
@ -291,7 +291,7 @@
vernacular for a label that identifies the source at a specific point
in time. By tagging the tree, we ensure that future release builders
will always be able to use the same source we used to create the
official FreeBSD Project releases.</para>
official &os; Project releases.</para>
</sidebar>
<mediaobject>
@ -300,7 +300,7 @@
</imageobject>
<textobject>
<phrase>FreeBSD Development Branch</phrase>
<phrase>&os; Development Branch</phrase>
</textobject>
</mediaobject>
@ -310,7 +310,7 @@
</imageobject>
<textobject>
<phrase>FreeBSD 3.x STABLE Branch</phrase>
<phrase>&os; 3.x STABLE Branch</phrase>
</textobject>
</mediaobject>
@ -320,7 +320,7 @@
</imageobject>
<textobject>
<phrase>FreeBSD 4.x STABLE Branch</phrase>
<phrase>&os; 4.x STABLE Branch</phrase>
</textobject>
</mediaobject>
@ -330,7 +330,7 @@
</imageobject>
<textobject>
<phrase>FreeBSD 5.x STABLE Branch</phrase>
<phrase>&os; 5.x STABLE Branch</phrase>
</textobject>
</mediaobject>
@ -340,7 +340,7 @@
</imageobject>
<textobject>
<phrase>FreeBSD 6.x STABLE Branch</phrase>
<phrase>&os; 6.x STABLE Branch</phrase>
</textobject>
</mediaobject>
@ -350,7 +350,7 @@
</imageobject>
<textobject>
<phrase>FreeBSD 7.x STABLE Branch</phrase>
<phrase>&os; 7.x STABLE Branch</phrase>
</textobject>
</mediaobject>
</sect3>
@ -360,7 +360,7 @@
<para>Before the final release can be tagged, built, and
released, the following files need to be modified to reflect
the correct version of FreeBSD:</para>
the correct version of &os;:</para>
<itemizedlist>
<listitem>
@ -538,7 +538,7 @@ applicable.</para>
allows tags to be manipulated with <command>cvs
tag -d <replaceable>tagname filename</replaceable></command>.
It is very important that any last minute changes be tagged
appropriately as part of the release. FreeBSD releases must
appropriately as part of the release. &os; releases must
always be reproducible. Local hacks in the release
engineer's environment are not acceptable.</para>
</sect3>
@ -549,7 +549,7 @@ applicable.</para>
<sect1 id="release-build">
<title>Release Building</title>
<para>FreeBSD <quote>releases</quote> can be built by anyone with a
<para>&os; <quote>releases</quote> can be built by anyone with a
fast machine and access to a source repository. (That should be
everyone, since we offer anonymous CVS! See The Handbook for
details.) The <emphasis>only</emphasis> special requirement is
@ -561,7 +561,7 @@ applicable.</para>
during the boot media creation phase. All of the tools necessary
to build a release are available from the CVS repository in
<filename>src/release</filename>. These tools aim to provide a
consistent way to build FreeBSD releases. A complete release can
consistent way to build &os; releases. A complete release can
actually be built with only a single command, including the
creation of <acronym>ISO</acronym> images suitable for burning to
CDROM, installation floppies, and an FTP install directory. This
@ -617,7 +617,7 @@ applicable.</para>
<para>There are many other variables available to customize the
release build. Most of these variables are documented at the
top of <filename>src/release/Makefile</filename>. The exact
command used to build the official FreeBSD 4.7 (x86) release
command used to build the official &os; 4.7 (x86) release
was:</para>
<screen><command>make <literal>release CHROOTDIR=/local3/release \
@ -717,7 +717,7 @@ applicable.</para>
<title>Building <application>&xfree86;</application></title>
<para><application>&xfree86;</application> is an important component for many desktop users.
Prior to FreeBSD 4.6-RELEASE, releases used &xfree86;
Prior to &os; 4.6-RELEASE, releases used &xfree86;
3.<replaceable>X</replaceable> by default.
The easiest way to build these versions is to use the
<filename>src/release/scripts/X11/build_x.sh</filename> script.
@ -728,13 +728,13 @@ applicable.</para>
<filename>XF86336</filename> directory of the installation
media.</para>
<para>Beginning with FreeBSD 4.6-RELEASE, &man.sysinstall.8;
<para>Beginning with &os; 4.6-RELEASE, &man.sysinstall.8;
installs &xfree86; 4.<replaceable>X</replaceable> by default, as a
set of <quote>normal</quote> packages. These can either be the
packages generated by the package-building cluster or packages
built from an appropriately tagged ports tree.</para>
<para>Beginning with FreeBSD 5.3-RELEASE, &man.sysinstall.8;
<para>Beginning with &os; 5.3-RELEASE, &man.sysinstall.8;
installs &xorg; packages instead of &xfree86; packages by
default.</para>
@ -749,11 +749,11 @@ applicable.</para>
<sect2>
<title>Contributed Software (<quote>ports</quote>)</title>
<para>The <ulink url="http://www.FreeBSD.org/ports">FreeBSD Ports
<para>The <ulink url="http://www.FreeBSD.org/ports">&os; Ports
collection</ulink> is a collection of over &os.numports;
third-party software packages available for FreeBSD. The &a.portmgr;
third-party software packages available for &os;. The &a.portmgr;
is responsible for maintaining a consistent ports tree that can be used
to create the binary packages that accompany official FreeBSD
to create the binary packages that accompany official &os;
releases.</para>
<para>The release engineering activities for our collection of
@ -766,7 +766,7 @@ applicable.</para>
<sect2>
<title>Release ISOs</title>
<para>Starting with FreeBSD 4.4, the FreeBSD Project decided to
<para>Starting with &os; 4.4, the &os; Project decided to
release all four ISO images that were previously sold on the
<emphasis>BSDi/Wind River Systems/FreeBSD Mall</emphasis>
<quote>official</quote> CDROM distributions. Each of the four
@ -813,7 +813,7 @@ applicable.</para>
<para>The second disc is also largely created by <command>make
release</command>. This disc contains a <quote>live
filesystem</quote> that can be used from &man.sysinstall.8; to
troubleshoot a FreeBSD installation. This disc should be
troubleshoot a &os; installation. This disc should be
bootable and should also contain a compressed copy of the CVS
repository in the <filename>CVSROOT</filename> directory and
commercial software demos in the <filename>commerce</filename>
@ -824,7 +824,7 @@ applicable.</para>
<title>Discs 3 and 4</title>
<para>The remaining two discs contain additional software
packages for FreeBSD. The packages should be clustered so that
packages for &os;. The packages should be clustered so that
a package and all of its <emphasis>dependencies</emphasis> are
included on the same disc. More information about the
creation of these discs is provided in the &art.re.pkgs;
@ -858,7 +858,7 @@ applicable.</para>
<para>When the release has been thoroughly tested and packaged for
distribution, the master FTP site must be updated. The official
FreeBSD public FTP sites are all mirrors of a master server that
&os; public FTP sites are all mirrors of a master server that
is open only to other FTP sites. This site is known as
<hostid>ftp-master</hostid>. When the release is ready, the
following files must be modified on <hostid>ftp-master</hostid>:</para>
@ -903,8 +903,8 @@ applicable.</para>
</variablelist>
<para>For more information about the distribution mirror
architecture of the FreeBSD FTP sites, please see the <ulink
url="&url.articles.hubs;/">Mirroring FreeBSD</ulink> article.</para>
architecture of the &os; FTP sites, please see the <ulink
url="&url.articles.hubs;/">Mirroring &os;</ulink> article.</para>
<para>It may take many hours to two days after updating
<hostid>ftp-master</hostid> before a majority of the Tier-1 FTP
@ -928,7 +928,7 @@ applicable.</para>
<sect2 id="dist-cdrom">
<title>CD-ROM Replication</title>
<para>Coming soon: Tips for sending FreeBSD ISOs to a replicator
<para>Coming soon: Tips for sending &os; ISOs to a replicator
and quality assurance measures to be taken.</para>
</sect2>
@ -938,14 +938,14 @@ applicable.</para>
<sect1 id="extensibility">
<title>Extensibility</title>
<para>Although FreeBSD forms a complete operating system, there is
<para>Although &os; forms a complete operating system, there is
nothing that forces you to use the system exactly as we have
packaged it up for distribution. We have tried to design the
system to be as extensible as possible so that it can serve as a
platform that other commercial products can be built on top
of. The only <quote>rule</quote> we have about this is that if you
are going to distribute FreeBSD with non-trivial changes, we
encourage you to document your enhancements! The FreeBSD community
are going to distribute &os; with non-trivial changes, we
encourage you to document your enhancements! The &os; community
can only help support users of the software we provide. We
certainly encourage innovation in the form of advanced
installation and administration tools, for example, but we cannot
@ -1002,7 +1002,7 @@ applicable.</para>
<sect2>
<title>Scripting <command>sysinstall</command></title>
<para>The FreeBSD system installation and configuration tool,
<para>The &os; system installation and configuration tool,
&man.sysinstall.8;, can be scripted to provide automated installs
for large sites. This functionality can be used in conjunction
with &intel; PXE[12] to bootstrap systems from the network, or
@ -1014,11 +1014,11 @@ applicable.</para>
<!-- Lessons Learned -->
<sect1 id="lessons-learned">
<title>Lessons Learned from FreeBSD 4.4</title>
<title>Lessons Learned from &os; 4.4</title>
<para>The release engineering process for 4.4 formally began on
August 1st, 2001. After that date all commits to the
<literal>RELENG_4</literal> branch of FreeBSD had to be explicitly
<literal>RELENG_4</literal> branch of &os; had to be explicitly
approved by the &a.re;. The first
release candidate for the x86 architecture was released on August
16, followed by 4 more release candidates leading up to the final
@ -1029,11 +1029,11 @@ applicable.</para>
little over a month.</para>
<para>Our user community has made it very clear that the security
and stability of a FreeBSD release should not be sacrificed for
any self-imposed deadlines or target release dates. The FreeBSD
and stability of a &os; release should not be sacrificed for
any self-imposed deadlines or target release dates. The &os;
Project has grown tremendously over its lifetime and the need for
standardized release engineering procedures has never been more
apparent. This will become even more important as FreeBSD is
apparent. This will become even more important as &os; is
ported to new platforms.</para>
</sect1>
@ -1043,7 +1043,7 @@ applicable.</para>
<para>It is imperative for our release engineering activities to
scale with our growing userbase. Along these lines we are working
very hard to document the procedures involved in producing FreeBSD
very hard to document the procedures involved in producing &os;
releases.</para>
<itemizedlist>
@ -1071,7 +1071,7 @@ applicable.</para>
<listitem>
<para><emphasis>Regression Testing</emphasis> - We need better
automated correctness testing for FreeBSD.</para>
automated correctness testing for &os;.</para>
</listitem>
<listitem>
@ -1092,14 +1092,14 @@ applicable.</para>
<para>I would like to thank Jordan Hubbard for giving me the
opportunity to take on some of the release engineering
responsibilities for FreeBSD 4.4 and also for all of his work
throughout the years making FreeBSD what it is today. Of course
responsibilities for &os; 4.4 and also for all of his work
throughout the years making &os; what it is today. Of course
the release would not have been possible without all of the
release-related work done by &a.asami;, &a.steve;, &a.bmah;, &a.nik;,
&a.obrien;, &a.kris;, &a.jhb; and the rest of the FreeBSD development
&a.obrien;, &a.kris;, &a.jhb; and the rest of the &os; development
community. I would also like to thank &a.rgrimes;, &a.phk;, and others
who worked on the release engineering tools in the very early days
of FreeBSD. This article was influenced by release engineering
of &os;. This article was influenced by release engineering
documents from the CSRG[13], the NetBSD Project[10], and John
Baldwin's proposed release engineering process notes[11].</para>
</sect1>
@ -1116,17 +1116,17 @@ applicable.</para>
<para>[3] <ulink url="http://pointyhat.FreeBSD.org"></ulink></para>
<para>[4] FreeBSD Ports Collection
<para>[4] &os; Ports Collection
<ulink url="http://www.FreeBSD.org/ports"></ulink></para>
<para>[5] FreeBSD Committers <ulink
<para>[5] &os; Committers <ulink
url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html"></ulink>
</para>
<para>[6] FreeBSD Core Team
<para>[6] &os; Core Team
<ulink url="&url.base;/administration.html#t-core"></ulink></para>
<para>[7] FreeBSD Handbook
<para>[7] &os; Handbook
<ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook"></ulink>
</para>
@ -1134,14 +1134,14 @@ applicable.</para>
<ulink url="http://www.gnu.org/software/gnats"></ulink>
</para>
<para>[9] FreeBSD PR Statistics
<para>[9] &os; PR Statistics
<ulink url="http://www.FreeBSD.org/prstats/index.html"></ulink></para>
<para>[10] NetBSD Developer Documentation: Release Engineering
<ulink url="http://www.NetBSD.org/developers/releng/index.html"></ulink>
</para>
<para>[11] John Baldwin's FreeBSD Release Engineering Proposal
<para>[11] John Baldwin's &os; Release Engineering Proposal
<ulink url="http://people.FreeBSD.org/~jhb/docs/releng.txt"></ulink>
</para>