From c6ce5595321c503c57c33e50e14f954a44f976a6 Mon Sep 17 00:00:00 2001 From: joerg Date: Wed, 25 Jul 2007 17:26:59 +0000 Subject: Add a basic description of how to use pbulk. --- doc/HOWTO-pbulk | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 doc/HOWTO-pbulk (limited to 'doc/HOWTO-pbulk') diff --git a/doc/HOWTO-pbulk b/doc/HOWTO-pbulk new file mode 100644 index 00000000000..afbcb9e72cf --- /dev/null +++ b/doc/HOWTO-pbulk @@ -0,0 +1,73 @@ +Step One: Suggested Filesystem Layout + +For the DragonFly builds I'm using: +- /bulklog for the bulk meta data and log files of each package +- /scratch as WRKOBJDIR +- /distfiles as DISTDIR +- /packages as PACKAGES +- separate physical filesystems for /var and /usr/pkg +All filesystems but those are read-only, /tmp and /dev need platform +specific handling either as tmpfs or link. ptyfs helps for /dev. + +For parallel builds, /bulklog, /packages and /usr/pkgsrc are supposed to +be shared (null mounts, NFS). /usr/pkg and /var/db/pkg needs to be +per-node and /scratch should be per-node. + +Step Two: Preparing pbulk prefix + +Install pkgtools/pbulk and possibly helper programs like screen into +LOCALBASE=/usr/pkg_bulk, PKG_DBDIR=/usr/pkg_bulk/.pkgdb. A full +bootstrap is the recommented approach. Copy /usr/pkg_bulk to the client +nodes for parallel builds. + +Step Three: Configure pbulk + +(a) +Setup general build parameters in mk.conf. Below is an example +fragment to add. + +(b) [not for netbsd] +Build a binary bootstrap kit and override the included mk.conf with the +file created in (a). Compress the tarball with gzip. + +(c) +Edit /usr/pkg_bulk/etc/pbulk.conf: +- For NetBSD: + - pkg_install_prefix should /usr. + - bootstrapkit should be empty. +- For non-NetBSD: + - pkg_install_prefix should /usr/pkg_bulk. + - make must be changed to /usr/pkg/bin/bmake. + - bootstrapkit should be changed to the tarball in (b). Both master + and client nodes access this, so keep it in a shared location. + +- master_mode=yes needs a proper list of client nodes. +- base_url goes into the report mail, the rsync targets are used + for uploads. +- for limited bulk builds, set limited_list to a file with one + location per line + +Step Four: Running pbulk + +/usr/pkg_bulk/bin/bulkbuild in screen runs the full build. + +/usr/pkg_bulk/libexec/pbulk/{pre-build,scan,build,report,upload} are the +individual build phases. They depend on the execution of the phase +before. Exceptions are report and upload which both depend on build. + +--- sample mk.conf fragment --- + +WRKOBJDIR = /scratch +PKGSRCDIR = /usr/pkgsrc +DISTDIR = /distfiles +PACKAGES = /packages + +FAILOVER_FETCH= yes + +X11_TYPE= modular + +_ACCEPTABLE= yes +ALLOW_VULNERABLE_PACKAGES= yes +SKIP_AUDIT_packages= yes + +PKG_DEVELOPER?= yes -- cgit v1.2.3