Tue Aug 3 08:16:45 2021 UTC ()
Notes on distributed bulk builds


(nia)
diff -r1.34 -r1.35 pkgsrc/doc/guide/files/bulk.xml

cvs diff -r1.34 -r1.35 pkgsrc/doc/guide/files/bulk.xml (expand / switch to unified diff)

--- pkgsrc/doc/guide/files/bulk.xml 2021/08/03 08:11:34 1.34
+++ pkgsrc/doc/guide/files/bulk.xml 2021/08/03 08:16:44 1.35
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1<!-- $NetBSD: bulk.xml,v 1.34 2021/08/03 08:11:34 nia Exp $ --> 1<!-- $NetBSD: bulk.xml,v 1.35 2021/08/03 08:16:44 nia Exp $ -->
2 2
3<chapter id="bulk"> 3<chapter id="bulk">
4<title>Creating binary packages for everything in pkgsrc (bulk 4<title>Creating binary packages for everything in pkgsrc (bulk
5builds)</title> 5builds)</title>
6 6
7<para>For a number of reasons, you may want to build binary packages 7<para>For a number of reasons, you may want to build binary packages
8for a large selected set of packages in pkgsrc, or even for all pkgsrc packages. 8for a large selected set of packages in pkgsrc, or even for all pkgsrc packages.
9For instance, when you have multiple machines that should run the same software, 9For instance, when you have multiple machines that should run the same software,
10it is wasted time if they all build their packages themselves from source. 10it is wasted time if they all build their packages themselves from source.
11Or you may want to build a list of packages you want and check them before 11Or you may want to build a list of packages you want and check them before
12deploying onto production systems. 12deploying onto production systems.
13There is a way of getting a set of binary packages: 13There is a way of getting a set of binary packages:
14the bulk build system, or pbulk ("p" stands for "parallel"). 14the bulk build system, or pbulk ("p" stands for "parallel").
@@ -147,27 +147,32 @@ and make final amendments, if wanted. @@ -147,27 +147,32 @@ and make final amendments, if wanted.
147&rprompt; <userinput>/usr/pbulk/bin/bulkbuild</userinput> 147&rprompt; <userinput>/usr/pbulk/bin/bulkbuild</userinput>
148</screen> 148</screen>
149 149
150<para>After it finishes, you'll have <filename>/mnt</filename> filled with distribution files, binary packages, and reports, 150<para>After it finishes, you'll have <filename>/mnt</filename> filled with distribution files, binary packages, and reports,
151plain text summary in <filename>/mnt/bulklog/meta/report.txt</filename> 151plain text summary in <filename>/mnt/bulklog/meta/report.txt</filename>
152</para> 152</para>
153 153
154<note><para>The <filename>pbulk.sh</filename> script does not cover all possible use cases. 154<note><para>The <filename>pbulk.sh</filename> script does not cover all possible use cases.
155While being ready to run, it serves as a good starting point to understand and build more complex setups. 155While being ready to run, it serves as a good starting point to understand and build more complex setups.
156The script is kept small enough for better understanding.</para> 156The script is kept small enough for better understanding.</para>
157</note> 157</note>
158 158
159<note><para>The <filename>pbulk.sh</filename> script supports running 159<note><para>The <filename>pbulk.sh</filename> script supports running
160unprivileged bulk build and helps configuring distributed bulk builds.</para> 160unprivileged bulk build and helps configuring distributed bulk builds.
 161Distributed bulk builds support either building in worker chroots
 162(each node is a path to a different chroot)
 163that replicate the target system, including the pbulk prefix,
 164or remote machines (each node is
 165an IP address that must be accessible over SSH without a password).</para>
161</note> 166</note>
162 167
163</sect2> 168</sect2>
164 169
165</sect1> 170</sect1>
166 171
167<sect1 id="bulk.req"> 172<sect1 id="bulk.req">
168<title>Requirements of a full bulk build</title> 173<title>Requirements of a full bulk build</title>
169 174
170<para>A complete bulk build requires lots of disk space. Some of the 175<para>A complete bulk build requires lots of disk space. Some of the
171disk space can be read-only, some other must be writable. Some can be on 176disk space can be read-only, some other must be writable. Some can be on
172remote filesystems (such as NFS) and some should be local. Some can be 177remote filesystems (such as NFS) and some should be local. Some can be
173temporary filesystems, others must survive a sudden reboot.</para> 178temporary filesystems, others must survive a sudden reboot.</para>