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
1182
1183
[source,shell]
1183
[source,shell]
1184
....
1184
....
1185
# poudriere jail -c -j 11amd64 -v 11.4-RELEASE
1185
# poudriere jail -c -j 13amd64 -v 13.1-RELEASE
1186
[00:00:00] Creating 11amd64 fs at /poudriere/jails/11amd64... done
1186
[00:00:00] Creating 13amd64 fs at /poudriere/jails/13amd64... done
1187
[00:00:00] Using pre-distributed MANIFEST for FreeBSD 11.4-RELEASE amd64
1187
[00:00:00] Using pre-distributed MANIFEST for FreeBSD 13.1-RELEASE amd64
1188
[00:00:00] Fetching base for FreeBSD 11.4-RELEASE amd64
1188
[00:00:00] Fetching base for FreeBSD 13.1-RELEASE amd64
1189
/poudriere/jails/11amd64/fromftp/base.txz              125 MB 4110 kBps    31s
1189
/poudriere/jails/13amd64/fromftp/base.txz              125 MB 4110 kBps    31s
1190
[00:00:33] Extracting base... done
1190
[00:00:33] Extracting base... done
1191
[00:00:54] Fetching src for FreeBSD 11.4-RELEASE amd64
1191
[00:00:54] Fetching src for FreeBSD 13.1-RELEASE amd64
1192
/poudriere/jails/11amd64/fromftp/src.txz               154 MB 4178 kBps    38s
1192
/poudriere/jails/13amd64/fromftp/src.txz               154 MB 4178 kBps    38s
1193
[00:01:33] Extracting src... done
1193
[00:01:33] Extracting src... done
1194
[00:02:31] Fetching lib32 for FreeBSD 11.4-RELEASE amd64
1194
[00:02:31] Fetching lib32 for FreeBSD 13.1-RELEASE amd64
1195
/poudriere/jails/11amd64/fromftp/lib32.txz              24 MB 3969 kBps    06s
1195
/poudriere/jails/13amd64/fromftp/lib32.txz              24 MB 3969 kBps    06s
1196
[00:02:38] Extracting lib32... done
1196
[00:02:38] Extracting lib32... done
1197
[00:02:42] Cleaning up... done
1197
[00:02:42] Cleaning up... done
1198
[00:02:42] Recording filesystem state for clean... done
1198
[00:02:42] Recording filesystem state for clean... done
1199
[00:02:42] Upgrading using ftp
1199
[00:02:42] Upgrading using ftp
1200
/etc/resolv.conf -> /poudriere/jails/11amd64/etc/resolv.conf
1200
/etc/resolv.conf -> /poudriere/jails/13amd64/etc/resolv.conf
1201
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
1201
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
1202
Fetching public key from update4.freebsd.org... done.
1202
Fetching public key from update4.freebsd.org... done.
1203
Fetching metadata signature for 11.4-RELEASE from update4.freebsd.org... done.
1203
Fetching metadata signature for 13.1-RELEASE from update4.freebsd.org... done.
1204
Fetching metadata index... done.
1204
Fetching metadata index... done.
1205
Fetching 2 metadata files... done.
1205
Fetching 2 metadata files... done.
1206
Inspecting system... done.
1206
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-p1:
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-p1:
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-p1
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-p1 amd64 is ready to be used
1229
....
1229
....
1230
1230
1231
[source,shell]
1231
[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
1241
1242
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 basic configuration shown here puts a single jail-, port-, and set-specific [.filename]#make.conf# in [.filename]#/usr/local/etc/poudriere.d#.
1243
The filename in this example is created by combining the jail name, port name, and set name: [.filename]#11amd64-local-workstation-make.conf#.
1243
The filename in this example is created by combining the jail name, port name, and set name: [.filename]#13amd64-local-workstation-make.conf#.
1244
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
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.
1245
1245
1246
Packages to be built are entered in [.filename]#11amd64-local-workstation-pkglist#:
1246
Packages to be built are entered in [.filename]#13amd64-local-workstation-pkglist#:
1247
1247
1248
[.programlisting]
1248
[.programlisting]
1249
....
1249
....
Lines 1257-1270 Options and dependencies for the specified ports are configured: Link Here
1257
1257
1258
[source,shell]
1258
[source,shell]
1259
....
1259
....
1260
# poudriere options -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist
1260
# poudriere options -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist
1261
....
1261
....
1262
1262
1263
Finally, packages are built and a package repository is created:
1263
Finally, packages are built and a package repository is created:
1264
1264
1265
[source,shell]
1265
[source,shell]
1266
....
1266
....
1267
# poudriere bulk -j 11amd64 -p local -z workstation -f 11amd64-local-workstation-pkglist
1267
# poudriere bulk -j 13amd64 -p local -z workstation -f 13amd64-local-workstation-pkglist
1268
....
1268
....
1269
1269
1270
While running, pressing kbd:[Ctrl+t] displays the current state of the build.
1270
While running, pressing kbd:[Ctrl+t] displays the current state of the build.
Lines 1288-1302 FreeBSD: { Link Here
1288
....
1288
....
1289
1289
1290
Usually it is easiest to serve a poudriere repository to the client machines via HTTP.
1290
Usually it is easiest to serve a poudriere repository to the client machines via HTTP.
1291
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.
1291
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.
1292
1292
1293
If the URL to the package repository is: `http://pkg.example.com/11amd64`,
1293
If the URL to the package repository is: `http://pkg.example.com/13amd64`,
1294
then the repository configuration file in [.filename]#/usr/local/etc/pkg/repos/custom.conf# would look like:
1294
then the repository configuration file in [.filename]#/usr/local/etc/pkg/repos/custom.conf# would look like:
1295
1295
1296
[.programlisting]
1296
[.programlisting]
1297
....
1297
....
1298
custom: {
1298
custom: {
1299
	url: "http://pkg.example.com/11amd64",
1299
	url: "http://pkg.example.com/13amd64",
1300
	enabled: yes,
1300
	enabled: yes,
1301
}
1301
}
1302
....
1302
....
(-)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
277
278
[source,shell]
278
[source,shell]
279
....
279
....
280
# poudriere jail -c -j 114Ramd64 -v 11.4-RELEASE -a amd64
280
# poudriere jail -c -j 131Ramd64 -v 13.1-RELEASE -a amd64
281
....
281
....
282
282
283
Fetch a `11.4-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#,
283
Fetch a `13.1-RELEASE` for `amd64` from the FTP server given by `FREEBSD_HOST` in [.filename]#poudriere.conf#,
284
create the zfs file system `tank/poudriere/jails/114Ramd64`,
284
create the zfs file system `tank/poudriere/jails/131Ramd64`,
285
mount it on [.filename]#/poudriere/jails/114Ramd64# and extract the `11.4-RELEASE` tarballs into this file system.
285
mount it on [.filename]#/poudriere/jails/131Ramd64# and extract the `13.1-RELEASE` tarballs into this file system.
286
286
287
[source,shell]
287
[source,shell]
288
....
288
....
289
# poudriere jail -c -j 11i386 -v stable/11 -a i386 -m git+https
289
# poudriere jail -c -j 12i386 -v stable/12 -a i386 -m git+https
290
....
290
....
291
291
292
Create `tank/poudriere/jails/11i386`, mount it on [.filename]#/poudriere/jails/11i386#,
292
Create `tank/poudriere/jails/12i386`, mount it on [.filename]#/poudriere/jails/12i386#,
293
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#,
293
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#,
294
then complete a `buildworld` and install it into [.filename]#/poudriere/jails/11i386#.
294
then complete a `buildworld` and install it into [.filename]#/poudriere/jails/12i386#.
295
295
296
[TIP]
296
[TIP]
297
====
297
====
Lines 300-306 For example: Link Here
300
300
301
[source,shell]
301
[source,shell]
302
....
302
....
303
# poudriere jail -c -j 11i386 -v stable/11@123456 -a i386 -m git+https
303
# poudriere jail -c -j 12i386 -v stable/12@123456 -a i386 -m git+https
304
....
304
....
305
305
306
====
306
====
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
314
315
[NOTE]
315
[NOTE]
Lines 323-330 To create a Poudriere jail for `14.0-CURRENT`: Link Here
323
323
324
In order to run a `14.0-CURRENT` Poudriere jail you must be running `14.0-CURRENT`.
324
In order to run a `14.0-CURRENT` Poudriere jail you must be running `14.0-CURRENT`.
325
In general, newer kernels can build and run older jails.
325
In general, newer kernels can build and run older jails.
326
For instance, a `14.0-CURRENT` kernel can build and run a `11.4-STABLE`.
326
For instance, a `14.0-CURRENT` kernel can build and run a `12.3-STABLE`.
327
Poudriere jail if the `COMPAT_FREEBSD11` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config).
327
Poudriere jail if the `COMPAT_FREEBSD12` kernel option was compiled in (on by default in `14.0-CURRENT`[.filename]#GENERIC# kernel config).
328
====
328
====
329
329
330
[CAUTION]
330
[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
346
347
[[testing-poudriere-maintaining-jails]]
347
[[testing-poudriere-maintaining-jails]]
Lines 482-492 They must be updated manually by the porter. Link Here
482
482
483
After jails and ports trees have been set up, the result of a contributor's modifications to the ports tree can be tested.
483
After jails and ports trees have been set up, the result of a contributor's modifications to the ports tree can be tested.
484
484
485
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:
485
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:
486
486
487
[source,shell]
487
[source,shell]
488
....
488
....
489
# poudriere testport -j 114Ramd64 -p development -o www/firefox
489
# poudriere testport -j 131Ramd64 -p development -o www/firefox
490
....
490
....
491
491
492
This will build all dependencies of Firefox.
492
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
496
497
The complete build of every port is logged to [.filename]#/poudriere/data/logs/bulk/114Ri386-development/build-time/logs#.
497
The complete build of every port is logged to [.filename]#/poudriere/data/logs/bulk/131Ri386-development/build-time/logs#.
498
498
499
The directory name `114Ri386-development` is derived from the arguments to `-j` and `-p`, respectively.
499
The directory name `131Ri386-development` is derived from the arguments to `-j` and `-p`, respectively.
500
For convenience, a symbolic link [.filename]#/poudriere/data/logs/bulk/114Ri386-development/latest# is also maintained.
500
For convenience, a symbolic link [.filename]#/poudriere/data/logs/bulk/131Ri386-development/latest# is also maintained.
501
The link points to the latest _build-time_ directory.
501
The link points to the latest _build-time_ directory.
502
Also in this directory is an [.filename]#index.html# for observing the build process with a web browser.
502
Also in this directory is an [.filename]#index.html# for observing the build process with a web browser.
503
503
Lines 506-512 To ease investigation, jails can be kept running after the build by adding `-i` Link Here
506
506
507
[source,shell]
507
[source,shell]
508
....
508
....
509
# poudriere testport -j 114Ramd64 -p development -i -o www/firefox
509
# poudriere testport -j 131Ramd64 -p development -i -o www/firefox
510
....
510
....
511
511
512
After the build completes, and regardless of whether it was successful, a shell is provided within the jail.
512
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
517
518
[source,shell]
518
[source,shell]
519
....
519
....
520
# poudriere testport -j 114Ramd64 -p development -I -o www/firefox
520
# poudriere testport -j 131Ramd64 -p development -I -o www/firefox
521
[...]
521
[...]
522
====>> Installing local Pkg repository to /usr/local/etc/pkg/repos
522
====>> Installing local Pkg repository to /usr/local/etc/pkg/repos
523
====>> Leaving jail 114Ramd64-development-n running, mounted at /poudriere/data/.m/114Ramd64-development/ref for interactive run testing
523
====>> Leaving jail 131Ramd64-development-n running, mounted at /poudriere/data/.m/131Ramd64-development/ref for interactive run testing
524
====>> To enter jail: jexec 114Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
524
====>> To enter jail: jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
525
====>> To stop jail: poudriere jail -k -j 114Ramd64 -p development
525
====>> To stop jail: poudriere jail -k -j 131Ramd64 -p development
526
# jexec 114Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
526
# jexec 131Ramd64-development-n env -i TERM=$TERM /usr/bin/login -fp root
527
# [do some stuff in the jail]
527
# [do some stuff in the jail]
528
# exit
528
# exit
529
# poudriere jail -k -j 114Ramd64 -p development
529
# poudriere jail -k -j 131Ramd64 -p development
530
====>> Umounting file systems
530
====>> Umounting file systems
531
....
531
....
532
532
Lines 563-579 For instance, testing package:www/firefox[] in a specific set named `devset`, ad Link Here
563
563
564
[source,shell]
564
[source,shell]
565
....
565
....
566
# poudriere testport -j 114Ramd64 -p development -z devset -o www/firefox
566
# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox
567
....
567
....
568
568
569
This will look for the existence of these directories in this order:
569
This will look for the existence of these directories in this order:
570
570
571
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-devset-options#
571
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-devset-options#
572
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-devset-options#
572
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-devset-options#
573
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-development-options#
573
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-development-options#
574
* [.filename]#/usr/local/etc/poudriere.d/devset-options#
574
* [.filename]#/usr/local/etc/poudriere.d/devset-options#
575
* [.filename]#/usr/local/etc/poudriere.d/development-options#
575
* [.filename]#/usr/local/etc/poudriere.d/development-options#
576
* [.filename]#/usr/local/etc/poudriere.d/114Ramd64-options#
576
* [.filename]#/usr/local/etc/poudriere.d/131Ramd64-options#
577
* [.filename]#/usr/local/etc/poudriere.d/options#
577
* [.filename]#/usr/local/etc/poudriere.d/options#
578
578
579
From this list, Poudriere man:nullfs[5]-mounts the _first existing_ directory tree into the [.filename]#/var/db/ports# directory of the build jails.
579
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
606
607
[source,shell]
607
[source,shell]
608
....
608
....
609
# poudriere testport -j 114Ramd64 -p development -z devset -o www/firefox
609
# poudriere testport -j 131Ramd64 -p development -z devset -o www/firefox
610
....
610
....
611
611
612
causes Poudriere to check for the existence of these files in this order:
612
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
621
622
Unlike with sets, all of the found files will be appended, _in that order_, into one [.filename]#make.conf# inside the build jails.
622
Unlike with sets, all of the found files will be appended, _in that order_, into one [.filename]#make.conf# inside the build jails.
623
It is hence possible to have general make variables, intended to affect all builds in [.filename]#/usr/local/etc/poudriere.d/make.conf#.
623
It is hence possible to have general make variables, intended to affect all builds in [.filename]#/usr/local/etc/poudriere.d/make.conf#.
624
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#.
624
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#.
625
625
626
[[testing-poudriere-sets-perl]]
626
[[testing-poudriere-sets-perl]]
627
.Using [.filename]#make.conf# to Change Default Perl
627
.Using [.filename]#make.conf# to Change Default Perl

Return to bug 264766