Source string Read only

(itstool) path: tip/para
Context English State
Ports trees without a method, see <xref linkend="testing-poudriere-ports-tree-manual"/>, cannot be updated like this. They must be updated manually by the porter.
Testing Ports
After jails and ports trees have been set up, the result of a contributor's modifications to the ports tree can be tested.
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 11.3-RELEASE jail:
<prompt>#</prompt> <userinput>poudriere testport -j 113Ramd64 -p development -o www/firefox</userinput>
This will build all dependencies of <application>Firefox</application>. If a dependency has been built previously and is still up-to-date, the pre-built package is installed. If a dependency has no up-to-date package, one will be built with default options in a jail. Then <application>Firefox</application> itself is built.
The complete build of every port is logged to <filename>/poudriere/data/logs/bulk/113Ri386-development/<replaceable>build-time</replaceable>/logs</filename>.
The directory name <literal>113Ri386-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/113Ri386-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 the build process with a web browser.
By default, <application>Poudriere</application> cleans up the jails and leaves log files in the directories mentioned above. To ease investigation, jails can be kept running after the build by adding <option>-i</option> to <command>testport</command>:
<prompt>#</prompt> <userinput>poudriere testport -j 113Ramd64 -p development -i -o www/firefox</userinput>
After the build completes, and regardless of whether it was successful, a shell is provided within the jail. The shell is used to investigate further. <application>Poudriere</application> can be told to leave the jail running after the build finishes with <option>-I</option>. <application>Poudriere</application> will show the command to run when the jail is no longer needed. It is then possible to <citerefentry><refentrytitle>jexec</refentrytitle><manvolnum>8</manvolnum></citerefentry> into it:
<prompt>#</prompt> <userinput>poudriere testport -j 113Ramd64 -p development -I -o www/firefox</userinput>
====&gt;&gt; Installing local Pkg repository to /usr/local/etc/pkg/repos
====&gt;&gt; Leaving jail 113Ramd64-development-n running, mounted at /poudriere/data/.m/113Ramd64-development/ref for interactive run testing
====&gt;&gt; To enter jail: jexec 113Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
====&gt;&gt; To stop jail: poudriere jail -k -j 113Ramd64 -p development
<prompt>#</prompt> <userinput>jexec 113Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root</userinput>
<prompt>#</prompt> <userinput><replaceable>[do some stuff in the jail]</replaceable></userinput>
<prompt>#</prompt> <userinput>exit</userinput>
<prompt>#</prompt> <userinput>poudriere jail -k -j 113Ramd64 -p development</userinput>
====&gt;&gt; Umounting file systems
An integral part of the FreeBSD ports build infrastructure is the ability to tweak ports to personal preferences with options. These can be tested with <application>Poudriere</application> as well. Adding the <option>-c</option>:
<prompt>#</prompt> <userinput>poudriere testport -c -o www/firefox</userinput>
Presents the port configuration dialog before the port is built. The ports given after <option>-o</option> in the format <literal><replaceable>category</replaceable>/<replaceable>portname</replaceable></literal> will use the specified options, all dependencies will use the default options. Testing dependent ports with non-default options can be accomplished using sets, see <xref linkend="testing-poudriere-sets"/>.
When testing ports where <filename>pkg-plist</filename> is altered during build depending on the selected options, it is recommended to perform a test run with all options selected <emphasis>and</emphasis> one with all options deselected.
Using Sets
For all actions involving builds, a so-called <emphasis>set</emphasis> can be specified using <literal>-z <replaceable>setname</replaceable></literal>. A set refers to a fully independent build. This allows, for instance, usage of <command>testport</command> with non-standard options for the dependent ports.
To use sets, <application>Poudriere</application> expects 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 <citerefentry><refentrytitle>nullfs</refentrytitle><manvolnum>5</manvolnum></citerefentry>-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> to <filename>/usr/local/etc/poudriere.d/<replaceable>jailname</replaceable>-<replaceable>portname</replaceable>-<replaceable>setname</replaceable>-options</filename>. This is described in detail in <citerefentry vendor="ports"><refentrytitle>poudriere</refentrytitle><manvolnum>8</manvolnum></citerefentry>. For instance, testing <package role="port">www/firefox</package> in a specific set named <literal>devset</literal>, add the <literal>-z devset</literal> parameter to the testport command:
<prompt>#</prompt> <userinput>poudriere testport -j 113Ramd64 -p development -z devset -o www/firefox</userinput>
This will look for the existence of these directories in this order:
From this list, <application>Poudriere</application> <citerefentry><refentrytitle>nullfs</refentrytitle><manvolnum>5</manvolnum></citerefentry>-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 <command>testport</command>.
After the directory structure for a set is provided, the options for a particular port can be altered. For example:
<prompt>#</prompt> <userinput>poudriere options -c www/firefox -z devset</userinput>


No matching activity found.

Browse all component changes


English English
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: tip/para
Source string location
String age
a year ago
Source string age
a year ago
Translation file
books/porters-handbook.pot, string 4061