Add two new sections: "How to configure a new branch" and "How to

configure a new architecture".
This commit is contained in:
Mark Linimon 2009-11-26 08:05:51 +00:00
parent 91655e4165
commit f572aad63e
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=34954

View file

@ -1778,6 +1778,9 @@ ssh_cmd="/usr/local/bin/ssh"
<para>
<literal>data_source "<replaceable>arch</replaceable>/<replaceable>location</replaceable> Package Build Cluster" 30 <replaceable>hostname</replaceable></literal>
</para>
<para>You will need to restart <filename>gmetad</filename>.
</para>
</step>
</procedure>
@ -1843,6 +1846,216 @@ ssh_cmd="/usr/local/bin/ssh"
</sect1>
<sect1 id="new-branch">
<title>How to configure a new &os; branch</title>
<para>When a new branch is created, some work needs to
be done to specify that the previous branch is no longer
equivalent to <literal>HEAD</literal>. The following
instructions apply to the <emphasis>previous</emphasis>
branch number:</para>
<itemizedlist>
<listitem>
<para>Create a new <application>zfs</application> filesystem
for sources:
<screen>zfs create a/snap/src-<replaceable>branch</replaceable></screen>
</para>
</listitem>
<listitem>
<para>Checkout a <literal>src</literal> tree in the new filesystem:
<screen>cvs -Rq -d /r/ncvs co -r RELENG-<replaceable>branch</replaceable></screen>
</para>
</listitem>
<listitem>
<para>Edit the master copy of
<filename>Tools/portbuild/portbuild.conf</filename>.</para>
</listitem>
<listitem>
<para>For each arch, edit its copy of the above in
<filename>/var/portbuild/<replaceable>arch</replaceable>/portbuild.conf</filename>.</para>
</listitem>
<listitem>
<para>Edit <filename>/var/portbuild/scripts/buildenv</filename>.</para>
</listitem>
<listitem>
<para>Add a link from
<filename>/var/portbuild/scripts/dopackages</filename> to
<filename>/var/portbuild/scripts/dopackages.<replaceable>branch</replaceable></filename>.
</listitem>
<listitem>
<para>Modify <makevar>HEAD_BRANCH</makevar> and
<makevar>NON_HEAD_BRANCHES</makevar> in
<filename>/var/portbuild/scripts/updatesnap</filename>.</para>
</listitem>
<listitem>
<para>Add the <literal>snap</literal> directory to
<filename>/var/portbuild/scripts/zexpire</filename>.</para>
</listitem>
<listitem>
<para>In the <filename>/var/portbuild/errorlogs/</filename>
directory, create links for the webserver:<screen>
ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/errors <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-full
ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/bak/logs <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-full-logs
ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/errors <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-latest
ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/logs <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-latest-logs
ln -s ../<replaceable>arch</replaceable>/<replaceable>branch</replaceable>/builds/latest/packages <replaceable>arch</replaceable>-<replaceable>branch</replaceable>-packages-latest</screen>
</para>
</listitem>
<listitem>
<para>Kick-start the build for the branch with
<screen>build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen>
</listitem>
<listitem>
<para><link linkend="setup">Create <filename>bindist.tar</filename>
</link>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="new-arch">
<title>How to configure a new architecture</title>
<itemizedlist>
<listitem>
<para>Create a new
<literal>ports-<replaceable>arch</replaceable></literal>
user and group.</para>
</listitem>
<listitem>
<screen>mkdir /var/portbuild/<replaceable>arch</replaceable></screen>
</listitem>
<listitem>
<para>Create a new <application>zfs</application> filesystem
for backups:
<screen>zfs create -o mountpoint=/a/portbuild/<replaceable>arch</replaceable> a/portbuild/<replaceable>arch</replaceable></screen>
</para>
</listitem>
<listitem>
<para>Create a link for the webserver:
<screen>ln -s /dumpster/pointyhat/<replaceable>arch</replaceable>/archive archive</screen>
</para>
</listitem>
<listitem>
<para>In the
<filename>/var/portbuild/<replaceable>arch</replaceable></filename>
directory:<screen>mkdir clients</screen></para>
</listitem>
<listitem>
<para>Populate <filename>clients</filename> as usual.</para>
</listitem>
<listitem>
<para><screen>mkdir loads</screen></para>
</listitem>
<listitem>
<para><screen>ln ../make.conf ./make.conf</screen></para>
</listitem>
<listitem>
<para>Create an empty <filename>mlist</filename> file.</para>
</listitem>
<listitem>
<para>(TBD if still needed?) Create
<filename>pnohang.<replaceable>arch</replaceable></filename>.</para>
</listitem>
<listitem>
<para>Create a fresh <filename>portbuild.conf</filename> file
from one of the others.</para>
</listitem>
<listitem>
<para>Create customized
<filename>portbuild.<replaceable>machinename</replaceable>.conf</filename>
files as appropriate.</para>
</listitem>
<listitem>
<para><screen>cd .ssh && ssh-keygen</screen></para>
</listitem>
<listitem>
<para>Edit the <filename>.ssh/config</filename> file for
convenience in using <application>ssh</application>.</para>
</listitem>
<listitem>
<para>Make the private configuration directory:
<screen>mkdir /var/portbuild/conf/<replaceable>arch</replaceable></screen>
</para>
</listitem>
<listitem>
<para>In that directory: create any <filename>dotunnel.*</filename>
scripts needed.</para>
</listitem>
<listitem>
<para>Create a link for backups:
<screen>mkdir /dumpster/pointyhat/<replaceable>arch</replaceable>/archive</screen>
</para>
</listitem>
<listitem>
<para>Tell <application>qmanager</application> about the arch:
<screen>python /var/portbuild/evil/qmanager/qclient add_acl name=ports-<replaceable>arch</replaceable> uidlist=ports-<replaceable>arch</replaceable> gidlist=portmgr sense=1</screen></para>
</listitem>
<listitem>
<para>Edit <filename>/var/portbuild/scripts/buildenv</filename>.</para>
</listitem>
<listitem>
<para>Add the <replaceable>arch</replaceable> directory to
<filename>/var/portbuild/scripts/zbackup</filename> and
<filename>/var/portbuild/scripts/zexpire</filename>.</para>
</listitem>
<listitem>
<para>For each branch that will be supported, do the following:
</para>
<itemizedlist>
<listitem>
<para>Kick-start the build for the branch with
<screen>build create <replaceable>arch</replaceable> <replaceable>branch</replaceable></screen>
</listitem>
<listitem>
<para><link linkend="setup">Create
<filename>bindist.tar</filename></link>.</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>Only after the first time a
<application>dopackages</application> has been run for the
arch: add the arch to
<filename>/var/portbuild/scripts/dopackagestats</filename>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="disk-failure">
<title>Procedures for dealing with disk failures</title>