Revert r46484, r46485, r46511, r46512:
The claim that there were no "substantive" commits to this article are made without any knowledge of internals of re@. Several parts of the removed content is still relevant for 8.x, which we do still support. Furthermore, this particular article, outdated or not, falls under RE territory, and these drive-by commits were not approved. Approved by: re (implicit)
This commit is contained in:
parent
a868de680f
commit
dbf9b8e880
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46515
1 changed files with 220 additions and 2 deletions
|
@ -5,6 +5,14 @@
|
||||||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
|
||||||
|
|
||||||
<info><title>&os; Release Engineering</title>
|
<info><title>&os; Release Engineering</title>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<confgroup>
|
||||||
|
<confdates>November 2001</confdates>
|
||||||
|
<conftitle>BSDCon Europe</conftitle>
|
||||||
|
</confgroup>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><personblurb>
|
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><personblurb>
|
||||||
<para>I've been involved in the development of &os; based products
|
<para>I've been involved in the development of &os; based products
|
||||||
|
@ -55,7 +63,12 @@
|
||||||
<para>The development of &os; is a very open process. &os; is
|
<para>The development of &os; is a very open process. &os; is
|
||||||
comprised of contributions from thousands of people around the
|
comprised of contributions from thousands of people around the
|
||||||
world. The &os; Project provides
|
world. The &os; Project provides
|
||||||
<application>Subversion</application>
|
Subversion
|
||||||
|
<footnote>
|
||||||
|
<simpara>
|
||||||
|
Subversion, <uri xlink:href="http://subversion.apache.org">http://subversion.apache.org</uri>
|
||||||
|
</simpara>
|
||||||
|
</footnote>
|
||||||
access to the general public so that
|
access to the general public so that
|
||||||
others can have access to log messages, diffs (patches) between
|
others can have access to log messages, diffs (patches) between
|
||||||
development branches, and other productivity enhancements that
|
development branches, and other productivity enhancements that
|
||||||
|
@ -66,8 +79,18 @@
|
||||||
Therefore only a <quote>select</quote> group of nearly 300 people are
|
Therefore only a <quote>select</quote> group of nearly 300 people are
|
||||||
given write access to the Subversion repository. These
|
given write access to the Subversion repository. These
|
||||||
<link xlink:href="&url.articles.contributors;/article.html#staff-committers">committers</link>
|
<link xlink:href="&url.articles.contributors;/article.html#staff-committers">committers</link>
|
||||||
|
<footnote>
|
||||||
|
<simpara>
|
||||||
|
<link xlink:href="&url.articles.contributors;/article.html#staff-committers">FreeBSD committers</link>
|
||||||
|
</simpara>
|
||||||
|
</footnote>
|
||||||
are usually the people who do the bulk of &os; development. An elected
|
are usually the people who do the bulk of &os; development. An elected
|
||||||
<link xlink:href="&url.base;/administration.html#t-core">Core Team</link>
|
<link xlink:href="&url.base;/administration.html#t-core">Core Team</link>
|
||||||
|
<footnote>
|
||||||
|
<simpara>
|
||||||
|
<link xlink:href="&url.base;/administration.html#t-core">&os; Core Team</link>
|
||||||
|
</simpara>
|
||||||
|
</footnote>
|
||||||
of developers provide some level of direction over the project.</para>
|
of developers provide some level of direction over the project.</para>
|
||||||
|
|
||||||
<para>The rapid pace of <systemitem>&os;</systemitem>
|
<para>The rapid pace of <systemitem>&os;</systemitem>
|
||||||
|
@ -145,6 +168,55 @@
|
||||||
available to keep systems on the
|
available to keep systems on the
|
||||||
<emphasis>releng/<replaceable>X</replaceable>.<replaceable>Y</replaceable></emphasis>
|
<emphasis>releng/<replaceable>X</replaceable>.<replaceable>Y</replaceable></emphasis>
|
||||||
branches updated.</para>
|
branches updated.</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>What this article describes</title>
|
||||||
|
|
||||||
|
<para>The following sections of this article describe:</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><xref linkend="release-proc"/></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The different phases of the release engineering process
|
||||||
|
leading up to the actual system build.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><xref linkend="release-build"/></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>The actual build process.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><xref linkend="extensibility"/></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>How the base release may be extended by third parties.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><xref linkend="lessons-learned"/></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Some of the lessons learned through the release of &os; 4.4.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><xref linkend="future"/></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Future directions of development.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!-- Release Process -->
|
<!-- Release Process -->
|
||||||
|
@ -446,6 +518,18 @@
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para><application>Sysinstall</application> should be updated to note
|
||||||
|
the number of available ports and the amount of disk space required
|
||||||
|
for the Ports Collection.
|
||||||
|
<footnote>
|
||||||
|
<simpara>
|
||||||
|
&os; Ports Collection
|
||||||
|
<uri xlink:href="http://www.FreeBSD.org/ports">http://www.FreeBSD.org/ports</uri>
|
||||||
|
</simpara>
|
||||||
|
</footnote>
|
||||||
|
This information is currently kept in
|
||||||
|
<filename>src/usr.sbin/sysinstall/dist.c</filename>.</para>
|
||||||
|
|
||||||
<para>After the release has been built, a number of files should
|
<para>After the release has been built, a number of files should
|
||||||
be updated to announce the release to the world. These files
|
be updated to announce the release to the world. These files
|
||||||
are relative to <literal>head/</literal> within the
|
are relative to <literal>head/</literal> within the
|
||||||
|
@ -631,6 +715,95 @@
|
||||||
be unwise to distribute binaries that were built on a system
|
be unwise to distribute binaries that were built on a system
|
||||||
with <varname>CPUTYPE</varname> set to a specific
|
with <varname>CPUTYPE</varname> set to a specific
|
||||||
processor.</para></note>
|
processor.</para></note>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Contributed Software (<quote>ports</quote>)</title>
|
||||||
|
|
||||||
|
<para>The <link xlink:href="http://www.FreeBSD.org/ports">&os; Ports
|
||||||
|
collection</link> is a collection of over &os.numports;
|
||||||
|
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 &os;
|
||||||
|
releases.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Release ISOs</title>
|
||||||
|
|
||||||
|
<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
|
||||||
|
discs must contain a <filename>README.TXT</filename> file that
|
||||||
|
explains the contents of the disc, a
|
||||||
|
<filename>CDROM.INF</filename> file that provides meta-data for
|
||||||
|
the disc so that &man.sysinstall.8; can validate and use the
|
||||||
|
contents, and a <filename>filename.txt</filename> file that
|
||||||
|
provides a manifest for the disc. This
|
||||||
|
<emphasis>manifest</emphasis> can be created with a simple
|
||||||
|
command:</para>
|
||||||
|
|
||||||
|
<screen>/stage/cdrom&prompt.root; <userinput>find . -type f | sed -e 's/^\.\///' | sort > filename.txt</userinput></screen>
|
||||||
|
|
||||||
|
<para>The specific requirements of each CD are outlined below.</para>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Disc 1</title>
|
||||||
|
|
||||||
|
<para>The first disc is almost completely created by
|
||||||
|
<command>make
|
||||||
|
release</command>. The only changes
|
||||||
|
that should be made to the <filename>disc1</filename> directory are the addition of
|
||||||
|
a <filename>tools</filename> directory, and as many popular
|
||||||
|
third party software packages as will fit on the disc. The
|
||||||
|
<filename>tools</filename> directory contains software that allow users to create
|
||||||
|
installation floppies from other operating systems. This disc
|
||||||
|
should be made bootable so that users of modern PCs do not
|
||||||
|
need to create installation floppy disks.</para>
|
||||||
|
|
||||||
|
<para>If a custom kernel of &os; is to be included, then
|
||||||
|
&man.sysinstall.8; and &man.release.7; must be updated to
|
||||||
|
include installation instructions. The relevant code is contained
|
||||||
|
in <filename>src/release</filename> and <filename>src/usr.sbin/sysinstall</filename>.
|
||||||
|
Specifically, the file <filename>src/release/Makefile</filename>, and
|
||||||
|
<filename>dist.c</filename>, <filename>dist.h</filename>,
|
||||||
|
<filename>menus.c</filename>, <filename>install.c</filename>, and
|
||||||
|
<filename>Makefile</filename> will need to be updated under
|
||||||
|
<filename>src/usr.sbin/sysinstall</filename>. Optionally, you may choose
|
||||||
|
to update <filename>sysinstall.8</filename>.</para>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Disc 2</title>
|
||||||
|
|
||||||
|
<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 &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>
|
||||||
|
directory.</para>
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
<sect3>
|
||||||
|
<title>Multi-volume support</title>
|
||||||
|
|
||||||
|
<para><application>Sysinstall</application> supports multiple
|
||||||
|
volume package installations. This requires that each disc
|
||||||
|
have an <filename>INDEX</filename> file containing all of the
|
||||||
|
packages on all volumes of a set, along with an extra field
|
||||||
|
that indicates which volume that particular package is on.
|
||||||
|
Each volume in the set must also have the
|
||||||
|
<literal>CD_VOLUME</literal> variable set in the
|
||||||
|
<filename>cdrom.inf</filename> file so that sysinstall can
|
||||||
|
tell which volume is which. When a user attempts to install a
|
||||||
|
package that is not on the current disc, sysinstall will
|
||||||
|
prompt the user to insert the appropriate one.</para>
|
||||||
|
</sect3>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
@ -709,6 +882,13 @@
|
||||||
time, for example make it relative to GMT.</para>
|
time, for example make it relative to GMT.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 xml:id="dist-cdrom">
|
||||||
|
<title>CD-ROM Replication</title>
|
||||||
|
|
||||||
|
<para>Coming soon: Tips for sending &os; ISOs to a replicator
|
||||||
|
and quality assurance measures to be taken.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<!-- Extensibility -->
|
<!-- Extensibility -->
|
||||||
|
@ -727,8 +907,25 @@
|
||||||
certainly encourage innovation in the form of advanced
|
certainly encourage innovation in the form of advanced
|
||||||
installation and administration tools, for example, but we cannot
|
installation and administration tools, for example, but we cannot
|
||||||
be expected to answer questions about it.</para>
|
be expected to answer questions about it.</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Scripting <command>sysinstall</command></title>
|
||||||
|
|
||||||
|
<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
|
||||||
|
<footnote>
|
||||||
|
<simpara>
|
||||||
|
<uri xlink:href="&url.books.handbook;/network-pxe-nfs.html">&url.books.handbook;/network-pxe-nfs.html</uri>
|
||||||
|
</simpara>
|
||||||
|
</footnote>
|
||||||
|
to bootstrap systems from the network.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
<!-- Lessons Learned -->
|
||||||
<sect1 xml:id="lessons-learned">
|
<sect1 xml:id="lessons-learned">
|
||||||
<title>Lessons Learned from &os; 4.4</title>
|
<title>Lessons Learned from &os; 4.4</title>
|
||||||
|
|
||||||
|
@ -771,12 +968,33 @@
|
||||||
using multiple processors in speeding up the <command>make
|
using multiple processors in speeding up the <command>make
|
||||||
release</command> process. If multiple disks are used for
|
release</command> process. If multiple disks are used for
|
||||||
different hierarchies in the &man.chroot.2;
|
different hierarchies in the &man.chroot.2;
|
||||||
environment, then the subversion checkout of the <filename>ports</filename> and <filename>doc</filename> trees
|
environment, then the CVS checkout of the <filename>ports</filename> and <filename>doc</filename> trees
|
||||||
can be happening simultaneously as the <command>make
|
can be happening simultaneously as the <command>make
|
||||||
world</command> on another disk. Using a
|
world</command> on another disk. Using a
|
||||||
<acronym>RAID</acronym> solution (hardware or software) can
|
<acronym>RAID</acronym> solution (hardware or software) can
|
||||||
significantly decrease the overall build time.</para>
|
significantly decrease the overall build time.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Cross-building releases</emphasis> - Building
|
||||||
|
IA-64 or Alpha release on x86 hardware? <command>make
|
||||||
|
TARGET=ia64 release</command>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Regression Testing</emphasis> - We need better
|
||||||
|
automated correctness testing for &os;.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Installation Tools</emphasis> - Our installation
|
||||||
|
program has long since outlived its intended life span.
|
||||||
|
Several projects are under development to provide a more
|
||||||
|
advanced installation mechanism. The libh project was one
|
||||||
|
such project that aimed to provide an intelligent new package
|
||||||
|
framework and GUI installation program.</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
Loading…
Reference in a new issue