View | Details | Raw Unified | Return to bug 264766 | Differences between
and this patch

Collapse All | Expand All

(-)b/documentation/content/en/books/handbook/ports/_index.adoc (-22 / +22 lines)
Lines 1182-1206 The default is the architecture shown by `uname`. Link Here
1182
[source,shell]
1182
[source,shell]
1183
....
1183
....
1184
# poudriere jail -c -j 11amd64 -v 11.4-RELEASE
1184
# poudriere jail -c -j 13amd64 -v 13.1-RELEASE
1185
[00:00:00] Creating 11amd64 fs at /poudriere/jails/11amd64... done
1185
[00:00:00] Creating 13amd64 fs at /poudriere/jails/13amd64... done
1186
[00:00:00] Using pre-distributed MANIFEST for FreeBSD 11.4-RELEASE amd64
1186
[00:00:00] Using pre-distributed MANIFEST for FreeBSD 13.1-RELEASE amd64
1187
[00:00:00] Fetching base for FreeBSD 11.4-RELEASE amd64
1187
[00:00:00] Fetching base for FreeBSD 13.1-RELEASE amd64
1188
/poudriere/jails/11amd64/fromftp/base.txz              125 MB 4110 kBps    31s
1188
/poudriere/jails/13amd64/fromftp/base.txz              125 MB 4110 kBps    31s
1189
[00:00:33] Extracting base... done
1189
[00:00:33] Extracting base... done
1190
[00:00:54] Fetching src for FreeBSD 11.4-RELEASE amd64
1190
[00:00:54] Fetching src for FreeBSD 13.1-RELEASE amd64
1191
/poudriere/jails/11amd64/fromftp/src.txz               154 MB 4178 kBps    38s
1191
/poudriere/jails/13amd64/fromftp/src.txz               154 MB 4178 kBps    38s
1192
[00:01:33] Extracting src... done
1192
[00:01:33] Extracting src... done
1193
[00:02:31] Fetching lib32 for FreeBSD 11.4-RELEASE amd64
1193
[00:02:31] Fetching lib32 for FreeBSD 13.1-RELEASE amd64
1194
/poudriere/jails/11amd64/fromftp/lib32.txz              24 MB 3969 kBps    06s
1194
/poudriere/jails/13amd64/fromftp/lib32.txz              24 MB 3969 kBps    06s
1195
[00:02:38] Extracting lib32... done
1195
[00:02:38] Extracting lib32... done
1196
[00:02:42] Cleaning up... done
1196
[00:02:42] Cleaning up... done
1197
[00:02:42] Recording filesystem state for clean... done
1197
[00:02:42] Recording filesystem state for clean... done
1198
[00:02:42] Upgrading using ftp
1198
[00:02:42] Upgrading using ftp
1199
/etc/resolv.conf -> /poudriere/jails/11amd64/etc/resolv.conf
1199
/etc/resolv.conf -> /poudriere/jails/13amd64/etc/resolv.conf
1200
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
1200
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
1201
Fetching public key from update4.freebsd.org... done.
1201
Fetching public key from update4.freebsd.org... done.
1202
Fetching metadata signature for 11.4-RELEASE from update4.freebsd.org... done.
1202
Fetching metadata signature for 13.1-RELEASE from update4.freebsd.org... done.
1203
Fetching metadata index... done.
1203
Fetching metadata index... done.
1204
Fetching 2 metadata files... done.
1204
Fetching 2 metadata files... done.
1205
Inspecting system... done.
1205
Inspecting system... done.
Lines 1209-1215 Fetching 124 patches.....10....20....30....40....50....60....70....80....90....1 Link Here
1209
Applying patches... done.
1209
Applying patches... done.
1210
Fetching 6 files... done.
1210
Fetching 6 files... done.
1211
The following files will be added as part of updating to
1211
The following files will be added as part of updating to
1212
11.4-RELEASE-p1:
1212
13.1-RELEASE:
1213
/usr/src/contrib/unbound/.github
1213
/usr/src/contrib/unbound/.github
1214
/usr/src/contrib/unbound/.github/FUNDING.yml
1214
/usr/src/contrib/unbound/.github/FUNDING.yml
1215
/usr/src/contrib/unbound/contrib/drop2rpz
1215
/usr/src/contrib/unbound/contrib/drop2rpz
Lines 1218-1231 The following files will be added as part of updating to Link Here
1218
/usr/src/contrib/unbound/services/rpz.h
1218
/usr/src/contrib/unbound/services/rpz.h
1219
/usr/src/lib/libc/tests/gen/spawnp_enoexec.sh
1219
/usr/src/lib/libc/tests/gen/spawnp_enoexec.sh
1220
The following files will be updated as part of updating to
1220
The following files will be updated as part of updating to
1221
11.4-RELEASE-p1:
1221
13.1-RELEASE:
1222
[…]
1222
[…]
1223
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
1223
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
1224
Scanning //usr/share/certs/trusted for certificates...
1224
Scanning //usr/share/certs/trusted for certificates...
1225
 done.
1225
 done.
1226
11.4-RELEASE-p1
1226
13.1-RELEASE
1227
[00:04:06] Recording filesystem state for clean... done
1227
[00:04:06] Recording filesystem state for clean... done
1228
[00:04:07] Jail 11amd64 11.4-RELEASE-p1 amd64 is ready to be used
1228
[00:04:07] Jail 13amd64 13.1-RELEASE amd64 is ready to be used
1229
....
1229
....
1230
[source,shell]
1230
[source,shell]
Lines 1240-1249 Custom configurations for these combinations are called _sets_. Link Here
1240
See the CUSTOMIZATION section of man:poudriere[8] for details after package:ports-mgmt/poudriere[] or package:ports-mgmt/poudriere-devel[] is installed.
1240
See the CUSTOMIZATION section of man:poudriere[8] for details after package:ports-mgmt/poudriere[] or package:ports-mgmt/poudriere-devel[] is installed.
1241
The basic configuration shown here puts a single jail-, port-, and set-specific [.filename]#make.conf# in [.filename]#/usr/local/etc/poudriere.d#.
1241
The basic configuration shown here puts a single jail-, port-, and set-specific [.filename]#make.conf# in [.filename]#/usr/local/etc/poudriere.d#.
1242
The filename in this example is created by combining the jail name, port name, and set name: [.filename]#11amd64-local-workstation-make.conf#.
1242
The filename in this example is created by combining the jail name, port name, and set name: [.filename]#13amd64-local-workstation-make.conf#.
1243
The system [.filename]#make.conf# and this new file are combined at build time to create the [.filename]#make.conf# used by the build jail.
1243
The system [.filename]#make.conf# and this new file are combined at build time to create the [.filename]#make.conf# used by the build jail.
1244
Packages to be built are entered in [.filename]#11amd64-local-workstation-pkglist#:
1244
Packages to be built are entered in [.filename]#13amd64-local-workstation-pkglist#:
1245
[.programlisting]
1245
[.programlisting]
1246
....
1246
....
Lines 1257-1270 Options and dependencies for the specified ports are configured: Link Here
1257
[source,shell]
1257
[source,shell]
1258
....
1258
....
1259
# poudriere options -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist
1259
# poudriere options -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist
1260
....
1260
....
1261
Finally, packages are built and a package repository is created:
1261
Finally, packages are built and a package repository is created:
1262
[source,shell]
1262
[source,shell]
1263
....
1263
....
1264
# poudriere bulk -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist
1264
# poudriere bulk -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist
1265
....
1265
....
1266
While running, pressing kbd:[Ctrl+t] displays the current state of the build.
1266
While running, pressing kbd:[Ctrl+t] displays the current state of the build.
Lines 1288-1302 FreeBSD: { Link Here
1288
....
1288
....
1289
Usually it is easiest to serve a poudriere repository to the client machines via HTTP.
1289
Usually it is easiest to serve a poudriere repository to the client machines via HTTP.
1290
Set up a webserver to serve up the package directory, for instance: [.filename]#/usr/local/poudriere/data/packages/11amd64#, where [.filename]#11amd64# is the name of the build.
1290
Set up a webserver to serve up the package directory, for instance: [.filename]#/usr/local/poudriere/data/packages/13amd64#, where [.filename]#13amd64# is the name of the build.
1291
If the URL to the package repository is: `http://pkg.example.com/11amd64`,
1291
If the URL to the package repository is: `http://pkg.example.com/13amd64`,
1292
then the repository configuration file in [.filename]#/usr/local/etc/pkg/repos/custom.conf# would look like:
1292
then the repository configuration file in [.filename]#/usr/local/etc/pkg/repos/custom.conf# would look like:
1293
[.programlisting]
1293
[.programlisting]
1294
....
1294
....
1295
custom: {
1295
custom: {
1296
	url: "http://pkg.example.com/11amd64",
1296
	url: "http://pkg.example.com/13amd64",
1297
	enabled: yes,
1297
	enabled: yes,
1298
}
1298
}
1299
....
1299
....
(-)b/documentation/content/en/books/porters-handbook/testing/_index.adoc (-38 / +38 lines)
Lines 277-297 Create the base jails which Poudriere will use for building: Link Here
277
[source,shell]
277
[source,shell]
278
....
278
....
279
# poudriere jail -c -j 114Ramd64 -v 11.4-RELEASE -a amd64
279
# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64
280
....
280
....
281
Fetch a `11.4-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#,
281
Fetch a `13.1-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#,
282
create the zfs file system `tank/poudriere/jails/114Ramd64`,
282
create the zfs file system `tank/poudriere/jails/131Ramd64`,
283
mount it on [.filename]#/poudriere/jails/114Ramd64# and extract the `11.4-RELEASE` tarballs into this file system.
283
mount it on [.filename]#/poudriere/jails/131Ramd64# and extract the `13.1-RELEASE` tarballs into this file system.
284
[source,shell]
284
[source,shell]
285
....
285
....
286
# poudriere jail -c -j 11i386 -v stable/11 -a i386 -m git+https
286
# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https
287
....
287
....
288
Create `tank/poudriere/jails/11i386`, mount it on [.filename]#/poudriere/jails/11i386#,
288
Create `tank/poudriere/jails/12i386`, mount it on [.filename]#/poudriere/jails/12i386#,
289
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#,
289
then check out the tip of the Subversion branch of `FreeBSD-12-STABLE` from `SVN_HOST` in [.filename]#poudriere.conf# into [.filename]#/poudriere/jails/12i386/usr/src#,
290
then complete a `buildworld` and install it into [.filename]#/poudriere/jails/11i386#.
290
then complete a `buildworld` and install it into [.filename]#/poudriere/jails/12i386#.
291
[TIP]
291
[TIP]
292
====
292
====
Lines 300-306 For example: Link Here
300
[source,shell]
300
[source,shell]
301
....
301
....
302
# poudriere jail -c -j 11i386 -v stable/11@123456 -a i386 -m git+https
302
# poudriere jail -c -j 12i386 -v stable/12@123456 -a i386 -m git+https
303
....
303
....
304
====
304
====
Lines 308-315 For example: Link Here
308
[NOTE]
308
[NOTE]
309
====
309
====
310
While it is possible to build a newer version of FreeBSD on an older version, most of the time it will not run.
310
While it is possible to build a newer version of FreeBSD on an older version, most of the time it will not run.
311
For example, if a `stable/11` jail is needed, the host will have to run `stable/11` too.
311
For example, if a `stable/13` jail is needed, the host will have to run `stable/13` too.
312
Running `11.4-RELEASE` is not enough.
312
Running `13.1-RELEASE` is not enough.
313
====
313
====
314
[NOTE]
314
[NOTE]
Lines 323-330 To create a Poudriere jail for `14.0-CURRENT`: Link Here
323
In order to run a `14.0-CURRENT` Poudriere jail you must be running `14.0-CURRENT`.
323
In order to run a `14.0-CURRENT` Poudriere jail you must be running `14.0-CURRENT`.
324
In general, newer kernels can build and run older jails.
324
In general, newer kernels can build and run older jails.
325
For instance, a `14.0-CURRENT` kernel can build and run a `11.4-STABLE`.
325
For instance, a `14.0-CURRENT` kernel can build and run a `12.3-STABLE`.
326
Poudriere jail if the `COMPAT_FREEBSD11` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config).
326
Poudriere jail if the `COMPAT_FREEBSD12` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config).
327
====
327
====
328
[CAUTION]
328
[CAUTION]
Lines 340-347 A list of jails currently known to Poudriere can be shown with `poudriere jail - Link Here
340
....
340
....
341
# poudriere jail -l
341
# poudriere jail -l
342
JAILNAME             VERSION              ARCH    METHOD
342
JAILNAME             VERSION              ARCH    METHOD
343
114Ramd64            11.4-RELEASE         amd64   ftp
343
131Ramd64            13.1-RELEASE         amd64   ftp
344
11i386               11.4-STABLE          i386    svn+https
344
12i386               12.3-STABLE          i386    svn+https
345
....
345
....
346
[[testing-poudriere-maintaining-jails]]
346
[[testing-poudriere-maintaining-jails]]
Lines 482-492 They must be updated manually by the porter. Link Here
482
After jails and ports trees have been set up, the result of a contributor's modifications to the ports tree can be tested.
482
After jails and ports trees have been set up, the result of a contributor's modifications to the ports tree can be tested.
483
For example, local modifications to the package:www/firefox[] port located in [.filename]#/work/ports/www/firefox# can be tested in the previously created 11.4-RELEASE jail:
483
For example, local modifications to the package:www/firefox[] port located in [.filename]#/work/ports/www/firefox# can be tested in the previously created 13.1-RELEASE jail:
484
[source,shell]
484
[source,shell]
485
....
485
....
486
# poudriere testport -j 114Ramd64 -p development -o www/firefox
486
# poudriere testport -j 131Ramd64 -p development -o www/firefox
487
....
487
....
488
This will build all dependencies of Firefox.
488
This will build all dependencies of Firefox.
Lines 494-503 If a dependency has been built previously and is still up-to-date, the pre-built Link Here
494
If a dependency has no up-to-date package, one will be built with default options in a jail.
494
If a dependency has no up-to-date package, one will be built with default options in a jail.
495
Then Firefox itself is built.
495
Then Firefox itself is built.
496
The complete build of every port is logged to [.filename]#/poudriere/data/logs/bulk/114Ri386-development/build-time/logs#.
496
The complete build of every port is logged to [.filename]#/poudriere/data/logs/bulk/131Ri386-development/build-time/logs#.
497
The directory name `114Ri386-development` is derived from the arguments to `-j` and `-p`, respectively.
497
The directory name `131Ri386-development` is derived from the arguments to `-j` and `-p`, respectively.
498
For convenience, a symbolic link [.filename]#/poudriere/data/logs/bulk/114Ri386-development/latest# is also maintained.
498
For convenience, a symbolic link [.filename]#/poudriere/data/logs/bulk/131Ri386-development/latest# is also maintained.
499
The link points to the latest _build-time_ directory.
499
The link points to the latest _build-time_ directory.
500
Also in this directory is an [.filename]#index.html# for observing the build process with a web browser.
500
Also in this directory is an [.filename]#index.html# for observing the build process with a web browser.
Lines 506-512 To ease investigation, jails can be kept running after the build by adding `-i` Link Here
506
[source,shell]
506
[source,shell]
507
....
507
....
508
# poudriere testport -j 114Ramd64 -p development -i -o www/firefox
508
# poudriere testport -j 131Ramd64 -p development -i -o www/firefox
509
....
509
....
510
After the build completes, and regardless of whether it was successful, a shell is provided within the jail.
510
After the build completes, and regardless of whether it was successful, a shell is provided within the jail.
Lines 517-532 It is then possible to man:jexec[8] into it: Link Here
517
[source,shell]
517
[source,shell]
518
....
518
....
519
# poudriere testport -j 114Ramd64 -p development -I -o www/firefox
519
# poudriere testport -j 131Ramd64 -p development -I -o www/firefox
520
[...]
520
[...]
521
====>> Installing local Pkg repository to /usr/local/etc/pkg/repos
521
====>> Installing local Pkg repository to /usr/local/etc/pkg/repos
522
====>> Leaving jail 114Ramd64-development-n running, mounted at /poudriere/data/.m/114Ramd64-development/ref for interactive run testing
522
====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing
523
====>> To enter jail: jexec 114Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
523
====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
524
====>> To stop jail: poudriere jail -k -j 114Ramd64 -p development
524
====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development
525
# jexec 114Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
525
# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
526
# [do some stuff in the jail]
526
# [do some stuff in the jail]
527
# exit
527
# exit
528
# poudriere jail -k -j 114Ramd64 -p development
528
# poudriere jail -k -j 131Ramd64 -p development
529
====>> Umounting file systems
529
====>> Umounting file systems
530
....
530
....
Lines 563-579 For instance, testing package:www/firefox[] in a specific set named `devset`, ad Link Here
563
[source,shell]
563
[source,shell]
564
....
564
....
565
# poudriere testport -j 114Ramd64 -p development -z devset -o www/firefox
565
# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox
566
....
566
....
567
This will look for the existence of these directories in this order:
567
This will look for the existence of these directories in this order:
568
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-devset-options#
568
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options#
569
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-devset-options#
569
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options#
570
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-options#
570
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options#
571
* [.filename]#/usr/local/etc/poudriere.d/devset-options#
571
* [.filename]#/usr/local/etc/poudriere.d/devset-options#
572
* [.filename]#/usr/local/etc/poudriere.d/development-options#
572
* [.filename]#/usr/local/etc/poudriere.d/development-options#
573
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-options#
573
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-options#
574
* [.filename]#/usr/local/etc/poudriere.d/options#
574
* [.filename]#/usr/local/etc/poudriere.d/options#
575
From this list, Poudriere man:nullfs[5]-mounts the _first existing_ directory tree into the [.filename]#/var/db/ports# directory of the build jails.
575
From this list, Poudriere man:nullfs[5]-mounts the _first existing_ directory tree into the [.filename]#/var/db/ports# directory of the build jails.
Lines 606-612 Instead, Poudriere looks for existing files matching a name scheme derived from Link Here
606
[source,shell]
606
[source,shell]
607
....
607
....
608
# poudriere testport -j 114Ramd64 -p development -z devset -o www/firefox
608
# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox
609
....
609
....
610
causes Poudriere to check for the existence of these files in this order:
610
causes Poudriere to check for the existence of these files in this order:
Lines 614-627 causes Poudriere to check for the existence of these files in this order: Link Here
614
* [.filename]#/usr/local/etc/poudriere.d/make.conf#
614
* [.filename]#/usr/local/etc/poudriere.d/make.conf#
615
* [.filename]#/usr/local/etc/poudriere.d/devset-make.conf#
615
* [.filename]#/usr/local/etc/poudriere.d/devset-make.conf#
616
* [.filename]#/usr/local/etc/poudriere.d/development-make.conf#
616
* [.filename]#/usr/local/etc/poudriere.d/development-make.conf#
617
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-make.conf#
617
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-make.conf#
618
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-make.conf#
618
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-make.conf#
619
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-devset-make.conf#
619
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-make.conf#
620
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-devset-make.conf#
620
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-make.conf#
621
Unlike with sets, all of the found files will be appended, _in that order_, into one [.filename]#make.conf# inside the build jails.
621
Unlike with sets, all of the found files will be appended, _in that order_, into one [.filename]#make.conf# inside the build jails.
622
It is hence possible to have general make variables, intended to affect all builds in [.filename]#/usr/local/etc/poudriere.d/make.conf#.
622
It is hence possible to have general make variables, intended to affect all builds in [.filename]#/usr/local/etc/poudriere.d/make.conf#.
623
Special variables, intended to affect only certain jails or sets can be set in specialised [.filename]#make.conf# files, such as [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-devset-make.conf#.
623
Special variables, intended to affect only certain jails or sets can be set in specialised [.filename]#make.conf# files, such as [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-make.conf#.
624
[[testing-poudriere-sets-perl]]
624
[[testing-poudriere-sets-perl]]
625
.Using [.filename]#make.conf# to Change Default Perl
625
.Using [.filename]#make.conf# to Change Default Perl

Return to bug 264766