Welcome to mirror list, hosted at ThFree Co, Russian Federation.

poudriere-bulk.8 « man « src - github.com/freebsd/poudriere.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 772235434d70f219ebec4a7834c9c606a3323154 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
.\" Copyright (c) 2012 Baptiste Daroussin <bapt@FreeBSD.org>
.\" Copyright (c) 2012-2014 Bryan Drewery <bdrewery@FreeBSD.org>
.\" Copyright (c) 2018 SRI International
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.\"
.\" Note: The date here should be updated whenever a non-trivial
.\" change is made to the manual page.
.Dd September 9, 2021
.Dt POUDRIERE-BULK 8
.Os
.Sh NAME
.Nm "poudriere bulk"
.Nd build a ready-to-export package tree
.Sh SYNOPSIS
.Nm
.Fl a
.Fl j Ar name
.Op Fl CcFIikNnRrSTtvw
.Op Fl b Ar name
.Op Fl B Ar name
.Op Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs
.Op Fl O Ar overlay Op Oo Fl O Ar overlay2 Oc Ar ...
.Op Fl p Ar tree
.Op Fl z Ar set
.Nm
.Fl f Ar file Op Oo Fl f Ar file2 Oc Ar ...
.Fl j Ar name
.Op Fl CcFIikNnRrSTtvw
.Op Fl b Ar name
.Op Fl B Ar name
.Op Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs
.Op Fl O Ar overlay Op Oo Fl O Ar overlay2 Oc Ar ...
.Op Fl p Ar tree
.Op Fl z Ar set
.Nm
.Fl j Ar name
.Op Fl CcFIikNnRrSTtvw
.Op Fl b Ar name
.Op Fl B Ar name
.Op Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs
.Op Fl O Ar overlay Op Oo Fl O Ar overlay2 Oc Ar ...
.Op Fl p Ar tree
.Op Fl z Ar set
.Ar origin Op Ar origin2 ...
.Sh DESCRIPTION
This command makes a ready-to-export package tree, and fills it with
binary packages built from a given list of ports.
During the build, hit
.Ic ^T
to send
.Dv SIGINFO
and show stats and progress about the build.
.Pp
See the
.Em FLAVORS
section
in
.Xr poudriere 8
for supported flavors syntax.
.Pp
See
the
.Em CUSTOMIZATION
section
in
.Xr poudriere 8
to learn how to build binary packages with options that differ from
defaults.
.Pp
.Nm poudriere
will disable make jobs for packages not listed in
.Sy ALLOW_MAKE_JOBS_PACKAGES ,
unless
.Sy ALLOW_MAKE_JOBS
is set in
.Pa poudriere.conf .
The number of jobs can be controlled in
.Pa make.conf
with the
.Xr ports 7
flags
.Sy MAKE_JOBS_NUMBER
and
.Sy MAKE_JOBS_NUMBER_LIMIT .
Beware that there is no global job control so each builder created from
.Fl J
(or the default
.Sy PARALLEL_JOBS )
will spawn as many jobs as the ports framework allows.
.Sh SUBCOMMANDS
.Bl -tag -width "-f file"
.It Fl a
Build all ports in the tree with all flavors.
.It Fl f Ar file
Build ports listed in the
.Ar file .
.Pp
The path to the
.Ar file
has to be absolute.
Ports must be specified in the form of
.Dq Ar category Ns / Ns Ar port
and
.Xr sh 1 Ns -style
comments are allowed.
Multiple
.Fl f Ar file
arguments may be specified at once.
.El
.Sh OPTIONS
.Bl -tag -width "-B name"
.It Fl B Ar name
Specify which buildname to use.
By default
.Ar YYYY-MM-DD_HH:MM:SS
will be used.
This can be used to resume a previous build and use the same log and URL paths.
Resuming a build will not retry built/failed/skipped/ignored packages.
.It Fl b Ar name
Specify the
.Ar name
of the binary package branch to use to prefetch packages.
Should be
.Qq latest ,
.Qq quarterly ,
.Qq release_* ,
or
.Ar url .
With this option poudriere will first try to fetch from the binary package
repository specified the binary package prior to do the sanity check if the
package does not already exist.
.Pp
.Nm poudriere
will only use packages that:
.Bl -bullet -compact
.It
come from a repository having the same or older version of
.Sy pkg .
.It
do not have a locally fetched package already.
.It
are not IGNORED.
.It
match the expected local version.
.It
match the expected ABI.
.It
match the expected runtime and library dependencies.
.It
match the expected OPTIONS when
.Cm CHECK_CHANGED_OPTIONS
is enabled (default: on).
.It
The package is NOT listed in
.Cm PACKAGE_FETCH_BLACKLIST
.It
The package is NOT listed with
.Fl C ,
or
.Fl c ,
when
.Fl t
is used.
.El
The
.Fl v
flag can be used to show these decisions during build.
Specifing twice will show more details on why some are skipped.
.Pp
!!
.Pp
.Nm poudriere
has no way of determining differences outside of the above list.
That is, if the local ports framework, or port, has custom patches or special
.Sy WITH_FOO
knobs (not OPTIONS) then it is required to add its name into
.Sy PACKAGE_FETCH_BLACKLIST .
Otherwise a package may be fetched and used that lacks the custom patch or knob.
.Pp
!!
.Pp
See
.Sy PACKAGE_FETCH_BRANCH ,
.Sy PACKAGE_FETCH_URL ,
.Sy PACKAGE_FETCH_BLACKLIST ,
and
.Sy PACKAGE_FETCH_WHITELIST
in
.Pa poudriere.conf.sample .
The entries in the lists will be matched against package names without versions.
.It Fl C
Clean only the packages specified on the command line or in the file given by
.Fl f Ar file .
Implies
.Fl c
for
.Fl a .
.It Fl c
Clean
.Em all
previously built packages and logs.
.It Fl F
Fetch only from the original
.Va MASTER_SITES .
Skip
.Fx
mirrors.
.It Fl I
Advanced interactive mode.
.Pp
Leave the jail running with ports installed after building and testing.
It is a convenient way to do some additional testing.
See
.Xr poudriere-jail 8
to learn how to stop a running poudriere jail.
.Pp
Similarly to
.Fl i ,
the
.Fl I
flag
will cause
.Xr pkg.conf 5
to be installed in the jail.
.It Fl i
Interactive mode.
.Pp
Open an interactive shell session in the jail after the build is done and before the clean-up.
It is a convenient way to do some additional testing.
.Pp
A local
.Xr pkg.conf 5
repository configuration will be installed to
.No ${ Ns Va LOCALBASE Ns } Ns Pa /etc/pkg/repos/local.conf
so that
.Xr pkg 8
can be used with any existing packages built for the jail.
The
default
.Fx
repository will be disabled by default.
.It Fl J Ar maxjobs Ns Op Cm \&: Ns Ar prebuildmaxjobs
Specify the number of jobs that will run in parallel for a bulk build.
The optional second parameter,
.Ar prebuildmaxjobs ,
is the number of jobs used for the steps before the build, they are more IO
bound than CPU bound, so you may want to use a different number.
The default pre-build value is 1.25 times the value of the build value.
.It Fl j Ar name
Run the bulk build on the jail named
.Ar name .
.It Fl k
Do not consider failures to be fatal
when using
.Fl t .
Do not skip dependent ports on findings.
This flag is automatically set when using
.Fl at .
.It Fl N
Do not build a package repository when the build is completed.
.It Fl NN
Do not commit the package repository when the build is completed.
This can be used to do a full test build but have the opportunity to delete
it all rather than publish it.
The packages will be stored in a
.Pa .building
directory that can be removed manually, otherwise the next build will
resume from that directory.
Depends on
.Cm ATOMIC_PACKAGE_REPOSITORY
being set to
.Sy yes .
.It Fl n
Dry run.
Show what would be done, but do not actually build or delete any
packages.
.It Fl O Ar overlay
Specify an extra ports tree to use as an overlay.
Multiple
.Fl O Ar overlay
arguments may be specified to stack them.
.Pp
These overlays should be setup with
.Xr poudriere-ports(8) .
.It Fl p Ar tree
Specify on which ports
.Ar tree
the bulk build will be done.
.Pq Default: Dq Li default
.It Fl R
Clean
.Va RESTRICTED
packages after building.
.It Fl r
Recursively test all dependencies as well.
This flag is automatically set when using
.Fl at .
.It Fl S
Do not recursively rebuild packages affected by other packages requiring
incremental rebuild.
This may result in broken packages if the ones they depend on are updated,
are not ABI-compatible, and were not properly
.Va PORTREVISION
bumped.
.It Fl T
Try building
.Va BROKEN
ports by defining
.Va TRYBROKEN
for the build.
.It Fl t
Add some testing to the specified ports.
Add
.Fl r
to recursively test all port dependencies as well.
When used with
.Fl a
then
.Fl rk
are implied.
.It Fl v
Enable additional information to be shown during the build.
Specify twice to enable debug output.
.It Fl w
Save
.Va WRKDIR
on build failure.
The
.Va WRKDIR
will be tarred up into
.No ${ Ns Va POUDRIERE_DATA Ns } Ns Pa /wrkdirs .
.It Fl z Ar set
This specifies which SET to use for the build.
See the
.Em CUSTOMIZATION
section in
.Xr poudriere 8
for examples of how this is used.
.El
.Sh ENVIRONMENT
.Bl -tag -width "POUDRIERE_INTERACTIVE_NO_INSTALL"
.It Ev POUDRIERE_INTERACTIVE_NO_INSTALL
If specified, the package is not installed in interactive mode.
.It Ev TERM
Passed through for interactive modes.
.El
.Sh EXAMPLES
.Bl -tag -width 0n
.It Sy Example 1\&: No Starting a Bulk Build
.Pp
The following example starts a bulk build of two ports.
.Bd -literal -offset 2n
.Li # Ic poudriere bulk accessibility/sct www/firefox
.Ed
.El
.Sh SEE ALSO
.Xr poudriere 8 ,
.Xr poudriere-distclean 8 ,
.Xr poudriere-image 8 ,
.Xr poudriere-jail 8 ,
.Xr poudriere-logclean 8 ,
.Xr poudriere-options 8 ,
.Xr poudriere-pkgclean 8 ,
.Xr poudriere-ports 8 ,
.Xr poudriere-queue 8 ,
.Xr poudriere-status 8 ,
.Xr poudriere-testport 8 ,
.Xr poudriere-version 8
.Sh AUTHORS
.An Baptiste Daroussin Aq bapt@FreeBSD.org
.An Bryan Drewery Aq bdrewery@FreeBSD.org