| @@ -3,26 +3,30 @@ Step One: Suggested File System Layout | | | @@ -3,26 +3,30 @@ Step One: Suggested File System Layout |
3 | For the DragonFly builds I'm using: | | 3 | For the DragonFly builds I'm using: |
4 | - /bulklog for the bulk meta data and log files of each package | | 4 | - /bulklog for the bulk meta data and log files of each package |
5 | - /scratch as WRKOBJDIR | | 5 | - /scratch as WRKOBJDIR |
6 | - /distfiles as DISTDIR | | 6 | - /distfiles as DISTDIR |
7 | - /packages as PACKAGES | | 7 | - /packages as PACKAGES |
8 | - separate physical file systems for /var and /usr/pkg | | 8 | - separate physical file systems for /var and /usr/pkg |
9 | All file systems but those are read-only, /tmp and /dev need platform | | 9 | All file systems but those are read-only, /tmp and /dev need platform |
10 | specific handling either as tmpfs or link. ptyfs helps for /dev. | | 10 | specific handling either as tmpfs or link. ptyfs helps for /dev. |
11 | | | 11 | |
12 | For parallel builds, /bulklog, /packages and /usr/pkgsrc are supposed to | | 12 | For parallel builds, /bulklog, /packages and /usr/pkgsrc are supposed to |
13 | be shared (null mounts, NFS). /usr/pkg and /var/db/pkg needs to be | | 13 | be shared (null mounts, NFS). /usr/pkg and /var/db/pkg needs to be |
14 | per-node and /scratch should be per-node. | | 14 | per-node and /scratch should be per-node. |
15 | | | 15 | |
| | | 16 | The defaults scripts will remove /usr/pkg and /var/db/pkg on the master |
| | | 17 | node as well. When using chroot sandboxes for the build, the master can |
| | | 18 | share a sandbox with one of the build instances. |
| | | 19 | |
16 | Step Two: Preparing pbulk prefix | | 20 | Step Two: Preparing pbulk prefix |
17 | | | 21 | |
18 | Install pkgtools/pbulk and possibly helper programs like screen into | | 22 | Install pkgtools/pbulk and possibly helper programs like screen into |
19 | LOCALBASE=/usr/pkg_bulk, PKG_DBDIR=/usr/pkg_bulk/.pkgdb. A full | | 23 | LOCALBASE=/usr/pkg_bulk, PKG_DBDIR=/usr/pkg_bulk/.pkgdb. A full |
20 | bootstrap is the recommended approach. Copy /usr/pkg_bulk to the client | | 24 | bootstrap is the recommended approach. Copy /usr/pkg_bulk to the client |
21 | nodes for parallel builds. | | 25 | nodes for parallel builds. |
22 | | | 26 | |
23 | Step Three: Configure pbulk | | 27 | Step Three: Configure pbulk |
24 | | | 28 | |
25 | (a) | | 29 | (a) |
26 | Setup general build parameters in mk.conf. Below is an example | | 30 | Setup general build parameters in mk.conf. Below is an example |
27 | fragment to add. | | 31 | fragment to add. |
28 | | | 32 | |
| @@ -45,26 +49,30 @@ Edit /usr/pkg_bulk/etc/pbulk.conf: | | | @@ -45,26 +49,30 @@ Edit /usr/pkg_bulk/etc/pbulk.conf: |
45 | - base_url goes into the report mail, the rsync targets are used | | 49 | - base_url goes into the report mail, the rsync targets are used |
46 | for uploads. | | 50 | for uploads. |
47 | - for limited bulk builds, set limited_list to a file with one | | 51 | - for limited bulk builds, set limited_list to a file with one |
48 | location per line | | 52 | location per line |
49 | | | 53 | |
50 | Step Four: Running pbulk | | 54 | Step Four: Running pbulk |
51 | | | 55 | |
52 | /usr/pkg_bulk/bin/bulkbuild in screen runs the full build. | | 56 | /usr/pkg_bulk/bin/bulkbuild in screen runs the full build. |
53 | | | 57 | |
54 | /usr/pkg_bulk/libexec/pbulk/{pre-build,scan,build,report,upload} are the | | 58 | /usr/pkg_bulk/libexec/pbulk/{pre-build,scan,build,report,upload} are the |
55 | individual build phases. They depend on the execution of the phase | | 59 | individual build phases. They depend on the execution of the phase |
56 | before. Exceptions are report and upload which both depend on build. | | 60 | before. Exceptions are report and upload which both depend on build. |
57 | | | 61 | |
| | | 62 | /usr/pkg_bulk/bin/bulkbuild-restart can be used to resume an aborted |
| | | 63 | build. If it failed after the actual build phase, report and upload should |
| | | 64 | be called individually though. |
| | | 65 | |
58 | --- sample mk.conf fragment --- | | 66 | --- sample mk.conf fragment --- |
59 | | | 67 | |
60 | WRKOBJDIR = /scratch | | 68 | WRKOBJDIR = /scratch |
61 | PKGSRCDIR = /usr/pkgsrc | | 69 | PKGSRCDIR = /usr/pkgsrc |
62 | DISTDIR = /distfiles | | 70 | DISTDIR = /distfiles |
63 | PACKAGES = /packages | | 71 | PACKAGES = /packages |
64 | | | 72 | |
65 | FAILOVER_FETCH= yes | | 73 | FAILOVER_FETCH= yes |
66 | | | 74 | |
67 | X11_TYPE= modular | | 75 | X11_TYPE= modular |
68 | | | 76 | |
69 | _ACCEPTABLE= yes | | 77 | _ACCEPTABLE= yes |
70 | ALLOW_VULNERABLE_PACKAGES= yes | | 78 | ALLOW_VULNERABLE_PACKAGES= yes |