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

Last change on this file since 2375 was 2375, checked in by bruno, 6 months ago

Fix partly the examples to use YAML format instead of previous one

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