Changeset View
Changeset View
Standalone View
Standalone View
documentation/content/en/books/porters-handbook/testing/_index.adoc
Show First 20 Lines • Show All 197 Lines • ▼ Show 20 Lines | |||||
.... | .... | ||||
# poudriere jail -c -j 114Ramd64 -v 11.4-RELEASE -a amd64 | # poudriere jail -c -j 114Ramd64 -v 11.4-RELEASE -a amd64 | ||||
.... | .... | ||||
Fetch a `11.4-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#, create the zfs file system `tank/poudriere/jails/114Ramd64`, mount it on [.filename]#/poudriere/jails/114Ramd64# and extract the `11.4-RELEASE` tarballs into this file system. | Fetch a `11.4-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#, create the zfs file system `tank/poudriere/jails/114Ramd64`, mount it on [.filename]#/poudriere/jails/114Ramd64# and extract the `11.4-RELEASE` tarballs into this file system. | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere jail -c -j 11i386 -v stable/11 -a i386 -m svn+https | # poudriere jail -c -j 11i386 -v stable/11 -a i386 -m git+https | ||||
.... | .... | ||||
Create `tank/poudriere/jails/11i386`, mount it on [.filename]#/poudriere/jails/11i386#, then check out the tip of the Subversion branch of `FreeBSD-11-STABLE` from `SVN_HOST` in [.filename]#poudriere.conf# into [.filename]#/poudriere/jails/11i386/usr/src#, then complete a `buildworld` and install it into [.filename]#/poudriere/jails/11i386#. | Create `tank/poudriere/jails/11i386`, mount it on [.filename]#/poudriere/jails/11i386#, then check out the tip of the Subversion branch of `FreeBSD-11-STABLE` from `SVN_HOST` in [.filename]#poudriere.conf# into [.filename]#/poudriere/jails/11i386/usr/src#, then complete a `buildworld` and install it into [.filename]#/poudriere/jails/11i386#. | ||||
[TIP] | [TIP] | ||||
==== | ==== | ||||
If a specific Subversion revision is needed, append it to the version string. For example: | If a specific Subversion revision is needed, append it to the version string. For example: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere jail -c -j 11i386 -v stable/11@123456 -a i386 -m svn+https | # poudriere jail -c -j 11i386 -v stable/11@123456 -a i386 -m git+https | ||||
.... | .... | ||||
==== | ==== | ||||
[NOTE] | [NOTE] | ||||
==== | ==== | ||||
While it is possible to build a newer version of FreeBSD on an older version, most of the time it will not run. For example, if a `stable/11` jail is needed, the host will have to run `stable/11` too. Running `11.4-RELEASE` is not enough. | While it is possible to build a newer version of FreeBSD on an older version, most of the time it will not run. For example, if a `stable/11` jail is needed, the host will have to run `stable/11` too. Running `11.4-RELEASE` is not enough. | ||||
==== | ==== | ||||
[NOTE] | [NOTE] | ||||
==== | ==== | ||||
To create a Poudriere jail for `14.0-CURRENT`: | To create a Poudriere jail for `14.0-CURRENT`: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere jail -c -j 13amd64 -v head -a amd64 -m svn+https | # poudriere jail -c -j 14amd64 -v main -a amd64 -m git+https | ||||
.... | .... | ||||
In order to run a `14.0-CURRENT` Poudriere jail you must be running `14.0-CURRENT`. In general, newer kernels can build and run older jails. For instance, a `14.0-CURRENT` kernel can build and run a `11.4-STABLE` Poudriere jail if the `COMPAT_FREEBSD11` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config). | In order to run a `14.0-CURRENT` Poudriere jail you must be running `14.0-CURRENT`. In general, newer kernels can build and run older jails. For instance, a `14.0-CURRENT` kernel can build and run a `11.4-STABLE` Poudriere jail if the `COMPAT_FREEBSD11` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config). | ||||
==== | ==== | ||||
[CAUTION] | [CAUTION] | ||||
==== | ==== | ||||
Show All 20 Lines | |||||
# poudriere jail -u -j JAILNAME | # poudriere jail -u -j JAILNAME | ||||
.... | .... | ||||
updates the specified jail to the latest version available. For FreeBSD releases, update to the latest patchlevel with man:freebsd-update[8]. For FreeBSD versions built from source, update to the latest Subversion revision in the branch. | updates the specified jail to the latest version available. For FreeBSD releases, update to the latest patchlevel with man:freebsd-update[8]. For FreeBSD versions built from source, update to the latest Subversion revision in the branch. | ||||
[TIP] | [TIP] | ||||
==== | ==== | ||||
For jails employing a `svn+*` method, it is helpful to add `-J _NumberOfParallelBuildJobs_` to speed up the build by increasing the number of parallel compile jobs used. For example, if the building machine has 6 CPUs, use: | For jails employing a `git+*` method, it is helpful to add `-J _NumberOfParallelBuildJobs_` to speed up the build by increasing the number of parallel compile jobs used. For example, if the building machine has 6 CPUs, use: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere jail -u -J 6 -j JAILNAME | # poudriere jail -u -J 6 -j JAILNAME | ||||
.... | .... | ||||
==== | ==== | ||||
[[testing-poudriere-ports-tree]] | [[testing-poudriere-ports-tree]] | ||||
=== Setting Up Ports Trees for Use with Poudriere | === Setting Up Ports Trees for Use with Poudriere | ||||
There are multiple ways to use ports trees in Poudriere. The most straightforward way is to have Poudriere create a default ports tree for itself, using either man:portsnap[8] (if running FreeBSD {rel121-current} or {rel114-current}) or Subversion (if running FreeBSD-CURRENT): | There are multiple ways to use ports trees in Poudriere. The most straightforward way is to have Poudriere create a default ports tree for itself, using either man:portsnap[8] (if running FreeBSD {rel121-current} or {rel114-current}) or Subversion (if running FreeBSD-CURRENT): | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere ports -c -m portsnap | # poudriere ports -c -m portsnap | ||||
.... | .... | ||||
or | or | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere ports -c -m svn+https | # poudriere ports -c -m git+https | ||||
.... | .... | ||||
These commands create `tank/poudriere/ports/default`, mount it on [.filename]#/poudriere/ports/default#, and populate it using either man:portsnap[8] or Subversion. Afterward it is included in the list of known ports trees: | These commands create `tank/poudriere/ports/default`, mount it on [.filename]#/poudriere/ports/default#, and populate it using Git, man:portsnap[8], or Subversion. Afterward it is included in the list of known ports trees: | ||||
[source,shell] | [source,shell] | ||||
.... | .... | ||||
# poudriere ports -l | # poudriere ports -l | ||||
PORTSTREE METHOD TIMESTAMP PATH | PORTSTREE METHOD TIMESTAMP PATH | ||||
default svn+https 2020-07-20 04:23:56 /poudriere/ports/default | default git+https 2020-07-20 04:23:56 /poudriere/ports/default | ||||
.... | .... | ||||
[NOTE] | [NOTE] | ||||
==== | ==== | ||||
Note that the "default" ports tree is special. Each of the build commands explained later will implicitly use this ports tree unless specifically specified otherwise. To use another tree, add `-p _treename_` to the commands. | Note that the "default" ports tree is special. Each of the build commands explained later will implicitly use this ports tree unless specifically specified otherwise. To use another tree, add `-p _treename_` to the commands. | ||||
==== | ==== | ||||
While useful for regular bulk builds, having this default ports tree with the man:portsnap[8] method may not be the best way to deal with local modifications for a ports contributor. As with the creation of jails, it is possible to use a different method for creating the ports tree. To add an additional ports tree for testing local modifications and ports development, checking out the tree via Subversion (as described above) is preferable. | While useful for regular bulk builds, having this default ports tree with the man:portsnap[8] method may not be the best way to deal with local modifications for a ports contributor. As with the creation of jails, it is possible to use a different method for creating the ports tree. To add an additional ports tree for testing local modifications and ports development, checking out the tree via Subversion (as described above) is preferable. | ||||
▲ Show 20 Lines • Show All 213 Lines • Show Last 20 Lines |