source: devel/pb-modules/etc/pb.yml.pod

Last change on this file was 2426, checked in by bruno, 3 weeks ago

Start adding install and test target for pb - local install works already

File size: 68.2 KB
Line 
1=pod
2
3=head1 NAME
4
5Documentation for pb configuration files
6
7=head1 DESCRIPTION
8
9pb helps you build various packages directly from your project sources.
10In order to work correctly, it relies on a certain number of configuration files. Most of these configuration parameters can be setup in all the configuration files, however, they generally make more sense in a specific one, which is indicated. There are mainly 4 configuration files, the one in the home directory of the user (used first), the one from the project (use in second), the one in the VM/VE hosting directory, and the one provided by the tool in /etc/pb or /usr/local/etc/pb (lastly).
11
12=head1 SYNOPSIS
13
14Those files have the same format, which is YAML starting after v0.14 of pb.
15
16keyword:
17  key: value1[,value2,...]
18
19(Before it was using: keyword key = value1[,value2,...])
20
21The key could be also default, in which case it will be used as a default value if no more precise content is given for the key.
22
23Each value is detailed below giving the nature of its use (Mandatory or Optional - only used for certain feature), the value of the key (could be the project, an OS name, default, ...), the value of the parameter field and its format, the default configuration file in which it should be defined (home $HOME/.pbrc.yml, conf /etc/pb/pb.yml or /usr/local/etc/pb/pb.yml, VE vepath/.pbrc.yml, VM vmpath/.pbrc.yml, or project project.yml) and an example of use.
24
25=head1 OPTIONS
26
27=over 4
28
29=item B<addbuildrepo>
30
31 Nature: Optional
32 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
33 Value: comma separated list of URLs that point to repository files, or packages to install at project build time. The values may not include substitutions.
34 Conffile: project
35 Example: addbuildrepo:
36            centos-5-x86_64: file:///prj/extras.repo,http://mirror.centos.org/centos/5.8/extras/x86_64/RPMS/chrpath-0.13-3.el5.centos.x86_64.rpm
37
38=item B<addinstallrepo>
39
40 Nature: Optional
41 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
42 Value: comma separated list of URLs that point to repository files, or packages to install at project installation time. The values may not include substitutions.
43 Conffile: project
44 Example: addinstallrepo:
45            centos-7-x86_64: ftp://ftp.project-builder.org/centos/7/x86_64/pb.repo
46
47=item B<addtestrepo>
48
49 Nature: Optional
50 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
51 Value: comma separated list of URLs that point to repository files, or packages to install at project test time. The values may not include substitutions.
52 Conffile: project
53 Example: addtestrepo:
54            centos-7-x86_64: ftp://ftp.project-builder.org/centos/7/x86_64/pb.repo
55
56=item B<cachedir>
57
58 Nature: Optional
59 Key: pb project: rpmbootstrap|pbmkbm|pb
60 Value: Directory to cache temporary content for the relevant pb project.
61 Conffile: pb
62 Example: cachedir:
63            rpbootstrap: /var/cache/rpmbootstrap
64
65=item B<checkexclude>
66
67 Nature: Optional
68 Key: package (as provided in defpkgdir or extpkgdir)
69 Value: comma separated list of OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch) that are excluded from the checkssh command (no build made for them). The OS name is generaly used here.
70 Conffile: project
71 Example: checkexclude:
72            pkg1: centos,lsb,solaris
73
74=item B<cpandir>
75
76 Nature: Optional
77 Key: project (as defined in the -p option or PBPROJ environment variable)
78 Value: CPAN Pause directory to upload new modules
79 Conffile: pb
80 Example: cpandir:
81            default: incoming
82
83=item B<cpanpasswd>
84
85 Nature: Optional
86 Key: project (as defined in the -p option or PBPROJ environment variable)
87 Value: CPAN Pause user's password
88 Conffile: home
89 Example: cpanpasswd:
90            default: mycomplicatedpwd
91
92=item B<cpanpause>
93
94 Nature: Optional
95 Key: project (as defined in the -p option or PBPROJ environment variable)
96 Value: CPAN Pause site to upload new modules
97 Conffile: pb
98 Example: cpanpause:
99            default: pause.perl.org
100
101=item B<cpansubdir>
102
103 Nature: Optional
104 Key: project (as defined in the -p option or PBPROJ environment variable)
105 Value: CPAN Pause subdirectory in the user's area to upload into
106 Conffile: pb
107 Example: cpansubdir:
108            default: mydir
109
110=item B<cpanurl>
111
112 Nature: Optional
113 Key: project (as defined in the -p option or PBPROJ environment variable)
114 Value: CPAN Pause URL to activate the upload mecanism
115 Conffile: pb
116 Example: cpanurl:
117            default: http://pause.perl.org/pause/authenquery
118
119=item B<cpanuser>
120
121 Nature: Optional
122 Key: project (as defined in the -p option or PBPROJ environment variable)
123 Value: CPAN Pause user
124 Conffile: home
125 Example: cpanuser:
126            default: XXX
127
128=item B<defpkgdir>
129
130 Nature: Mandatory
131 Key: project (as defined in the -p option or PBPROJ environment variable)
132 Value: comma separated list of packages built by default in this project. When not using any package name as a parameter to pb commands, this list will be used.
133 Conffile: project
134 Example: defpkgdir:
135            mondorescue: mondo,mindi NB: a default value is not really meaningful.
136
137=item B<delivery>
138
139 Nature: Optional
140 Key: project (as defined in the -p option or PBPROJ environment variable)
141 Value: directory where to deliver packages once built for ftp/web access.
142 Conffile: project
143 Example: delivery:
144            mondorescue: prod
145
146=item B<dockeropt>
147
148 Nature: Optional
149 Key: project (as defined in the -p option or PBPROJ environment variable)
150 Value: List of the options to call docker with
151 Conffile: project
152 Example: dockeropt:
153            default: --bip=172.16.42.1/16
154
155=item B<dockerregistry>
156
157 Nature: Optional
158 Key: project (as defined in the -p option or PBPROJ environment variable)
159 Value: name of the docker registry to interact with if any
160 Conffile: project
161 Example: dockerregistry:
162            mondorescue: localhost:5900/mondorescue
163
164=item B<dockerrepository>
165
166 Nature: Optional
167 Key: project (as defined in the -p option or PBPROJ environment variable)
168 Value: name of the docker repository to interact with if any. It is mandatory if no dockerregistry is defined.
169 Conffile: project
170 Example: dockerrepository:
171            mondorescue: localhost:5000/mondorescue
172
173=item B<extpkgdir>
174
175 Nature: Optional
176 Key: project (as defined in the -p option or PBPROJ environment variable)
177 Value: comma separated list of packages built in addition in this project. When using the all package name as a parameter to pb commands, this list will be used, in addition to the defpkgdir list.
178 Conffile: project
179 Example: extpkgdir:
180            mondorescue: mondo-doc,mindi-mindibusybox
181
182=item B<filteredfiles>
183
184 Nature: Optional
185 Key: package (as provided in defpkgdir or extpkgdir)
186 Value: comma separated list of files that will be filtered using the macro system from pb, during the creation of the compressed source tar files for this package. Their path is relative to the directory containing the package.
187 Conffile: project
188 Example: filteredfiles:
189            mindi: rootfs/sbin/init,mindi,install.sh,doc/mindi.8
190
191=item B<ftp_proxy>
192
193 Nature: Optional
194 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
195 Value: string indicating the proxy to use
196 Conffile: pb
197 Example: ftp_proxy:
198            default: http://example.com:3128/
199
200=item B<http_proxy>
201
202 Nature: Optional
203 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
204 Value: string indicating the proxy to use
205 Conffile: pb
206 Example: http_proxy:
207            default: http://example.com:3128/
208
209=item B<https_proxy>
210
211 Nature: Optional
212 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
213 Value: string indicating the proxy to use
214 Conffile: pb
215 Example: https_proxy:
216            default: http://example.com:3128/
217
218=item B<logcmd>
219
220 Nature: Mandatory
221 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
222 Value: internal (the application then handles the logging of what it finds useful) or the name of an application to launch to log context (e.g. sos, cfg2html, ...).
223 Conffile: pb
224 Example: logcmd:
225            mageia: sos
226
227=item B<logcmds>
228
229 Nature: Optional
230 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
231 Value: In case the B<logcmd> command is internal, a comma separated list of the commands whose trace execution is to be captured in order to log context.
232 Conffile: pb
233 Example: logcmds:
234            mageia: mount,lsmod,esxcfg-module -l,df -T
235
236=item B<logfiles>
237
238 Nature: Optional
239 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
240 Value: In case the B<logcmd> command is internal, a comma separated list of the files to capture in order to log context.
241 Conffile: pb
242 Example: logfiles:
243            mageia: /etc/raidtab,/proc/cmdline,/proc/swaps
244
245=item B<logopt>
246
247 Nature: Optional
248 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
249 Value: In case the B<logcmd> command is not internal, the options of the B<logcmd> application to launch to log context
250 Conffile: pb
251 Example: logopt:
252            mageia: --all
253
254=item B<mkbmbootcmds>
255
256 Nature: Mandatory
257 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
258 Value: comma separated list of commands to be copied from the original OS to the target boot media tree (works recursively for directory creation on the target). Their actual path is deduced from the PATH variable.
259 Conffile: pb
260 Example: mkbmbootcmds:
261            linux: perl,awk,gawk,dd,grep,uname
262
263=item B<mkbmbootdirs>
264
265 Nature: Mandatory
266 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
267 Value: comma separated list of directories to be copied from the original OS to the target boot media tree (works recursively on the target).
268 Conffile: pb
269 Example: mkbmbootdirs:
270            linux: /etc/ssh,/etc/udev,/etc/mdadm
271
272=item B<mkbmbootfiles>
273
274 Nature: Mandatory
275 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
276 Value: comma separated list of files to be copied from the original OS to the target boot media tree (works recursively for directory creation on the target).
277 Conffile: pb
278 Example: mkbmbootfiles:
279            linux: /etc/mdadm.conf,/etc/raidtab,/etc/modprobe.conf
280
281=item B<mkbmkerneldir>
282
283 Nature: Mandatory
284 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
285 Value: path of the directory containing your kernel.
286 Conffile: pb
287 Example: mkbmkerneldir:
288            linux: /boot
289
290=item B<mkbmkernelfile>
291
292 Nature: Optional
293 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
294 Value: full path of the your kernel.
295 Conffile: pb
296 Example: mkbmkernelfile:
297            linux: /boot/vmlinuz-specific
298
299=item B<mkbmkernelnamere>
300
301 Nature: Mandatory
302 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
303 Value: Perl Regular Expression allowing to find OS kernel names in the B<kerneldir> directory.
304 Conffile: pb
305 Example: mkbmkerneldir:
306            linux: ^linu|^vmlinu|^xen
307
308=item B<mkbmtargetdirs>
309
310 Nature: Mandatory
311 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
312 Value: comma separated list of empty directory paths to be created on the target boot media.
313 Conffile: pb
314 Example: mkbmtargetdirs:
315            linux: /tmp,/dev
316
317=item B<namingtype>
318
319 Nature: Optional
320 Key: package (as provided in defpkgdir or extpkgdir)
321 Value: perl, if packages are CPAN perl modules that need to be named respecting the distribution perl convention (perl-Name for rpm, libname-perl for deb)
322 Conffile: project
323 Example: namingtype:
324            ProjectBuilder: perl
325
326=item B<osambiguous>
327
328 Nature: Optional
329 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). In that case, should be an OS name.
330 Value: comma separated list of distributions which use the same file name in /etc for different distributions (ex: /etc/redhat-release for redhat, rhel, mandriva,...). Cf: B<osrelambfile>
331 Conffile: pb
332 Example: osambiguous:
333            debian: debian,ubuntu
334
335=item B<oschkcmd>
336
337 Nature: Optional
338 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
339 Value: package checker tool.
340 Conffile: pb
341 Example: oschkcmd:
342            deb: /usr/bin/lintian
343
344=item B<oschkopt>
345
346 Nature: Optional
347 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
348 Value: package checker tool options.
349 Conffile: pb
350 Example: oschkcmd:
351            rpm: -i
352
353=item B<oscmd>
354
355 Nature: Mandatory
356 Key: tool (pb or rpmbootstrap)
357 Value: coma separated list of commands that are mandatory on the underlying system
358 Conffile: pb
359 Example: oscmd:
360            pb: tar,ls
361
362=item B<oscmdopt>
363
364 Nature: Mandatory
365 Key: tool (pb or rpmbootstrap)
366 Value: come separated list of commands that are optional on the underlying system
367 Conffile: pb
368 Example: oscmd:
369            pb: svn2cl,svn,cvs
370
371=item B<oscodename>
372
373 Nature: Optional
374 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). In that case, should be an os-ver.
375 Value: code name. Mostly useful for debian and ubuntu, due to debootstrap.
376 Conffile: pb
377 Example: oscodename debian-5.0 = lenny
378
379=item B<osfamily>
380
381 Nature: Mandatory
382 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). In that case, should be an os.
383 Value: OS family name (used to group similar distribution for handling)
384 Conffile: pb
385 Example: osfamily:
386            debian: du
387
388=item B<osins>
389
390 Nature: Optional
391 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
392 Value: OS command to lauch in order to automatically install packages on it.
393 Conffile: pb
394 Example: osins:
395            fedora: sudo yum -y install
396
397=item B<oslocalins>
398
399 Nature: Optional
400 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
401 Value: OS command to lauch in order to automatically install local packages on it.
402 Conffile: pb
403 Example: oslocalins:
404            debian: sudo dpkg -i
405
406=item B<osmindep>
407
408 Nature: Optional
409 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). NB: a default value is highly interesting here.
410 Value: comma separated list of packages needed before setupvm|ve can be run. Install them with your distribution in VM or automatically in VE when possible.
411 Conffile: pb
412 Example: osmindep:
413            default: perl,sudo,wget,tar,make,gzip
414
415=item B<osnover>
416
417 Nature: Optional
418 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
419 Value: true|false. True means that this OS has no need to keep the version
420 Conffile: pb
421 Example: osnover:
422            gentoo: true
423
424=item B<ospatchcmd>
425
426 Nature: Optional
427 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
428 Value: package patch command. For RPM is implicit.
429 Conffile: pb
430 Example: ospatchcmd:
431            deb: /usr/bin/patch
432
433=item B<ospatchopt>
434
435 Nature: Optional
436 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
437 Value: package patch options.
438 Conffile: pb
439 Example: ospatchcmd:
440            deb: -s -p1
441
442=item B<ospathcmd-*>
443
444 Nature: Optional
445 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
446 Value: Full path name of the command mentioned after the '-' for the relative OS
447 Conffile: pb
448 Example: ospathcmd-halt:
449            solaris: /usr/sbin/halt, ospathcmd-halt default = /sbin/halt
450
451=item B<osperldep>
452
453 Nature: Optional
454 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
455 Value: comma separated list of perl modules needed by pb and not provided in a package format for the relative OS, and that will be installed from CPAN in your VM/VE.
456 Conffile: pb
457 Example: osperldep:
458            rhel-5: Module-Build,File-MimeInfo,File-BaseDir,Mail-Sendmail
459
460=item B<osperlver>
461
462 Nature: Mandatory (for each module mentioned in B<osperldep>)
463 Key: Perl Module (as defined in B<osperldep>)
464 Value: Version of the perl module that needs to be found on CPAN.
465 Conffile: pb
466 Example: osperlver:
467            Date-Manip: 5.54
468
469=item B<ospkg>
470
471 Nature: Optional (Mandatory if pbinstalltype is pkg)
472 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
473 Value: comma separated list of packages that have to be installed in order for pb to be operational in the VE|VM
474 Conffile: pb
475 Example: ospkg:
476            rhel-5: project-builder
477
478=item B<ospkgdep>
479
480 Nature: Optional
481 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
482 Value: comma separated list of packages that are needed by pb and should be installed automatically in the VM/VE during the setupvm|ve phasis by pb.
483 Conffile: pb
484 Example: ospkgdep:
485            rhel-5: wget,make,ntp,patch,perl-DateManip
486
487=item B<osrelambfile>
488
489 Nature: Mandatory (per OS mentioned in B<osambiguous>)
490 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). Should be the OS name here.
491 Value: full path name of the ambiguous file describing that distribution, as well as some others. All the distributions mentioned here should also be mentioned with their ambiguous other distribution in the B<osambiguous> parameter.
492 Conffile: pb
493 Example: osrelambfile:
494            debian: /etc/debian_version
495
496=item B<osrelexpr>
497
498 Nature: Mandatory (per OS mentioned in B<osrelambfile> and B<osrelfile>)
499 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
500 Value: the perl regular expression used to parse the B<osrelambfile> in order to extract from it the version of the distribution (in parenthesis to allow its usage as $1 by perl)
501 Conffile: pb
502 Example: osrelexpr:
503            rhel: Red Hat (?:Enterprise Linux|Linux Advanced Server) .*release ([0-9.]+).* \(
504
505=item B<osrelfile>
506
507 Nature: Mandatory
508 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). Should be the OS name here.
509 Value: full path name of the file describing non-ambiguously that distribution. There should be a bijection between the file and the distribution name.
510 Conffile: pb
511 Example: osrelfile:
512            fedora: /etc/fedora-release
513
514=item B<osremovedotinver>
515
516 Nature: Optional
517 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
518 Value: true|false. If true, then no '.' (dot) character is kept in the version name of that OS.
519 Conffile: pb
520 Example: osremovedotinver:
521            redhat: true
522
523=item B<osrepo>
524
525 Nature: Optional (Mandatory if pbinstalltype is pkg)
526 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
527 Value: comma separated list of packages, yum repo or apt sources.list files to be added to the VE|VM to support package installation of pb
528 Conffile: pb
529 Example: osrepo:
530            rpm: ftp://ftp.project-builder.org/$ddir/$dver/pb.repo
531
532=item B<ossha>
533
534 Nature: Optional (Mandatory if rpm type of package)
535 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
536 Value: sha algorithm used br createrepo
537 Conffile: pb
538 Example: ossha:
539            fedora-10: sha1
540
541=item B<ossudoersmode>
542
543 Nature: Mandatory
544 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
545 Value: suffix that will be used in the name of the packages created. By default, concatenation of OS name and version.
546 Conffile: pb
547 Example: ossudoersmode:
548            novell: 640
549
550=item B<ossuffix>
551
552 Nature: Optional
553 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
554 Value: suffix that will be used in the name of the packages created. By default, concatenation of OS name and version.
555 Conffile: pb
556 Example: ossuffix:
557            mandriva: mdv
558
559=item B<ostype>
560
561 Nature: Mandatory
562 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
563 Value: build type grouping packages family. This is used internaly by pb to make various handling depending on that build type.
564 Conffile: pb
565 Example: ostype:
566            rh: rpm, ostype md = rpm, ostype novell = rpm
567
568=item B<osupd>
569
570 Nature: Optional
571 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
572 Value: OS command to lauch in order to automatically update th VM|VE
573 Conffile: pb
574 Example: osupd:
575            fedora: sudo yum -y update
576
577=item B<ossueminorrel>
578
579 Nature: Mandatory
580 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
581 Value: Should that OS distinguish between its minor version, considering them as different versions or not. Typically for CentOS where .x versions make incompatible changes.
582 Conffile: pb
583 Example: ossueminorrel:
584            centos: true
585
586=item B<pbadditionalgpg>
587
588 Nature: Optional
589 Key: project (as defined in the -p option or PBPROJ environment variable)
590 Value: GPG Key (hexadecimal) list of values separated by ',' that needs to be exported for this project. Useful when changing GPG keys and keeping old packages signed with the former key, use that field to give the value of that former key
591 Conffile: project
592 Example: pbadditionalgpg:
593            pb: 0x141B9FF237DB9883
594
595=item B<pbconfurl>
596
597 Nature: Mandatory
598 Key: project (as defined in the -p option or PBPROJ environment variable)
599 Value: B<pb URL> giving access to where the pb configuration dir is stored. Under that directory you have the same tree infrastructure as the upstream project, and under the pb packaging infra, including the project configuration file. Cf: man
600 Conffile: home|project
601 Example: pbconfurl:
602            fossology: svn+ssh://user@svn.project-builder.org/mondo/svn/pb/projects/fossology/pbconf, cvs+ssh://:ext:user@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe/pbconf
603
604=item B<pbdefdir>
605
606 Nature: Optional
607 Key: project (as defined in the -p option or PBPROJ environment variable)
608 Value: local directory under which every pb related operation will take place. if not defined then /var/cache. A default value is highly interesting here. If you want to use VMs/VEs, then use $ENV{'HOME'} to make it portable to it.
609 Conffile: home
610 Example: pbdefdir:
611            default: $ENV{'HOME'}/local/pb/projects
612
613=item B<pbgitremote>
614
615 Nature: Optional
616 Key: project (as defined in the -p option or PBPROJ environment variable)
617 Value: Remote name of the git repository used. The default is origin
618 Conffile: home
619 Example: pbgitremote:
620            python-redfish: upstream
621
622=item B<pbgpgcheck>
623
624 Nature: Optional
625 Key: project (as defined in the -p option or PBPROJ environment variable)
626 Value: Whether the repository file should be generated specifying that gpg checking of the packages is on. Note that failures to sign packages is tolerated by default, which means that signatures can fail making the repository file generated not work. The default is to require gpg checks (value is 1)
627 Conffile: project
628 Example: pbgpgcheck:
629            Lintel: 0
630
631=item B<pbgpgserver>
632
633 Nature: Mandatory
634 Key: project (as defined in the -p option or PBPROJ environment variable)
635 Value: The GPG server to use when looking for GPG keys.
636 Conffile: pb
637 Example: pbgpgserver:
638            default: ipv4.pool.sks-keyservers.net
639
640=item B<pbinstalltype>
641
642 Nature: Mandatory
643 Key: project (as defined in the -p option or PBPROJ environment variable)
644 Value: file or pkg. Indicates how pb will be installed during the setupve|vm phase in the virtual environment|machine, using CPAN files or upstream packages. Only the dev team needs to use file as packages do not yet exist for it. Or when no repository exists to pull project-builder.org from.
645 Conffile: pb
646 Example: pbinstalltype:
647            default: pkg
648
649=item B<pbml>
650
651 Nature: Optional (Mandatory if using announce command)
652 Key: project (as defined in the -p option or PBPROJ environment variable)
653 Value: white space separated list of e-mail adresses used to send announces with the pb announce option.
654 Conffile: project
655 Example: pbml:
656            pb: pb-announce@project-builder.org pb-devel@project-builder.org
657
658=item B<pbpackager>
659
660 Nature: Mandatory
661 Key: project (as defined in the -p option or PBPROJ environment variable)
662 Value: Firstname Name and e-mail address of the person packaging the software.
663 Conffile: project
664 Example: pbpackager:
665            pb: Bruno Cornec <bruno@project-builder.org>
666
667=item B<pbparallel>
668
669 Nature: Optional
670 Key: tool (pb or rpmbootstrap)
671 Value: number of processes to execute in parallel. By default use the number of cores.
672 Conffile: pb
673 Example: pbparallel:
674            pb: 12
675
676=item B<pbpassfile>
677
678 Nature: Optional
679 Key: project (as defined in the -p option or PBPROJ environment variable)
680 Value: File containing the GPG passphrase that is used to sign packages
681 Conffile: home
682 Example: pbpassfile:
683            pb: /users/me/secret/passfile
684
685=item B<pbpasspath>
686
687 Nature: Optional
688 Key: project (as defined in the -p option or PBPROJ environment variable)
689 Value: The directory under which will be found your secret GPG key file.
690 Conffile: home
691 Example: pbpasspath:
692            pb: /home/me/.gnupg
693
694=item B<pbpassphrase>
695
696 Nature: Optional
697 Key: project (as defined in the -p option or PBPROJ environment variable)
698 Value: The GPG passphrase that is used to sign packages. Putting it in your conf file has security implications.
699 Conffile: home
700 Example: pbpassphrase:
701            pb: TheSecretPassPhrase
702
703=item B<pbpbr>
704
705 Nature: Optional
706 Key: project (as defined in the -p option or PBPROJ environment variable)
707 Value: whatever. As soon as this is defined, then that project is known as using pbr for source epansion.
708 Conffile: project
709 Example: pbpbr:
710            python-redfish: 1
711
712=item B<pbprojdir>
713
714 Nature: Optional
715 Key: project (as defined in the -p option or PBPROJ environment variable)
716 Value: local directory under which the project is locally exported. NB: a default value is highly interesting here. By default pbdefdir/projectname
717 Conffile: home
718 Example: pbprojdir:
719            mondorescue: $ENV{'HOME'}/local/mondorescue
720
721=item B<pbrepo>
722
723 Nature: Mandatory
724 Key: project (as defined in the -p option or PBPROJ environment variable)
725 Value: URL of the server hosting the upstream tar file.
726 Conffile: project
727 Example: pbrepo:
728            mondorescue: ftp://ftp.mondorescue.org
729
730=item B<pbshowsudo>
731
732 Nature: Optional
733 Key: project (as defined in the -p option or PBPROJ environment variable)
734 Value: false (by default), meaning that sudo commands executed with pb_system won't be shown in details, but that the associated comment will be used. For security cncerns, you may want to turn it to true in order to see what pb does with sudo to be safe. Turned on by debug flag.
735 Conffile: home
736 Example: pbshowsudo:
737            mondorescue: true
738
739=item B<pbsmtp>
740
741 Nature: Optional (Mandatory if using the announce command)
742 Key: project (as defined in the -p option or PBPROJ environment variable)
743 Value: FQDN of the mail server to use to send announces. NB: a default value is highly interesting here.
744 Conffile: home
745 Example: pbsmtp:
746            mondorescue: localhost
747
748=item B<pbsockscmd>
749
750 Nature: Optional
751 Key: project (as defined in the -p option or PBPROJ environment variable)
752 Value: name of the command to use to socksify network calls. NB: a default value is highly interesting here.
753 Conffile: home
754 Example: pbsockscmd:
755            default: tsocks
756
757=item B<pbstoponerr>
758
759 Nature: Optional
760 Key: project (as defined in the -p option or PBPROJ environment variable)
761 Value: false (by default), meaning that commands giving errors will not stop execution of the pb job. For quicker error solving, you may want to turn it to true in order to stop at the first error. Be aware that project-builder.org is not robust enough to work fully correctly with this on. Especially some commands may in a justified way error out, and you still want the process to go on.
762 Conffile: home
763 Example: pbstoponerr:
764            mondorescue: true
765
766
767=item B<pbprojurl>
768
769 Nature: Optional
770 Key: project (as defined in the -p option or PBPROJ environment variable)
771 Value: B<pbprojurl> giving access to where the project is stored. Normaly provided by the project, but could be overloaded for specific authentication information in the home configuration file or when using a DVCS
772 Conffile: home|project
773 Example: pbprojurl:
774            linuxcoe: cvs+ssh://:ext:user@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe, pbprojurl pb = svk:////local/pb
775
776=item B<pbusesshagent>
777
778 Nature: Mandatory
779 Key: project (as defined in the -p option or PBPROJ environment variable)
780 Value: false means that you want pb to create a dedicated SSH key pair to dialog with VM|RM and false that you prefer to use an existing SSH Agent instead and existing keys
781 Conffile: pb
782 Example: pbusesshagent:
783            default: false
784
785=item B<pbwf>
786
787 Nature: Optional
788 Key: project (as defined in the -p option or PBPROJ environment variable)
789 Value: whatever. As soon as this is defined, then that project is known as not well formed (have a subdirectory in its tar file under which all sources are put named project-version). This should be reported upstream to the project. tar files generated by project-builder.org to not suffer from that. This is valid when packaging for tar files and not CMS.
790 Conffile: project
791 Example: pbwf:
792            afio: 1
793
794=item B<pkgtag>
795
796 Nature: Optional
797 Key: package (as provided in defpkgdir or extpkgdir)
798 Value: Tag that needs to be used in package name (on rpm: name-ver-tag.arch.rpm).  Useful when different from the project version B<projtag> and when republishing a package due to package build modification (not code).
799 Conffile: project
800 Example: pkgtag:
801            mindi-busybox: 2
802
803=item B<pkgver>
804
805 Nature: Optional
806 Key: package (as provided in defpkgdir or extpkgdir)
807 Value: Version that needs to be used in package name (on rpm: name-ver-tag.arch.rpm). Useful when different from the project version B<projver>.
808 Conffile: project
809 Example: pkgver:
810            mindi-busybox: 1.7.3
811
812=item B<projcomponent>
813
814 Nature: Optional
815 Key: project (as defined in the -p option or PBPROJ environment variable)
816 Value: The component in the distribution repository, e.g. main for debian/ubuntu free software, (or non-free, contrib) or contrib for mandriva non core component e.g.
817 Conffile: project
818 Example: projcomponent:
819            Lintel: main
820
821=item B<projtag>
822
823 Nature: Mandatory
824 Key: project (as defined in the -p option or PBPROJ environment variable)
825 Value: tag that will be used for all packages names (on rpm: name-ver-tag.arch.rpm) in the project. Each package can overwrite it using B<pkgtag>.
826 Conffile: project
827 Example: projtag:
828            mondorescue: 1
829
830=item B<projver>
831
832 Nature: Mandatory
833 Key: project (as defined in the -p option or PBPROJ environment variable)
834 Value: version that will be used for all packages names (on rpm: name-ver-tag.arch.rpm) in the project. Each package can overwrite it using B<pkgver>.
835 Conffile: project
836 Example: projver:
837            mondorescue: 2.2.9
838
839=item B<rbsconf>
840
841 Nature: Optional
842 Key: project (as defined in the -p option or PBPROJ environment variable)
843 Value: for mock it's the configuration directory. For rinse it's its configuration file. For rpmbootstrap it's not used yet.
844 Conffile: ve
845 Example: rbsconf:
846            default: /etc/mock, rbsconf default = /etc/pb/pb-rinse.conf
847
848=item B<rbsb4pi>
849
850 Nature: Optional
851 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
852 Value: for mock it's not used. For rinse it's the script to call before doing installation (in order change the mirror location). For rpmbootstrap it's not used yet.
853 Conffile: ve
854 Example: rbsb4pi:
855            centos: /home/rinse/bin/before-post-install.sh
856
857=item B<rbsmirrorsrv>
858
859 Nature: Optional
860 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
861 Value: URL for the mirror server for setting up a virtual environment
862 Conffile: ve
863 Example: rbsmirrorsrv:
864            debian: http://mirrors1.kernel.org/
865
866=item B<rbsmirrorupd>
867
868 Nature: Optional
869 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
870 Value: Relative path wrt B<rbsmirrorsrv> where updates are located
871 Conffile: ve
872 Example: rbsmirrorupd:
873            mageia: ../updates
874
875=item B<rbsopt>
876
877 Nature: Optional
878 Key: tool used for rpm based VE. Could be one of rpmbootstrap, rinse, mock, ...
879 Value: Additional option to pass to the command
880 Conffile: ve
881 Example: rbsopt:
882            rpmbootstrap: -k
883
884=item B<rbspi>
885
886 Nature: Optional
887 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
888 Value: for mock it's not used. For rinse it's the script to call after doing installation for customization. For rpmbootstrap it's the script to call after doing installation for customization.
889 Conffile: ve
890 Example: rbspi:
891            centos: /home/rinse/bin/post-install.sh
892
893=item B<rmhost>
894
895 Nature: Mandatory
896 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
897 Value: IP address or name of the Remote Machine running the OS mentioned in the key, accessed through ssh.
898 Conffile: rm
899 Example: rmhost:
900            default: localhost - rmhost hpux-11.3-ia64 = 10.10.10.10 - rmhost mandriva-2010.2-x86_64 = machine1.domain.name
901
902=item B<rmlist>
903
904 Nature: Mandatory
905 Key: project (as defined in the -p option or PBPROJ environment variable)
906 Value: list of comma separated OS (under the form of os-ver-arch). The corresponding machines running these distributions are given in the rmpool parameter.
907 Conffile: rm
908 Example: rmlist:
909            default: mandriva-2010.2-i386,fedora-14-i386,rhel-6-i386,rhel-5-i386,pensuse-11.3-i386,sles-11-i386,gentoo-nover-i386,debian-5.0-i386,ubuntu-10.10-i386,solaris-10-i386,mandriva-2010.2-x86_64,fedora-14-x86_64,rhel-6-x86_64,rhel-5-x86_64,opensuse-11.3-x86_64,sles-11-x86_64,gentoo-nover-x86_64,debian-5.0-x86_64,ubuntu-10.10-x86_64,solaris-10-x86_64,hp-ux-11.3-ia64,rhel-5-ia64
910
911=item B<rmlogin>
912
913 Nature: Mandatory
914 Key: project (as defined in the -p option or PBPROJ environment variable)
915 Value: account name to use on the Remote Machine to build packages. Communication is done with ssh.
916 Conffile: rm
917 Example: rmlogin:
918            default: pb
919
920=item B<rmmonport>
921
922 Nature: Optional
923 Key: project (as defined in the -p option or PBPROJ environment variable)
924 Value: TCP port that is used to dialog with the monitor of the Remote Machine, to pass orders.
925 Conffile: rm
926 Example: rmmonport:
927            default: 4444
928
929=item B<rmntp>
930
931 Nature: Optional
932 Key: project (as defined in the -p option or PBPROJ environment variable)
933 Value: NTP server to contact for time accuracy with B<ospathcmd-ntpdate> before building.
934 Conffile: rm
935 Example: rmntp:
936            default: 1.pool.ntp.org
937
938=item B<rmpath>
939
940 Nature: Mandatory
941 Key: project (as defined in the -p option or PBPROJ environment variable)
942 Value: path where to find configuration file for Remote Machines management.
943 Conffile: rm
944 Example: rmpath:
945            default: /home/remote
946
947=item B<rmport>
948
949 Nature: Mandatory
950 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
951 Value: port number to use to communicate with the RM using the SSH protocol. This localport is redirected to the port 22 of the RM.
952 Conffile: rm
953 Example: rmport:
954            pb: 2222,rmport mondorescue = 2223
955
956=item B<rmtmout>
957
958 Nature: Optional
959 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). The family name is generaly used here.
960 Value: Time in seconds to wait before interacting with the RM. This may correspond to the time the RM takes to boot.
961 Conffile: rm
962 Example: rmtmout:
963            default: 10
964
965=item B<rmtype>
966
967 Nature: Mandatory
968 Key: project (as defined in the -p option or PBPROJ environment variable)
969 Value: ssh. For the moment, only ssh is supported as a communication means with RM.
970 Conffile: rm
971 Example: rmrtype:
972            default: ssh
973
974=item B<sshdir>
975
976 Nature: Mandatory
977 Key: project (as defined in the -p option or PBPROJ environment variable)
978 Value: dirname into which packages are uploaded on the B<sshhost> machine.
979 Conffile: project
980 Example: sshdir:
981            mondorescue: /pub/mondorescue
982
983=item B<sshhost>
984
985 Nature: Mandatory
986 Key: project (as defined in the -p option or PBPROJ environment variable)
987 Value: hostname to connect to in order to deliver packages to the repository server.
988 Conffile: project
989 Example: sshhost:
990            mondorescue: ftp.mondorescue.org
991
992=item B<sshlogin>
993
994 Nature: Optional
995 Key: project (as defined in the -p option or PBPROJ environment variable)
996 Value: login to use when connecting to the repository server B<sshhost> for package delivery. whoami result by default
997 Conffile: project
998 Example: sshlogin:
999            mondorescue: mylogin
1000
1001=item B<sshport>
1002
1003 Nature: Optional
1004 Key: project (as defined in the -p option or PBPROJ environment variable)
1005 Value: port to use when connecting to the repository server B<sshhost> for package delivery. 22 by default.
1006 Conffile: project
1007 Example: sshport:
1008            mondorescue: 22
1009
1010=item B<supfiles>
1011
1012Not used yet.
1013
1014=item B<testver>
1015
1016 Nature: Optional
1017 Key: project (as defined in the -p option or PBPROJ environment variable)
1018 Value: true (meaning this is a test version, whose tag will be generated automatically, based on 0+date in order to allow regular updates, and still be inferior to tag 1 of the official version, and delivered under the test subdirectory of the ftp server). By default false.
1019 Conffile: project
1020 Example: testver:
1021            mondorescue: true
1022
1023=item B<vedebtype>
1024
1025 Nature: Mandatory
1026 Key: project (as defined in the -p option or PBPROJ environment variable)
1027 Value: debootstrap (no other tool to create deb distro based chroot)
1028 Conffile: ve
1029 Example: vedebtype:
1030            default: debootstrap
1031
1032=item B<velist>
1033
1034 Nature: Mandatory
1035 Key: project (as defined in the -p option or PBPROJ environment variable)
1036 Value: list of comma separated OS (under the form of os-ver-arch).
1037 Conffile: ve
1038 Example: velist:
1039            default: centos-4-i386,centos-5-i386,centos-4-x86_64,centos-5-x86_64,debian-5.0-i386,debian-5.0-x86_64,lsb-4.0.1-i386,lsb-4.0.1-x86_64
1040
1041=item B<velogin>
1042
1043 Nature: Mandatory
1044 Key: project (as defined in the -p option or PBPROJ environment variable)
1045 Value: account name to use in the VE to build packages.
1046 Conffile: ve
1047 Example: velogin:
1048            default: pb
1049
1050=item B<ventp>
1051
1052 Nature: Optional
1053 Key: project (as defined in the -p option or PBPROJ environment variable)
1054 Value: NTP server to contact for time accuracy with B<ospathcmd-ntpdate> before building.
1055 Conffile: ve
1056 Example: ventp:
1057            default: 1.pool.ntp.org
1058
1059=item B<vepath>
1060
1061 Nature: Mandatory
1062 Key: project (as defined in the -p option or PBPROJ environment variable)
1063 Value: path where to find VEs. Ve will be created and used under that path. For each VE os-ver-arch, it will create a subdirectory tree os/ver/arch below that point.
1064 Conffile: ve
1065 Example: vepath:
1066            default: /home/rpmbootstrap
1067
1068=item B<verebuild>
1069
1070 Nature: Optional
1071 Key: project (as defined in the -p option or PBPROJ environment variable)
1072 Value: true|false. True means that the VE should be rebuild before usage.
1073 Conffile: ve
1074 Example: verebuild:
1075            default: true
1076
1077=item B<verpmtype>
1078
1079 Nature: Mandatory
1080 Key: project (as defined in the -p option or PBPROJ environment variable)
1081 Value: rpmbootstrap|rinse|mock (different tools to create a chroot environment for RPM based distributions. rpmbootstrap comes with pb. the 2 others are separate projects).
1082 Conffile: ve
1083 Example: verpmtype:
1084            default: rpmbootstrap
1085
1086=item B<vesnap>
1087
1088 Nature: Optional
1089 Key: project (as defined in the -p option or PBPROJ environment variable)
1090 Value: true|false. True means that the snapshot of the VE should be used before call to the VE. This snapshot consists of a compressed tar pf the VE. Which means that you will always start from a known state, resulting of a former snapshot operation on the VE. Also speeds up a lot the VM launch operation.
1091 Conffile: ve
1092 Example: vesnap:
1093            default: true
1094
1095=item B<vetype>
1096
1097 Nature: Mandatory
1098 Key: project (as defined in the -p option or PBPROJ environment variable)
1099 Value: chroot|schroot|docker. There are two different ways of launching a Virtual Environment activity in pb. For the moment only chroot and docker have been tested.
1100 Conffile: ve
1101 Example: vetype:
1102            default: chroot
1103
1104=item B<vmbuildtm>
1105
1106 Nature: Optional
1107 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). Default value is set to vmtmout
1108 Value: Time in seconds to wait before killing the VM if SSH port already used. This should corresponds to the time to send files, build the project and get packages in the VM.
1109 Conffile: project
1110 Example: vmbuildtm:
1111            default: 600,vmbuildtm mandriva-2009.0-x86_64 = 1200
1112
1113=item B<vmcmd>
1114
1115 Nature: Mandatory
1116 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). NB: a default value is highly interesting here.
1117 Value: Command to call to launch the VM emulator.  It can contain some options. Another way to pass options to the VM manager command launcher is by using the PBVMOPT environment variable, which comes in addition to the option vmopt.
1118 Conffile: vm
1119 Example: vmcmd:
1120            default: /usr/bin/kvm
1121
1122=item B<vmhost>
1123
1124 Nature: Mandatory
1125 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
1126 Value: hostname to connect to in order to reach the VM through ssh. Generally redirected from a port on localhost.
1127 Conffile: vm
1128 Example: vmhost:
1129            default: localhost
1130
1131=item B<vmlist>
1132
1133 Nature: Mandatory
1134 Key: project (as defined in the -p option or PBPROJ environment variable)
1135 Value: list of comma separated OS (under the form of os-ver-arch).
1136 Conffile: vm
1137 Example: vmlist:
1138            default: asianux-2-i386,asianux-3-i386,mandrake-10.1-i386,mandrake-10.2-i386,mandriva-2006.0-i386,mandriva-2007.0-i386,mandriva-2007.1-i386,mandriva-2008.0-i386,mandriva-2008.1-i386,mandriva-2009.0-i386,mandriva-2009.1-i386,mandriva-2010.0-i386,redhat-7.3-i386,redhat-9-i386,fedora-4-i386,fedora-5-i386,fedora-6-i386,fedora-7-i386,fedora-8-i386,fedora-9-i386,fedora-10-i386,fedora-11-i386,fedora-12-i386,rhel-2.1-i386,rhel-3-i386,rhel-4-i386,rhel-5-i386,suse-10.0-i386,suse-10.1-i386,suse-10.2-i386,opensuse-10.3-i386,opensuse-11.0-i386,opensuse-11.1-i386,opensuse-11.2-i386,sles-9-i386,sles-10-i386,sles-11-i386,gentoo-nover-i386,debian-3.1-i386,debian-4.0-i386,debian-5.0-i386,ubuntu-6.06-i386,ubuntu-7.04-i386,ubuntu-7.10-i386,ubuntu-8.04-i386,ubuntu-8.10-i386,ubuntu-9.04-i386,ubuntu-9.10-i386,solaris-10-i386,asianux-2-x86_64,asianux-3-x86_64,mandriva-2007.0-x86_64,mandriva-2007.1-x86_64,mandriva-2008.0-x86_64,mandriva-2008.1-x86_64,mandriva-2009.0-x86_64,mandriva-2009.1-x86_64,mandriva-2010.0-x86_64,fedora-6-x86_64,fedora-7-x86_64,fedora-8-x86_64,fedora-9-x86_64,fedora-10-x86_64,fedora-11-x86_64,fedora-12-x86_64,rhel-3-x86_64,rhel-4-x86_64,rhel-5-x86_64,suse-10.2-x86_64,opensuse-10.3-x86_64,opensuse-11.0-x86_64,opensuse-11.1-x86_64,opensuse-11.2-x86_64,sles-10-x86_64,sles-11-x86_64,gentoo-nover-x86_64,debian-4.0-x86_64,debian-5.0-x86_64,ubuntu-7.04-x86_64,ubuntu-7.10-x86_64,ubuntu-8.04-x86_64,ubuntu-8.10-x86_64,ubuntu-9.04-x86_64,ubuntu-9.10-x86_64,solaris-10-x86_64
1139
1140=item B<vmlogin>
1141
1142 Nature: Mandatory
1143 Key: project (as defined in the -p option or PBPROJ environment variable)
1144 Value: account name to use in the VM to build packages. Communication is done with ssh.
1145 Conffile: vm
1146 Example: vmlogin:
1147            default: pb
1148
1149=item B<vmmem>
1150
1151 Nature: Optional
1152 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
1153 Value: Memory size in MB to allocate to the VM.
1154 Conffile: vm
1155 Example: vmmem:
1156            default: 512
1157
1158=item B<vmmonport>
1159
1160 Nature: Optional
1161 Key: project (as defined in the -p option or PBPROJ environment variable)
1162 Value: TCP port that is used to dialog with the monitor of the VM, to pass orders such as snapshot. Not really operational yet.
1163 Conffile: vm
1164 Example: vmmonport:
1165            default: 4444
1166
1167=item B<vmntp>
1168
1169 Nature: Optional
1170 Key: project (as defined in the -p option or PBPROJ environment variable)
1171 Value: NTP server to contact for time accuracy with B<ospathcmd-ntpdate> before building.
1172 Conffile: vm
1173 Example: vmntp:
1174            default: 1.pool.ntp.org
1175
1176=item B<vmopt>
1177
1178 Nature: Optional
1179 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). NB: a default value is highly interesting here.
1180 Value: list of options to pass to the VM manager command launcher for that distribution. Another way to pass options to the VM manager command launcher is by using the PBVMOPT environment variable, which comes in addition to his option.
1181 Conffile: vm
1182 Example: vmopt:
1183            default: -m 384 -daemonize,vmopt mandriva-2009.0-i386 = -m 256 -daemonize -no-kvm
1184
1185=item B<vmpath>
1186
1187 Nature: Mandatory
1188 Key: project (as defined in the -p option or PBPROJ environment variable)
1189 Value: path where to find VMs. They will be created and used under that path. For each VM os-ver-arch, it will create a os-ver-arch.qemu file below that point.
1190 Conffile: vm
1191 Example: vmpath:
1192            default: /home/qemu
1193
1194=item B<vmport>
1195
1196 Nature: Mandatory
1197 Key: project (as defined in the -p option or PBPROJ environment variable)
1198 Value: port number to use to communicate with the VM using the SSH protocol. This localport is redirected to the port 22 of the VM.
1199 Conffile: vm
1200 Example: vmport:
1201            pb: 2222,vmport mondorescue = 2223
1202
1203=item B<vmsize>
1204
1205 Nature: Mandatory
1206 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
1207 Value: Size of the VM to create when using the newvm command of pb.
1208 Conffile: vm
1209 Example: vmsize:
1210            default: 7G
1211
1212=item B<vmsnap>
1213
1214 Nature: Optional
1215 Key: project (as defined in the -p option or PBPROJ environment variable)
1216 Value: true|false. True means that the snapshot of the VM called pb should be used. Which means that you will always start from a known state, resulting of a former snapshot operation on the VM. Also speeds up a lot the VM launch operation.
1217 Conffile: vm
1218 Example: vmsnap:
1219            default: true
1220
1221=item B<vmtmout>
1222
1223 Nature: Optional
1224 Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch). NB: a default value is highly interesting here.
1225 Value: Time in seconds to wait before interacting with the VM. This should correspond to the time the VM takes to boot.
1226 Conffile: vm
1227 Example: vmtmout:
1228            default: 180,vmtmout mandriva-2009.0-x86_64 = 500
1229
1230=item B<vmtype>
1231
1232 Nature: Mandatory
1233 Key: project (as defined in the -p option or PBPROJ environment variable)
1234 Value: qemu|kvm. For the moment, only QEMU or KVM are supported as virtualization technologies.
1235 Conffile: vm
1236 Example: vmtype:
1237            default: kvm
1238
1239=item B<webdir>
1240
1241 Nature: Optional
1242 Key: project (as defined in the -p option or PBPROJ environment variable)
1243 Value: Target directory containing the web content in the project that should be delivered when using the sbx|cms2webssh|pkg command of pb.
1244 Conffile: project
1245 Example: webdir:
1246            mondorescue: website
1247
1248=item B<websshdir>
1249
1250 Nature: Optional (when not using *2webssh commands)
1251 Key: project (as defined in the -p option or PBPROJ environment variable)
1252 Value: dirname into which content is uploaded on the B<websshhost> machine.
1253 Conffile: project
1254 Example: websshdir:
1255            mondorescue: /var/www/html
1256
1257=item B<websshhost>
1258
1259 Nature: Optional (when not using *2webssh commands)
1260 Key: project (as defined in the -p option or PBPROJ environment variable)
1261 Value: hostname to connect to in order to deliver content to the Web server.
1262 Conffile: project
1263 Example: websshhost:
1264            mondorescue: www.mondorescue.org
1265
1266=item B<websshlogin>
1267
1268 Nature: Optional (when not using *2webssh commands)
1269 Key: project (as defined in the -p option or PBPROJ environment variable)
1270 Value: login to use when connecting to the Web server B<websshhost> for content delivery.
1271 Conffile: project
1272 Example: websshlogin:
1273            mondorescue: mylogin
1274
1275=item B<websshport>
1276
1277 Nature: Optional (when not using *2webssh commands)
1278 Key: project (as defined in the -p option or PBPROJ environment variable)
1279 Value: port to use when connecting to the Web server B<websshhost> for content delivery.
1280 Conffile: project
1281 Example: websshport:
1282            mondorescue: 22
1283
1284=back
1285
1286=head1 OTHER PARAMETERS
1287
1288=over 4
1289
1290=item B<pb URLs>
1291
1292 The pbprojurl and pbconfurl parameters support multiple schemas to point to the repositories to use.
1293 They are parsed by project-builder.org to communicate with them.
1294
1295 The protocols can be git, git+svn, svk, svn, cvs, hg.
1296 If you have write access to the repository, you'll generally use an ssh access which will be noted by a +ssh at the end of the protocol used. If you don't you may use a +http(s) e.g. to access the repository.
1297
1298 Examples:
1299
1300 pbprojurl:
1301   fossology: git+https://github.com/fossology/fossology.git
1302   linuxcoe: cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe
1303   pb: svn+ssh://svn.mondorescue.org/prj/svn/pb
1304
1305 => You access the upstream FOSSology project in read mode (by https) and the project uses git as a VCS, that will also be used by project-builder.org to build.
1306 => You access the upstream LinuxCOE project in write mode (by ssh) and the project uses CVS as a VCS, that will also be used by project-builder.org to build.
1307 => For Project-builder.org itself, you access the upstream LinuxCOE project in write mode (by ssh) and the project uses CVS as a VCS, that will also be used by project-builder.org to build.
1308 => You access the upstream project-builder.org project in write mode (by ssh) and the project uses subversion as a VCS, that will also be used by project-builder.org to build.
1309
1310 If you use instead:
1311   pb: git+svn+ssh://svn.mondorescue.org/prj/svn/pb
1312
1313 => You access the upstream project-builder.org project in write mode (by ssh) and the project uses subversion as a VCS, and you use git svn to manage locally the software with git, that will also be used by project-builder.org to build.
1314
1315
1316 In some cases, there is no repository and the files are hosted remotely, in which case you can use an http(s) or ftp protocol
1317
1318 Examples:
1319
1320 pbprojurl:
1321   afio: ftp://localhost/src/afio-2.5.tar.gz
1322
1323 => You access the project in read mode as a tar compressed file format using ftp to have access to it and that will also be used by project-builder.org to build.
1324
1325
1326=item B<pb Directories>
1327
1328 In order to use project-builder.org to build packages for a project, you need to declare certain directories in your configuration file, and two URLS, as defined in the previous paragraph, linked to them.
1329
1330 Tree will look like this:
1331
1332             maint pbdefdir                         PBDEFDIR            dev dir (optional)
1333                  |                                                        |
1334            ------------------------                                --------------------
1335            |                      |                                |                  |
1336         pbproj1                pbproj2             PBPROJ       pbproj1           pbproj2   PBPROJDIR
1337            |                                                       |
1338  ---------------------------------------------                ----------
1339  *      *        *       |        |          |                *        *
1340 tag    dev    pbconf    ...    pbbuild  pbdelivery PBCONFDIR dev      tag
1341  |               |                         |       PBDESTDIR           |
1342  ---          ------                    pbrc.yml   PBBUILDDIR       -------
1343    |          |    |                                                |     |
1344   1.1        dev  tag                                              1.0   1.1                PBDIR
1345                    |
1346                 -------
1347                 |     |
1348                1.0   1.1                           PBROOTDIR
1349                       |
1350               ----------------------------------
1351               |          |           |         |
1352             pkg1      pbproj1.yml   pbfilter   pbcl
1353               |
1354        -----------------
1355        |      |        |
1356       rpm    deb    pbfilter
1357
1358
1359 (*) By default, if no relocation in .pbrc.yml, dev dir is taken in the maint pbdefdir (when appropriate)
1360 Names under a pbproj and the corresponding pbconf should be similar
1361
1362
1363 The first couple to declare is the pbconfurl and pbconfdir. They declare the location of the repository containing project-builder.org configuration files and the local directory in which they are checked out. They do not need to be hosted in the upstream repository and can be managed completely separately. If pbconfdir is not defined, by default it will be taken as the concatention of pbdefdir and the project name. If that's not the case in your setup, then specify the pbconfdir value
1364
1365 Examples:
1366
1367 pbconfurl:
1368  python-redfish: git+ssh://git@github.com:bcornec/python-redfish.git
1369  fossology: git+https://github.com/fossology/fossology.git
1370  uuwl: git+svn+ssh://svn.mondorescue.org/prj/svn/pb/projects/uuwl/pbconf
1371  pb: git+svn+ssh://svn.mondorescue.org/prj/svn/pb/pbconf
1372  afio: git+svn+ssh://svn.project-builder.org/prj/svn/pb/projects/afio/pbconf
1373  linuxcoe: cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe/pbconf
1374
1375 pbconfdir:
1376  python-redfish: $ENV{'HOME'}/Work/bruno/prj/python-redfish/pbconf
1377  fossology: $ENV{'HOME'}/Work/bruno/prj/fossology/git/pbconf
1378  uuwl: $ENV{'HOME'}/svn-git/pb/projects/uuwl/pbconf
1379
1380 pbdefdir:
1381  default: $ENV{'HOME'}/svn-git/pb/projects
1382  python-redfish: $ENV{'HOME'}/Work/bruno/prj
1383  fossology: $ENV{'HOME'}/Work/bruno/prj/fossology
1384  uuwl: $ENV{'HOME'}/svn-git
1385  pb: $ENV{'HOME'}/svn-git
1386
1387 => You access the project-builder.org configuration files for python-redfish in write mode (by ssh) and this project is using git as a VCS, that will also be used by project-builder.org to build packages. The first time, project-builder.org will clone the git repository from the pbconfurl URL into the pbconfdir directory, expanding the HOME directory on the fly. If the project is already cloned there it will just use it, with the current branch. The pbdefdir will be used for other parameters, but the pbconfdir value takes precedence (in this case both variable mean the same local location anyway). Here the upstream python-redfish project is hosting the pbconf info directly.
1388 => You access the project-builder.org configuration files for FOSSology in read-only mode (by https) and this project is using git as a VCS, that will also be used by project-builder.org to build packages. The first time, project-builder.org will clone the git repository from the pbconfurl URL into the pbconfdir directory, expanding the HOME directory on the fly. If the project is already cloned there it will just use it, with the current branch. The pbdefdir will be used for other parameters, but the pbconfdir value takes precedence (in this case both variable mean the same local location anyway). Here the upstream python-redfish project is hosting the pbconf info directly.
1389 => You access the project-builder.org configuration files for UUWL in write mode (by ssh) and this project is using SVN as a VCS to manage the repo and git svn will be used by project-builder.org to build packages. The first time, project-builder.org will clone the SVN repository from the pbconfurl URL into the pbconfdir directory, expanding the HOME directory on the fly. If the project is already cloned there it will just use it, with the current branch. The pbdefdir will be used for other parameters, but the pbconfdir value takes precedence (in this case variables point to different locations). Here the upstream UUWL project is not hosting the pbconf info directly, which is managed in the upstream SVN project-builder.org repository.
1390 => You access the project-builder.org configuration files for project-builder.org in write mode (by ssh) and this project is using SVN as a VCS to manage the repo and git svn will be used by project-builder.org to build packages. The first time, project-builder.org will clone the SVN repository from the pbconfurl URL into a directory whose name is the concatenation of the pb pbdefdir path and then the project name (PBPROJ value setup with the -p option see below, here pb), expanding the HOME directory on the fly, as there is no pbconfdir value setup for this project. If the project is already cloned there it will just use it, with the current branch. Here the upstream project-builder.org project is hosting the pbconf info directly.
1391 => You access the project-builder.org configuration files for afio in write mode (by ssh) and this project is using SVN as a VCS to manage the repo and git svn will be used by project-builder.org to build packages. The first time, project-builder.org will clone the SVN repository from the pbconfurl URL into a directory whose name is the concatenation of the default pbdefdir path and then the project name (PBPROJ value setup with the -p option see below, here afio), expanding the HOME directory on the fly, as there is no pbconfdir value setup for this project, and no value for this project for the pbdefdir parameter, only the default one. If the project is already cloned there it will just use it, with the current branch. Here the upstream afio project is not hosting the pbconf info directly, which is managed in the upstream SVN project-builder.org repository.
1392 => You access the project-builder.org configuration files for LinuxCOE in write mode (by ssh) and this project is using CVS as a VCS, that will be used by project-builder.org to build packages. The first time, project-builder.org will clone the CVS repository from the pbconfurl URL into a directory whose name is the concatenation of the default pbdefdir path and then the project name (PBPROJ value setup with the -p option see below, here linuxcoe), expanding the HOME directory on the fly, as there is no pbconfdir value setup for this project, and no value for this project for the pbdefdir parameter, only the default one. If the project is already cloned there it will just use it, with the current branch. Here the upstream LinuxCOE project is hosting the pbconf info directly.
1393
1394 Note that ultimately, if pbdefdir is not defined, project-builder.org will use /var/cache by default, which may fail if you do not have appropriate write rights.
1395
1396 The second couple to declare is the pbprojurl and pbprojdir. Similarly, they declare the location of the repository containing the upstream project files and the local directory in which they are checked out. If pbprojdir is not defined, by default it will be taken as the concatention of pbdefdir and the project name. If that's not the case in your setup, then specify the pbprojdir value
1397
1398 Examples:
1399
1400 pbprojurl:
1401  python-redfish: git+ssh://git@github.com:bcornec/python-redfish.git
1402  fossology: git+ssh://git@github.com:fossology/fossology.git
1403  uuwl: git+svn+ssh://svn.mondorescue.org/prj/svn/uuwl
1404  pb: git+svn+ssh://svn.mondorescue.org/prj/svn/pb
1405  afio: ftp://localhost/src/afio-2.5.tar.gz
1406  linuxcoe: cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe
1407
1408 pbprojdir:
1409  fossology: $ENV{'HOME'}/Work/bruno/prj/fossology/git
1410  pb: $ENV{'HOME'}/svn-git/pb
1411  linuxcoe: $ENV{'HOME'}/LinuxCOE/cvs
1412
1413 pbdefdir:
1414  default: $ENV{'HOME'}/svn-git/pb/projects
1415  python-redfish: $ENV{'HOME'}/Work/bruno/prj
1416  fossology: $ENV{'HOME'}/Work/bruno/prj/fossology
1417  uuwl: $ENV{'HOME'}/svn-git
1418  pb: $ENV{'HOME'}/svn-git
1419
1420 => You access the upstream files for python-redfish in write mode (by ssh) and this project is using git as a VCS, that will also be used by project-builder.org to manage the sources. The first time, project-builder.org will clone the git repository from the pbprojurl URL into a directory whose name is the concatenation of the python-redfish pbdefdir path and then the project name (PBPROJ value setup with the -p option see below, here python-redfish), expanding the HOME directory on the fly, as there is no pbprojdir value setup for this project. If the project is already cloned there it will just use it, with the current branch.
1421 => You access the upstream files for FOSSology in write mode (by ssh) and this project is using git as a VCS, that will also be used by project-builder.org to manage the sources. The first time, project-builder.org will clone the git repository from the pbprojurl URL into the pbprojdir directory, expanding the HOME directory on the fly. If the project is already cloned there it will just use it, with the current branch. The pbdefdir will be used for other parameters, but the pbprojdir value takes precedence (in this case variables point to different locations).
1422 => You access the upstream files for UUWL in write mode (by ssh) and this project is using SVN as a VCS to manage the repo and git svn will be used by project-builder.org to manage the sources. The first time, project-builder.org will clone the git repository from the pbprojurl URL into a directory whose name is the concatenation of the uuwl pbdefdir path and then the project name (PBPROJ value setup with the -p option see below, here uuwl), expanding the HOME directory on the fly, as there is no pbprojdir value setup for this project. If the project is already cloned there it will just use it, with the current branch.
1423 => You access the upstream files for project-builder.org in write mode (by ssh) and this project is using SVN as a VCS to manage the repo and git svn will be used by project-builder.org to manage the sources. The first time, project-builder.org will clone the git repository from the pbprojurl URL into the pbprojdir directory, expanding the HOME directory on the fly. If the project is already cloned there it will just use it, with the current branch.
1424 => You access the upstream files for afio in read-only mode and this project, which isn't developed anymore upstream, is just providing a compressed tar file using FTP as a VCS and it will be used by project-builder.org to manage the sources. The first time, project-builder.org will extract the sources from the tar file pointed to by the pbprojurl URL into a directory whose name is the concatenation of the default pbdefdir path, as there is no afio entry for this parameter, and then the project name (PBPROJ value setup with the -p option see below, here afio), expanding the HOME directory on the fly, as there is no pbprojdir value setup for this project.
1425 => You access the upstream files for LinuxCOE in write mode (by ssh) and this project is using CVS as a VCS to manage the repo and it will be used by project-builder.org to manage the sources. The first time, project-builder.org will export the CVS repository from the pbprojurl URL into the pbprojdir directory, expanding the HOME directory on the fly. If the project is already cloned there it will just use it, with the current branch.
1426
1427
1428 In order to help you validate the value for a given parameter, you may want to use pb -p pbproj getconf param_to_consider
1429
1430=item B<pb Environment Variables>
1431
1432 The following environment variables are used by pb when declared to change its behaviour:
1433
1434 PBACCOUNT
1435   Default: Empty
1436   Value: Login to use to connect to the VM/VE/RM. Also see -a option.
1437
1438 PBPROJ
1439   Default: Empty
1440   Value: Name of the project to build for. Also see -p option.
1441
1442 PBROOTDIR
1443   Default: Empty
1444   Value: Root directory of the configuration files for this project. Also see -r option.
1445
1446 PBV
1447   Default: Empty
1448   Value: List of VM/VE/RM to build for, separated by ','. Also see -m option
1449
1450 PBVCSOPT
1451   Default: Empty
1452   Value: Options to pass to the VCS command when interacting with the repository.
1453
1454 PBVMOPT
1455   Default: Empty
1456   Value: Options to pass to the VM engine to launch VMs.
1457
1458 PBVMTMOUT
1459   Default: 120
1460   Value: Timeout in seconds to wait for th launch of the VM before communicating with it. Also see parameter vmtmout in configuration files. Takes precedence.
1461
1462 TMPDIR
1463   Default: /tmp
1464   Value: Directory where temporary files will be created.
1465
1466 ftp_proxy
1467 http_proxy
1468 https_proxy
1469   Default: Empty
1470   Value: URL of the proxy server to use for these protocols.
1471
1472
1473 The following environment variables are generated by pb and can be used in build scripts:
1474
1475 PBBUILDDIR
1476   Value: Build directory (pbbuild) where packages are created locally. See the schema of ProjectBuilder::Env man page.
1477
1478 PBCMSLOGFILE
1479   Value: Intermediate log file generated for stable versions to create ChangeLog.
1480
1481 PBCONFDIR
1482   Value: Configuration directory (pbconf) where configuration files for the project are stored. See the schema of ProjectBuilder::Env man page. See pbconfdir parameter.
1483
1484 PBDEFDIR
1485   Value: Default directory where the project-builder.org will host host files for the projects, parent of PBPROJ directories. See the schema of ProjectBuilder::Env man page. See pbdefdir parameter.
1486
1487 PBDESTDIR
1488   Value: Destination directory (pbdelivery) where intermediate tar files are created locally. See the schema of ProjectBuilder::Env man page.
1489
1490 PBDIR
1491   Value: Directory where an upstream version is located. See the schema of ProjectBuilder::Env man page. Correspond to PBROOTDIR for project-builder.org conf files.
1492
1493 PBETC
1494   Value: .pbrc.yml configuration file of the user located in his HOME directory.
1495
1496 PBPACKAGER
1497   Value: E-mail address of the packager, used also to get GPG information. See pbpackager parameter.
1498
1499 PBPASSFILE
1500   Value: File containing the pass phrase for the GPG signature. Used with PBPASSPATH. See pbpassfile parameter.
1501
1502 PBPASSPATH
1503   Value: Path of the file containing the pass phrase for the GPG signature. Used with PBPASSFILE. See pbpasspath parameter.
1504
1505 PBPASSPHRASE
1506   Value: Pass phrase for the GPG signature. Used instead of PBPASSPATH+PBPASSFILE. See pbpassphrase parameter.
1507
1508 PBPKG
1509   Value: Name of the package built.
1510
1511 PBPROJDIR
1512   Value: Directory where an upstream project is located. See the schema of ProjectBuilder::Env man page. Correspond to PBPROJ dir under PBDEFDIR for project-builder.org conf files.
1513
1514 PBPROJTAG
1515   Value: Tag of the packages created, indicating the build procedure version. See pbprojtag parameter.
1516
1517 PBPROJVER
1518   Value: Version of the packages created. See pbprojver parameter.
1519
1520 PBREVISION
1521   Value: Revision of the project in the VCS. Revision for SVN, commit ID for git, ...
1522
1523 PBVMPORT
1524   Value: Offset to the base port to communicate with the VM
1525
1526 PBSOLDESTDIR
1527   Value: Target directory for the Solaris prototype
1528
1529=back
1530
1531=head1 COPYRIGHT
1532
1533 (c) B. Cornec 2007-today
1534 Eric Anderson's changes are (c) Copyright 2012 Hewlett Packard
1535 Provided under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) Creative Common License
1536
1537=cut
Note: See TracBrowser for help on using the repository browser.