Minor updates to reflect the last year of changes.

This commit is contained in:
Mark Linimon 2009-06-14 06:02:09 +00:00
parent 16c41b4af3
commit 6e8d721dc4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=34448

View file

@ -70,7 +70,8 @@
<listitem><para>right after release time, for the
<literal>-STABLE</literal> branches</para></listitem>
<listitem><para>every month or so, for <literal>-CURRENT</literal>
<listitem><para>periodically to test changes to
<literal>-CURRENT</literal>
</para></listitem>
<listitem><para>for experimental builds</para></listitem>
@ -80,16 +81,15 @@
<sect1 id="management">
<title>Build Client Management</title>
<para>The &i386; clients currently
netboot from <hostid>pointyhat</hostid>; the other clients
are self-hosted. In all cases they set themselves
<para>The &i386; clients co-located with <hostid>pointyhat</hostid>
netboot from it (<replaceable>connected</replaceable> nodes); all
other clients (<replaceable>disconnected</replaceable> nodes)
are either self-hosted or netboot from some other
<literal>pxe</literal> host.
In all cases they set themselves
up at boot-time to prepare to build packages.</para>
<para>Although connected nodes are supported,
<replaceable>disconnected</replaceable> cluster node support has
been added. A disconnected node is
one that does not mount the cluster master via NFS. It could be
a remote node, for example. The cluster master rsync's the
<para>The cluster master <command>rsync</command>s the
interesting data (ports and src trees, bindist tarballs,
scripts, etc.) to disconnected nodes during the node-setup
phase. Then, the disconnected portbuild directory is
@ -141,6 +141,7 @@
<screen>/var/portbuild&prompt.root; <userinput>scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> <replaceable>${buildid}</replaceable></userinput></screen>
<!-- XXX MCL still true? -->
<para>The per-machine tarballs are located in
<filename><replaceable>${arch}</replaceable>/clients</filename>.</para>
@ -454,6 +455,9 @@
<para><command>dopackages.7 sparc64 -finish</command></para>
</example>
<para>Hint: it us usually best to run the <command>dopackages</command>
command inside of <command>screen(1)</command>.</para>
</sect2>
<sect2 id="build-command">
@ -584,6 +588,7 @@
<para>[+] If any of these steps fail, the build will stop
cold in its tracks.</para>
<!-- XXX MCL make.* is obsolete? -->
<para>[++] Status of these steps can be found in
<filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make.[0|1]</filename>,
where <filename>make.0</filename> is the log file used by
@ -677,7 +682,8 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<filename>dopackages</filename> will simply exit.
</para>
<para>If you have to do a <command>cvs update</command> before
<!-- XXX MCL the Makefile part is obsolete? -->
<para>If you have to do a ports tree update before
restarting, you may have to rebuild either <filename>duds</filename>,
<filename>INDEX</filename>, or both. If you are doing the latter
manually, you will also have to rebuild
@ -840,6 +846,7 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<screen>&prompt.user; <userinput>cd <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
&prompt.user; <userinput>find distfiles > distfiles-<replaceable>${release}</replaceable></userinput></screen>
<!-- XXX MCL apparently obsolete -->
<para>This inventory file typically lives in
<filename>i386/<replaceable>${branch}</replaceable></filename>
on the cluster master.</para>
@ -902,7 +909,7 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<itemizedlist>
<listitem>
<para><literal>packages-6.3-release</literal></para>
<para><literal>packages-6.4-release</literal></para>
</listitem>
<listitem>
@ -910,7 +917,7 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
</listitem>
<listitem>
<para><literal>packages-7.0-release</literal></para>
<para><literal>packages-7.2-release</literal></para>
</listitem>
<listitem>
@ -991,9 +998,9 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<para>Experimental patches builds are run from time to time to
new features or bugfixes to the ports infrastructure (i.e.
<literal>bsd.port.mk</literal>), or to test large sweeping
<filename>bsd.port.mk</filename>), or to test large sweeping
upgrades. The current experimental patches branch is
<literal>7-exp</literal> on the &i386;
<literal>7-exp</literal> on the amd64
architecture.</para>
<para>In general, an experimental patches build is run the same
@ -1027,33 +1034,35 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<para>In order to have a good control case with which to compare
failures, you should first do a package build of the branch on
which the experimental patches branch is based for the &i386;
architecture (currently this is <literal>6</literal>). Then, when
architecture (currently this is <literal>7</literal>). Then, when
preparing for the experimental patches build, checkout a ports
tree and a src tree with the same date as was used for the control
build. This will ensure an apples-to-apples comparison
later.</para>
<!-- XXX MCL currently there is only one build cluster
<note><para>One build cluster can do the control build while the other
does the experimental patches build. This can be a great
time-saver.</para></note>
-->
<para>Once the build finishes, compare the control build failures
to those of the experimental patches build. Use the following
commands to facilitate this (this assumes the <literal>6</literal>
branch is the control branch, and the <literal>6-exp</literal>
commands to facilitate this (this assumes the <literal>7</literal>
branch is the control branch, and the <literal>7-exp</literal>
branch is the experimental patches branch):</para>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/6-exp/errors</userinput>
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/6-exp-errs</userinput>
&prompt.user; <userinput>cd /var/portbuild/i386/6/errors</userinput>
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/6-errs</userinput></screen>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/7-exp/errors</userinput>
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/7-exp-errs</userinput>
&prompt.user; <userinput>cd /var/portbuild/i386/7/errors</userinput>
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/7-errs</userinput></screen>
<note><para>If it has been a long time since one of the builds
finished, the logs may have been automatically compressed with
bzip2. In that case, you must use <literal>sort | sed
's,\.bz2,,g'</literal> instead.</para></note>
<screen>&prompt.user; <userinput>comm -3 /tmp/6-errs /tmp/6-exp-errs | less</userinput></screen>
<screen>&prompt.user; <userinput>comm -3 /tmp/7-errs /tmp/7-exp-errs | less</userinput></screen>
<para>This last command will produce a two-column report. The
first column is ports that failed on the control build but not in
@ -1108,7 +1117,7 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
To differentiate between [1] and [2] above, you can do a rebuild
of the affected packages under the control branch:</para>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/6/ports</userinput></screen>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/7/ports</userinput></screen>
<note><para>Be sure to <literal>cvs update</literal> this tree to the same date as
the experimental patches tree.</para></note>
@ -1116,14 +1125,14 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<para>The following command will set up the control branch for
the partial build:</para>
<screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.6 -noportscvs -nobuild -nocvs -nofinish</userinput></screen>
<screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.7 -noportscvs -nobuild -nocvs -nofinish</userinput></screen>
<para>The builds must be performed from the
<literal>packages/All</literal> directory. This directory should
initially be empty except for the Makefile symlink. If this
symlink does not exist, it must be created:</para>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/6/packages/All</userinput>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/7/packages/All</userinput>
&prompt.user; <userinput>ln -sf ../../Makefile .</userinput>
&prompt.user; <userinput>make -k -j&lt;#&gt; &lt;list of packages to build&gt;</userinput></screen>
@ -1812,7 +1821,7 @@ LifeTime(hours) LBA_of_first_error
remapping).</para></listitem>
</itemizedlist>
<para>When a disk has failed, please inform &a.kris; so he can try to get it
replaced.</para>
<para>When a disk has failed, please inform the cluster administrators
so we can try to get it replaced.</para>
</sect1>
</article>