Date: Sat, 11 Apr 2015 04:44:59 +0000 (UTC) From: Glen Barber <gjb@FreeBSD.org> To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r46515 - head/en_US.ISO8859-1/articles/releng Message-ID: <201504110444.t3B4ix7j068121@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gjb Date: Sat Apr 11 04:44:58 2015 New Revision: 46515 URL: https://svnweb.freebsd.org/changeset/doc/46515 Log: 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) Modified: head/en_US.ISO8859-1/articles/releng/article.xml Modified: head/en_US.ISO8859-1/articles/releng/article.xml ============================================================================== --- head/en_US.ISO8859-1/articles/releng/article.xml Fri Apr 10 15:54:36 2015 (r46514) +++ head/en_US.ISO8859-1/articles/releng/article.xml Sat Apr 11 04:44:58 2015 (r46515) @@ -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"> <info><title>&os; Release Engineering</title> + + + + <confgroup> + <confdates>November 2001</confdates> + <conftitle>BSDCon Europe</conftitle> + </confgroup> + <authorgroup> <author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><personblurb> <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 comprised of contributions from thousands of people around the 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 others can have access to log messages, diffs (patches) between development branches, and other productivity enhancements that @@ -66,8 +79,18 @@ Therefore only a <quote>select</quote> group of nearly 300 people are given write access to the Subversion repository. These <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 <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> <para>The rapid pace of <systemitem>&os;</systemitem> @@ -145,6 +168,55 @@ available to keep systems on the <emphasis>releng/<replaceable>X</replaceable>.<replaceable>Y</replaceable></emphasis> 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> <!-- Release Process --> @@ -446,6 +518,18 @@ </listitem> </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 be updated to announce the release to the world. These files are relative to <literal>head/</literal> within the @@ -631,6 +715,95 @@ be unwise to distribute binaries that were built on a system with <varname>CPUTYPE</varname> set to a specific 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> </sect1> @@ -709,6 +882,13 @@ time, for example make it relative to GMT.</para> </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> <!-- Extensibility --> @@ -727,8 +907,25 @@ certainly encourage innovation in the form of advanced installation and administration tools, for example, but we cannot 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> +<!-- Lessons Learned --> <sect1 xml:id="lessons-learned"> <title>Lessons Learned from &os; 4.4</title> @@ -771,12 +968,33 @@ using multiple processors in speeding up the <command>make release</command> process. If multiple disks are used for 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 world</command> on another disk. Using a <acronym>RAID</acronym> solution (hardware or software) can significantly decrease the overall build time.</para> </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> </sect1>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504110444.t3B4ix7j068121>