Update FreeBSD versions referenced in Poudriere docs.

Use a macro to link to nullfs(5).

Submitted by:	seanc
Reviewed by:	bcr (mentor)
Differential Revision:	https://reviews.freebsd.org/D14067
This commit is contained in:
Sevan Janiyan 2018-04-06 16:20:13 +00:00
parent e0a0e04fde
commit a7b2a2379b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=51539

View file

@ -417,46 +417,65 @@ SVN_HOST=svn.FreeBSD.org</programlisting>
<application>Poudriere</application> will use for
building:</para>
<screen>&prompt.root; <userinput>poudriere jail -c -j 93Ramd64 -v 9.3-RELEASE -a amd64</userinput></screen>
<screen>&prompt.root; <userinput>poudriere jail -c -j 111Ramd64 -v 11.1-RELEASE -a amd64</userinput></screen>
<para>Fetch a <literal>9.3-RELEASE</literal> for
<para>Fetch a <literal>11.1-RELEASE</literal> for
<literal>amd64</literal> from the <acronym>FTP</acronym>
server given by <varname>FREEBSD_HOST</varname> in
<filename>poudriere.conf</filename>, create the zfs file
system <literal>tank/poudriere/jails/93Ramd64</literal>, mount
it on <filename>/poudriere/jails/93Ramd64</filename> and
extract the <literal>9.3-RELEASE</literal> tarballs into this
system <literal>tank/poudriere/jails/111Ramd64</literal>, mount
it on <filename>/poudriere/jails/111Ramd64</filename> and
extract the <literal>11.1-RELEASE</literal> tarballs into this
file system.</para>
<screen>&prompt.root; <userinput>poudriere jail -c -j 10i386 -v stable/10 -a i386 -m svn+https</userinput></screen>
<screen>&prompt.root; <userinput>poudriere jail -c -j 11i386 -v stable/11 -a i386 -m svn+https</userinput></screen>
<para>Create <literal>tank/poudriere/jails/10i386</literal>,
mount it on <filename>/poudriere/jails/10i386</filename>, then
<para>Create <literal>tank/poudriere/jails/11i386</literal>,
mount it on <filename>/poudriere/jails/11i386</filename>, then
check out the tip of the <application>Subversion</application>
branch of <literal>&os;-10-STABLE</literal> from
branch of <literal>&os;-11-STABLE</literal> from
<literal>SVN_HOST</literal> in
<filename>poudriere.conf</filename> into
<filename>/poudriere/jails/10i386/usr/src</filename>, then
<filename>/poudriere/jails/11i386/usr/src</filename>, then
complete a <buildtarget>buildworld</buildtarget> and install
it into <filename>/poudriere/jails/10i386</filename>.</para>
it into <filename>/poudriere/jails/11i386</filename>.</para>
<tip>
<para>If a specific <application>Subversion</application>
revision is needed, append it to the version string. For
example:</para>
<screen>&prompt.root; <userinput>poudriere jail -c -j 10i386 -v stable/10@123456 -a i386 -m svn+https</userinput></screen>
<screen>&prompt.root; <userinput>poudriere jail -c -j 11i386 -v stable/11@123456 -a i386 -m svn+https</userinput></screen>
</tip>
<note>
<para>While it is possible to build a newer version of &os; on
an older version, most of the time it will not run. For
example, if a <literal>stable/10</literal> jail is needed,
the host will have to run <literal>stable/10</literal> too.
Running <literal>10.0-RELEASE</literal> is not
example, if a <literal>stable/11</literal> jail is needed,
the host will have to run <literal>stable/11</literal> too.
Running <literal>11.0-RELEASE</literal> is not
enough.</para>
</note>
<note>
<para>To create a <application>Poudriere</application> jail
for <literal>12.0-CURRENT</literal>:</para>
<screen>&prompt.root; <userinput>poudriere jail -c -j 12amd64 -v head -a amd64 -m svn+https</userinput></screen>
<para>In order to run a <literal>12.0-CURRENT</literal>
<application>Poudriere</application> jail you must be
running <literal>12.0-CURRENT</literal>. In general, newer
kernels can build and run older jails. For instance, a
<literal>12.0-CURRENT</literal> kernel can build and run a
<literal>11.1-STABLE</literal>
<application>Poudriere</application> jails if the
<literal>COMPAT_FREEBSD11</literal> kernel option was
compiled in (on by default in
<literal>12.0-CURRENT</literal>
<filename>GENERIC</filename> kernel config).</para>
</note>
<caution>
<para>The default <literal>svn</literal> protocol works but is
not very secure. Using <literal>svn+https</literal> along
@ -471,8 +490,8 @@ SVN_HOST=svn.FreeBSD.org</programlisting>
<screen>&prompt.root; <userinput>poudriere jail -l</userinput>
JAILNAME VERSION ARCH METHOD
93Ramd64 9.3-RELEASE amd64 ftp
10i386 10.0-STABLE i386 svn+https</screen>
111Ramd64 11.1-RELEASE amd64 ftp
11i386 11.0-STABLE i386 svn+https</screen>
</sect2>
@ -635,9 +654,9 @@ development - /work/ports</screen>
<para>For example, local modifications to the <package
role="port">www/firefox</package> port located in
<filename>/work/ports/www/firefox</filename> can be tested in
the previously created 9.3-RELEASE jail:</para>
the previously created 11.1-RELEASE jail:</para>
<screen>&prompt.root; <userinput>poudriere testport -j 93Ramd64 -p development -o www/firefox</userinput></screen>
<screen>&prompt.root; <userinput>poudriere testport -j 111Ramd64 -p development -o www/firefox</userinput></screen>
<para>This will build all dependencies of
<application>Firefox</application>. If a dependency has been
@ -648,13 +667,13 @@ development - /work/ports</screen>
built.</para>
<para>The complete build of every port is logged to
<filename>/poudriere/data/logs/bulk/93Ri386-development/<replaceable>build-time</replaceable>/logs</filename>.</para>
<filename>/poudriere/data/logs/bulk/111Ri386-development/<replaceable>build-time</replaceable>/logs</filename>.</para>
<para>The directory name <literal>93Ri386-development</literal>
<para>The directory name <literal>111Ri386-development</literal>
is derived from the arguments to <literal>-j</literal> and
<literal>-p</literal>, respectively. For convenience, a
symbolic link
<filename>/poudriere/data/logs/bulk/93Ri386-development/latest</filename>
<filename>/poudriere/data/logs/bulk/111Ri386-development/latest</filename>
is also maintained. The link points to the latest
<replaceable>build-time</replaceable> directory. Also in this
directory is an <filename>index.html</filename> for observing
@ -666,7 +685,7 @@ development - /work/ports</screen>
the build by adding <option>-i</option> to
<command>testport</command>:</para>
<screen>&prompt.root; <userinput>poudriere testport -j 93Ramd64 -p development -i -o www/firefox</userinput></screen>
<screen>&prompt.root; <userinput>poudriere testport -j 111Ramd64 -p development -i -o www/firefox</userinput></screen>
<para>After the build completes, and regardless of whether it
was successful, a shell is provided within the jail. The
@ -677,16 +696,16 @@ development - /work/ports</screen>
will show the command to run when the jail is no longer
needed. It is then possible to &man.jexec.8; into it:</para>
<screen>&prompt.root; <userinput>poudriere testport -j 93Ramd64 -p development -I -o www/firefox</userinput>
<screen>&prompt.root; <userinput>poudriere testport -j 111Ramd64 -p development -I -o www/firefox</userinput>
[...]
====>> Installing local Pkg repository to /usr/local/etc/pkg/repos
====>> Leaving jail 93Ramd64-development-n running, mounted at /poudriere/data/.m/93Ramd64-development/ref for interactive run testing
====>> To enter jail: jexec 93Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
====>> To stop jail: poudriere jail -k -j 93Ramd64 -p development
&prompt.root; <userinput>jexec 93Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root</userinput>
====>> Leaving jail 111Ramd64-development-n running, mounted at /poudriere/data/.m/111Ramd64-development/ref for interactive run testing
====>> To enter jail: jexec 111Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
====>> To stop jail: poudriere jail -k -j 111Ramd64 -p development
&prompt.root; <userinput>jexec 111Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root</userinput>
&prompt.root; <userinput><replaceable>[do some stuff in the jail]</replaceable></userinput>
&prompt.root; <userinput>exit</userinput>
&prompt.root; <userinput>poudriere jail -k -j 93Ramd64 -p development</userinput>
&prompt.root; <userinput>poudriere jail -k -j 111Ramd64 -p development</userinput>
====>> Umounting file systems</screen>
<para>An integral part of the &os; ports build infrastructure is
@ -729,7 +748,7 @@ development - /work/ports</screen>
an existing directory structure similar to
<varname>PORT_DBDIR</varname>, defaults to
<filename>/var/db/ports</filename> in its configuration
directory. This directory is then nullfs-mounted into the
directory. This directory is then &man.nullfs.5;-mounted into the
jails where the ports and their dependencies are built.
Usually a suitable starting point can be obtained by
recursively copying the existing <varname>PORT_DBDIR</varname>
@ -741,22 +760,22 @@ development - /work/ports</screen>
<literal>-z devset</literal> parameter to the testport
command:</para>
<screen>&prompt.root; <userinput>poudriere testport -j 93Ramd64 -p development -z devset -o www/firefox</userinput></screen>
<screen>&prompt.root; <userinput>poudriere testport -j 111Ramd64 -p development -z devset -o www/firefox</userinput></screen>
<para>This will look for the existence of these directories in
this order:</para>
<itemizedlist>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-development-devset-options</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-development-devset-options</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-devset-options</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-devset-options</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-development-options</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-development-options</filename></para>
</listitem>
<listitem>
@ -768,7 +787,7 @@ development - /work/ports</screen>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-options</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-options</filename></para>
</listitem>
<listitem>
@ -777,7 +796,7 @@ development - /work/ports</screen>
</itemizedlist>
<para>From this list, <application>Poudriere</application>
nullfs-mounts the <emphasis>first existing</emphasis>
&man.nullfs.5;-mounts the <emphasis>first existing</emphasis>
directory tree into the <filename>/var/db/ports</filename>
directory of the build jails. Hence, all custom options are
used for all the ports during this run of
@ -815,7 +834,7 @@ development - /work/ports</screen>
matching a name scheme derived from the command line. For
instance:</para>
<screen>&prompt.root; <userinput>poudriere testport -j 93Ramd64 -p development -z devset -o www/firefox</userinput></screen>
<screen>&prompt.root; <userinput>poudriere testport -j 111Ramd64 -p development -z devset -o www/firefox</userinput></screen>
<para>causes <application>Poudriere</application> to check for
the existence of these files in this order:</para>
@ -834,19 +853,19 @@ development - /work/ports</screen>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-make.conf</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-make.conf</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-development-make.conf</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-development-make.conf</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-devset-make.conf</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-devset-make.conf</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/etc/poudriere.d/93Ramd64-development-devset-make.conf</filename></para>
<para><filename>/usr/local/etc/poudriere.d/111Ramd64-development-devset-make.conf</filename></para>
</listitem>
</itemizedlist>
@ -859,7 +878,7 @@ development - /work/ports</screen>
Special variables, intended to affect only certain jails or
sets can be set in specialised <filename>make.conf</filename>
files, such as
<filename>/usr/local/etc/poudriere.d/93Ramd64-development-devset-make.conf</filename>.</para>
<filename>/usr/local/etc/poudriere.d/111Ramd64-development-devset-make.conf</filename>.</para>
<example xml:id="testing-poudriere-sets-perl">
<title>Using <filename>make.conf</filename> to Change Default