Source string Read only

(itstool) path: sect2/para
252/2520
Context English State
This will be listed in the table of known trees:
<prompt>#</prompt> <userinput>poudriere ports -l</userinput>
PORTSTREE METHOD TIMESTAMP PATH
development null 2020-07-20 05:06:33 /work/ports
The dash or <literal>null</literal> in the <literal>METHOD</literal> column means that <application>Poudriere</application> will not update or change this ports tree, ever. It is completely up to the user to maintain this tree, including all local modifications that may be used for testing new ports and submitting patches.
Keeping Poudriere Ports Trees Updated
As straightforward as with jails described earlier:
<prompt>#</prompt> <userinput>poudriere ports -u -p <replaceable>PORTSTREE</replaceable></userinput>
Will update the given <replaceable>PORTSTREE</replaceable>, one tree given by the output of <command>poudriere -l</command>, to the latest revision available on the official servers.
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:
<filename>/usr/local/etc/poudriere.d/113Ramd64-development-devset-options</filename>
<filename>/usr/local/etc/poudriere.d/113Ramd64-devset-options</filename>
<filename>/usr/local/etc/poudriere.d/113Ramd64-development-options</filename>

Loading…

No matching activity found.

Browse all component changes

Glossary

English English
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: sect2/para
Flags
read-only
Source string location
book.translate.xml:19413
String age
a year ago
Source string age
a year ago
Translation file
books/porters-handbook.pot, string 4054