Start a long-overdue overhaul. Reflect the coming de-orbit burn of 6,

and the move to 8 as the new -stable.  Document the new 'build create'
command.  Update options for kernel config for package build nodes,
including pointing out which options are mandatory.
This commit is contained in:
Mark Linimon 2009-11-12 02:16:22 +00:00
parent 809c8cce40
commit 4099f35796
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=34894

View file

@ -47,14 +47,14 @@
otherwise specified, all paths will be relative to
this location. <replaceable>${arch}</replaceable> will
be used to specify one of the package architectures
(amd64, &i386;, and &sparc64;), and
(amd64, &i386;, ia64, powerpc, and &sparc64;), and
<replaceable>${branch}</replaceable> will be used
to specify the build branch (6, 6-exp, 7, 7-exp, 8, 8-exp).
to specify the build branch (6, 7, 7-exp, 8, 8-exp, 9, 9-exp).
</para>
<note>
<para>Packages are no longer built for Release 4 or 5, nor
for the alpha nor ia64 architectures.</para>
for the alpha architecture.</para>
</note>
<para>The scripts that control all of this live in
@ -141,7 +141,6 @@
<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>
@ -179,13 +178,6 @@
</para>
</listitem>
<listitem>
<para><command>dopackages.6-exp</command> - Perform
a 6.X build with experimental patches
(6-exp branch)
</para>
</listitem>
<listitem>
<para><command>dopackages.7</command> - Perform
a 7.X build
@ -475,6 +467,15 @@
</para>
</listitem>
<listitem>
<para><literal>build create <replaceable>arch</replaceable>
<replaceable>branch</replaceable>
[<replaceable>newid</replaceable>]</literal> - Creates
<replaceable>newid</replaceable> (or a datestamp if not specified).
Only needed when bringing up a new branch or a new architecture.
</para>
</listitem>
<listitem>
<para><literal>build clone <replaceable>arch</replaceable>
<replaceable>branch</replaceable> <replaceable>oldid</replaceable>
@ -633,7 +634,7 @@
<para>To free up resources, you will need to clean up client machines by
running <command>build cleanup</command> command. For example:
<screen>&prompt.user; <userinput>/var/portbuild/scripts/build cleanup i386 6-exp 20080714120411 -full</userinput></screen>
<screen>&prompt.user; <userinput>/var/portbuild/scripts/build cleanup i386 8-exp 20080714120411 -full</userinput></screen>
<para>If you forget to do this, then the old build
<literal>chroot</literal>s will not be cleaned up for 24 hours, and no
@ -656,8 +657,8 @@
will get you a df, and
<screen>allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/6-exp/ports"
allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/6-exp/src"</screen>
<screen>allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports"
allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/8-exp/src"</screen>
are supposed to get rid of the hanging mounts. You will have to
keep doing them since there can be multiple mounts.</para>
@ -665,10 +666,10 @@ allgohans "umount -f pointyhat.freebsd.org:/var/portbuild/i386/6-exp/src"</scree
<note>
<para>Ignore the following:
<screen>umount: pointyhat.freebsd.org:/var/portbuild/i386/6-exp/ports: statfs: No such file or directory
umount: pointyhat.freebsd.org:/var/portbuild/i386/6-exp/ports: unknown file system
umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
/x/tmp/6-exp/chroot/53837/compat/linux/proc: not a file system root directory</screen>
<screen>umount: pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports: statfs: No such file or directory
umount: pointyhat.freebsd.org:/var/portbuild/i386/8-exp/ports: unknown file system
umount: Cleanup of /x/tmp/8-exp/chroot/53837/compat/linux/proc failed!
/x/tmp/8-exp/chroot/53837/compat/linux/proc: not a file system root directory</screen>
The former 2 mean that that client did not have those mounted;
the latter 2 are a bug.</para>
@ -925,7 +926,11 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
</listitem>
<listitem>
<para><literal>packages-8-current</literal></para>
<para><literal>packages-8-stable</literal></para>
</listitem>
<listitem>
<para><literal>packages-9-current</literal></para>
</listitem>
</itemizedlist>
@ -1000,7 +1005,7 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
new features or bugfixes to the ports infrastructure (i.e.
<filename>bsd.port.mk</filename>), or to test large sweeping
upgrades. The current experimental patches branch is
<literal>7-exp</literal> on the amd64
<literal>8-exp</literal> on the amd64
architecture.</para>
<para>In general, an experimental patches build is run the same
@ -1048,21 +1053,21 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<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>7</literal>
branch is the control branch, and the <literal>7-exp</literal>
commands to facilitate this (this assumes the <literal>8</literal>
branch is the control branch, and the <literal>8-exp</literal>
branch is the experimental patches branch):</para>
<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>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/8-exp/errors</userinput>
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/8-exp-errs</userinput>
&prompt.user; <userinput>cd /var/portbuild/i386/8/errors</userinput>
&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/8-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/7-errs /tmp/7-exp-errs | less</userinput></screen>
<screen>&prompt.user; <userinput>comm -3 /tmp/8-errs /tmp/8-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
@ -1117,7 +1122,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/7/ports</userinput></screen>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/8/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>
@ -1125,14 +1130,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.7 -noportscvs -nobuild -nocvs -nofinish</userinput></screen>
<screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.8 -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/7/packages/All</userinput>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/8/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>
@ -1298,11 +1303,16 @@ umount: Cleanup of /x/tmp/6-exp/chroot/53837/compat/linux/proc failed!
<para>Generate a kernel config file. Include
<literal>GENERIC</literal> (or, if you are using more than
3.5G on &i386;, <literal>PAE</literal>).
</para>
<para>
Required options:<screen>
options NULLFS
options TMPFS</screen>
</para>
<para>
Suggested options:<screen>
options GEOM_CONCAT
options GEOM_STRIPE
options NULLFS
options TMPFS
options SHMMAXPGS=65536
options SEMMNI=40
options SEMMNS=240
@ -1314,7 +1324,8 @@ options PRINTF_BUFR_SIZE=128</screen>
</para>
<para>For <literal>PAE</literal>, it is not currently possible
to load modules. Therefore, you will need to add:<screen>
to load modules. Therefore, if you are running an architecture
that supports Linux emulation, you will need to add:<screen>
options COMPAT_LINUX
options LINPROCFS</screen>
</para>