NAME
    Documentation for pb configuration files

DESCRIPTION
    pb helps you build various packages directly from your project sources. In
    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).

SYNOPSIS
    Those files have the same format, which is YAML starting after v0.14 of
    pb.

    keyword: key: value1[,value2,...]

    (Before it was using: keyword key = value1[,value2,...])

    The 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.

    Each 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.

OPTIONS
    addbuildrepo
         Nature: Optional
         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.
         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.
         Conffile: project
         Example: addbuildrepo:
                    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

    addinstallrepo
         Nature: Optional
         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.
         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.
         Conffile: project
         Example: addinstallrepo:
                    centos-7-x86_64: ftp://ftp.project-builder.org/centos/7/x86_64/pb.repo

    addtestrepo
         Nature: Optional
         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.
         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.
         Conffile: project
         Example: addtestrepo:
                    centos-7-x86_64: ftp://ftp.project-builder.org/centos/7/x86_64/pb.repo

    cachedir
         Nature: Optional
         Key: pb project: rpmbootstrap|pbmkbm|pb
         Value: Directory to cache temporary content for the relevant pb project.
         Conffile: pb
         Example: cachedir:
                    rpbootstrap: /var/cache/rpmbootstrap

    checkexclude
         Nature: Optional
         Key: package (as provided in defpkgdir or extpkgdir)
         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.
         Conffile: project
         Example: checkexclude:
                    pkg1: centos,lsb,solaris

    cpandir
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: CPAN Pause directory to upload new modules
         Conffile: pb
         Example: cpandir:
                    default: incoming

    cpanpasswd
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: CPAN Pause user's password
         Conffile: home
         Example: cpanpasswd:
                    default: mycomplicatedpwd

    cpanpause
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: CPAN Pause site to upload new modules
         Conffile: pb
         Example: cpanpause:
                    default: pause.perl.org

    cpansubdir
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: CPAN Pause subdirectory in the user's area to upload into
         Conffile: pb
         Example: cpansubdir:
                    default: mydir

    cpanurl
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: CPAN Pause URL to activate the upload mecanism
         Conffile: pb
         Example: cpanurl:
                    default: http://pause.perl.org/pause/authenquery

    cpanuser
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: CPAN Pause user
         Conffile: home
         Example: cpanuser:
                    default: XXX

    defpkgdir
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: project
         Example: defpkgdir:
                    mondorescue: mondo,mindi NB: a default value is not really meaningful.

    delivery
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: directory where to deliver packages once built for ftp/web access.
         Conffile: project
         Example: delivery:
                    mondorescue: prod

    dockeropt
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: List of the options to call docker with
         Conffile: project
         Example: dockeropt:
                    default: --bip=172.16.42.1/16

    dockerregistry
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: name of the docker registry to interact with if any
         Conffile: project
         Example: dockerregistry:
                    mondorescue: localhost:5900/mondorescue

    dockerrepository
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: name of the docker repository to interact with if any. It is mandatory if no dockerregistry is defined.
         Conffile: project
         Example: dockerrepository:
                    mondorescue: localhost:5000/mondorescue

    extpkgdir
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: project
         Example: extpkgdir:
                    mondorescue: mondo-doc,mindi-mindibusybox

    filteredfiles
         Nature: Optional
         Key: package (as provided in defpkgdir or extpkgdir)
         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.
         Conffile: project
         Example: filteredfiles:
                    mindi: rootfs/sbin/init,mindi,install.sh,doc/mindi.8

    ftp_proxy
         Nature: Optional
         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.
         Value: string indicating the proxy to use
         Conffile: pb
         Example: ftp_proxy:
                    default: http://example.com:3128/

    http_proxy
         Nature: Optional
         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.
         Value: string indicating the proxy to use
         Conffile: pb
         Example: http_proxy:
                    default: http://example.com:3128/

    https_proxy
         Nature: Optional
         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.
         Value: string indicating the proxy to use
         Conffile: pb
         Example: https_proxy:
                    default: http://example.com:3128/

    logcmd
         Nature: Mandatory
         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.
         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, ...).
         Conffile: pb
         Example: logcmd:
                    mageia: sos

    logcmds
         Nature: Optional
         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.
         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.
         Conffile: pb
         Example: logcmds:
                    mageia: mount,lsmod,esxcfg-module -l,df -T

    logfiles
         Nature: Optional
         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.
         Value: In case the B<logcmd> command is internal, a comma separated list of the files to capture in order to log context.
         Conffile: pb
         Example: logfiles:
                    mageia: /etc/raidtab,/proc/cmdline,/proc/swaps

    logopt
         Nature: Optional
         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.
         Value: In case the B<logcmd> command is not internal, the options of the B<logcmd> application to launch to log context
         Conffile: pb
         Example: logopt:
                    mageia: --all

    mkbmbootcmds
         Nature: Mandatory
         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.
         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.
         Conffile: pb
         Example: mkbmbootcmds:
                    linux: perl,awk,gawk,dd,grep,uname

    mkbmbootdirs
         Nature: Mandatory
         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.
         Value: comma separated list of directories to be copied from the original OS to the target boot media tree (works recursively on the target).
         Conffile: pb
         Example: mkbmbootdirs:
                    linux: /etc/ssh,/etc/udev,/etc/mdadm

    mkbmbootfiles
         Nature: Mandatory
         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.
         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).
         Conffile: pb
         Example: mkbmbootfiles:
                    linux: /etc/mdadm.conf,/etc/raidtab,/etc/modprobe.conf

    mkbmkerneldir
         Nature: Mandatory
         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.
         Value: path of the directory containing your kernel.
         Conffile: pb
         Example: mkbmkerneldir:
                    linux: /boot

    mkbmkernelfile
         Nature: Optional
         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.
         Value: full path of the your kernel.
         Conffile: pb
         Example: mkbmkernelfile:
                    linux: /boot/vmlinuz-specific

    mkbmkernelnamere
         Nature: Mandatory
         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.
         Value: Perl Regular Expression allowing to find OS kernel names in the B<kerneldir> directory.
         Conffile: pb
         Example: mkbmkerneldir:
                    linux: ^linu|^vmlinu|^xen

    mkbmtargetdirs
         Nature: Mandatory
         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.
         Value: comma separated list of empty directory paths to be created on the target boot media.
         Conffile: pb
         Example: mkbmtargetdirs:
                    linux: /tmp,/dev

    namingtype
         Nature: Optional
         Key: package (as provided in defpkgdir or extpkgdir)
         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)
         Conffile: project
         Example: namingtype:
                    ProjectBuilder: perl

    osambiguous
         Nature: Optional
         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.
         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>
         Conffile: pb
         Example: osambiguous:
                    debian: debian,ubuntu

    oschkcmd
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: package checker tool.
         Conffile: pb
         Example: oschkcmd:
                    deb: /usr/bin/lintian

    oschkopt
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: package checker tool options.
         Conffile: pb
         Example: oschkcmd:
                    rpm: -i

    oscmd
         Nature: Mandatory
         Key: tool (pb or rpmbootstrap)
         Value: coma separated list of commands that are mandatory on the underlying system
         Conffile: pb
         Example: oscmd:
                    pb: tar,ls

    oscmdopt
         Nature: Mandatory
         Key: tool (pb or rpmbootstrap)
         Value: come separated list of commands that are optional on the underlying system
         Conffile: pb
         Example: oscmd:
                    pb: svn2cl,svn,cvs

    oscodename
         Nature: Optional
         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.
         Value: code name. Mostly useful for debian and ubuntu, due to debootstrap.
         Conffile: pb
         Example: oscodename debian-5.0 = lenny

    osfamily
         Nature: Mandatory
         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.
         Value: OS family name (used to group similar distribution for handling)
         Conffile: pb
         Example: osfamily:
                    debian: du

    osins
         Nature: Optional
         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.
         Value: OS command to lauch in order to automatically install packages on it.
         Conffile: pb
         Example: osins:
                    fedora: sudo yum -y install

    oslocalins
         Nature: Optional
         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.
         Value: OS command to lauch in order to automatically install local packages on it.
         Conffile: pb
         Example: oslocalins:
                    debian: sudo dpkg -i

    osmindep
         Nature: Optional
         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.
         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.
         Conffile: pb
         Example: osmindep:
                    default: perl,sudo,wget,tar,make,gzip

    osnover
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: true|false. True means that this OS has no need to keep the version
         Conffile: pb
         Example: osnover:
                    gentoo: true

    ospatchcmd
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: package patch command. For RPM is implicit.
         Conffile: pb
         Example: ospatchcmd:
                    deb: /usr/bin/patch

    ospatchopt
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: package patch options.
         Conffile: pb
         Example: ospatchcmd:
                    deb: -s -p1

    ospathcmd-*
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: Full path name of the command mentioned after the '-' for the relative OS
         Conffile: pb
         Example: ospathcmd-halt:
                    solaris: /usr/sbin/halt, ospathcmd-halt default = /sbin/halt

    osperldep
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         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.
         Conffile: pb
         Example: osperldep:
                    rhel-5: Module-Build,File-MimeInfo,File-BaseDir,Mail-Sendmail

    osperlver
         Nature: Mandatory (for each module mentioned in B<osperldep>)
         Key: Perl Module (as defined in B<osperldep>)
         Value: Version of the perl module that needs to be found on CPAN.
         Conffile: pb
         Example: osperlver:
                    Date-Manip: 5.54

    ospkg
         Nature: Optional (Mandatory if pbinstalltype is pkg)
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: comma separated list of packages that have to be installed in order for pb to be operational in the VE|VM
         Conffile: pb
         Example: ospkg:
                    rhel-5: project-builder

    ospkgdep
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         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.
         Conffile: pb
         Example: ospkgdep:
                    rhel-5: wget,make,ntp,patch,perl-DateManip

    osrelambfile
         Nature: Mandatory (per OS mentioned in B<osambiguous>)
         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.
         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.
         Conffile: pb
         Example: osrelambfile:
                    debian: /etc/debian_version

    osrelexpr
         Nature: Mandatory (per OS mentioned in B<osrelambfile> and B<osrelfile>)
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         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)
         Conffile: pb
         Example: osrelexpr:
                    rhel: Red Hat (?:Enterprise Linux|Linux Advanced Server) .*release ([0-9.]+).* \(

    osrelfile
         Nature: Mandatory
         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.
         Value: full path name of the file describing non-ambiguously that distribution. There should be a bijection between the file and the distribution name.
         Conffile: pb
         Example: osrelfile:
                    fedora: /etc/fedora-release

    osremovedotinver
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: true|false. If true, then no '.' (dot) character is kept in the version name of that OS.
         Conffile: pb
         Example: osremovedotinver:
                    redhat: true

    osrepo
         Nature: Optional (Mandatory if pbinstalltype is pkg)
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         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
         Conffile: pb
         Example: osrepo:
                    rpm: ftp://ftp.project-builder.org/$ddir/$dver/pb.repo

    ossha
         Nature: Optional (Mandatory if rpm type of package)
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: sha algorithm used br createrepo
         Conffile: pb
         Example: ossha:
                    fedora-10: sha1

    ossudoersmode
         Nature: Mandatory
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: suffix that will be used in the name of the packages created. By default, concatenation of OS name and version.
         Conffile: pb
         Example: ossudoersmode:
                    novell: 640

    ossuffix
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: suffix that will be used in the name of the packages created. By default, concatenation of OS name and version.
         Conffile: pb
         Example: ossuffix:
                    mandriva: mdv

    ostype
         Nature: Mandatory
         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.
         Value: build type grouping packages family. This is used internaly by pb to make various handling depending on that build type.
         Conffile: pb
         Example: ostype:
                    rh: rpm, ostype md = rpm, ostype novell = rpm

    osupd
         Nature: Optional
         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.
         Value: OS command to lauch in order to automatically update th VM|VE
         Conffile: pb
         Example: osupd:
                    fedora: sudo yum -y update

    ossueminorrel
         Nature: Mandatory
         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.
         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.
         Conffile: pb
         Example: ossueminorrel:
                    centos: true

    pbadditionalgpg
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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
         Conffile: project
         Example: pbadditionalgpg:
                    pb: 0x141B9FF237DB9883

    pbconfurl
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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 
         Conffile: home|project
         Example: pbconfurl:
                    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

    pbdefdir
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: home
         Example: pbdefdir:
                    default: $ENV{'HOME'}/local/pb/projects

    pbgitremote
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: Remote name of the git repository used. The default is origin
         Conffile: home
         Example: pbgitremote:
                    python-redfish: upstream

    pbgpgcheck
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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)
         Conffile: project
         Example: pbgpgcheck:
                    Lintel: 0

    pbgpgserver
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: The GPG server to use when looking for GPG keys.
         Conffile: pb
         Example: pbgpgserver:
                    default: ipv4.pool.sks-keyservers.net

    pbinstalltype
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: pb
         Example: pbinstalltype:
                    default: pkg

    pbml
         Nature: Optional (Mandatory if using announce command)
         Key: project (as defined in the -p option or pb environment variable)
         Value: white space separated list of e-mail adresses used to send announces with the pb announce option.
         Conffile: project
         Example: pbml:
                    pb: pb-announce@project-builder.org pb-devel@project-builder.org

    pbpackager
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: Firstname Name and e-mail address of the person packaging the software.
         Conffile: project
         Example: pbpackager:
                    pb: Bruno Cornec <bruno@project-builder.org>

    pbparallel
         Nature: Optional
         Key: tool (pb or rpmbootstrap)
         Value: number of processes to execute in parallel. By default use the number of cores.
         Conffile: pb
         Example: pbparallel:
                    pb: 12

    pbpassfile
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: File containing the GPG passphrase that is used to sign packages
         Conffile: home
         Example: pbpassfile:
                    pb: /users/me/secret/passfile

    pbpasspath
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: The directory under which will be found your secret GPG key file.
         Conffile: home
         Example: pbpasspath:
                    pb: /home/me/.gnupg

    pbpassphrase
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: The GPG passphrase that is used to sign packages. Putting it in your conf file has security implications.
         Conffile: home
         Example: pbpassphrase:
                    pb: TheSecretPassPhrase

    pbpbr
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: whatever. As soon as this is defined, then that project is known as using pbr for source epansion.
         Conffile: project
         Example: pbpbr:
                    python-redfish: 1

    pbprojdir
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: local directory under which the project is locally exported. NB: a default value is highly interesting here. By default pbdefdir/projectname
         Conffile: home
         Example: pbprojdir:
                    mondorescue: $ENV{'HOME'}/local/mondorescue

    pbrepo
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: URL of the server hosting the upstream tar file.
         Conffile: project
         Example: pbrepo:
                    mondorescue: ftp://ftp.mondorescue.org

    pbshowsudo
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: home
         Example: pbshowsudo:
                    mondorescue: true

    pbsmtp
         Nature: Optional (Mandatory if using the announce command)
         Key: project (as defined in the -p option or pb environment variable)
         Value: FQDN of the mail server to use to send announces. NB: a default value is highly interesting here.
         Conffile: home
         Example: pbsmtp:
                    mondorescue: localhost

    pbsockscmd
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: name of the command to use to socksify network calls. NB: a default value is highly interesting here.
         Conffile: home
         Example: pbsockscmd:
                    default: tsocks

    pbstoponerr
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: home
         Example: pbstoponerr:
                    mondorescue: true

    pbprojurl
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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
         Conffile: home|project
         Example: pbprojurl:
                    linuxcoe: cvs+ssh://:ext:user@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe, pbprojurl pb = svk:////local/pb

    pbusesshagent
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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
         Conffile: pb
         Example: pbusesshagent:
                    default: false

    pbwf
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: project
         Example: pbwf:
                    afio: 1

    pkgtag
         Nature: Optional
         Key: package (as provided in defpkgdir or extpkgdir)
         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).
         Conffile: project
         Example: pkgtag:
                    mindi-busybox: 2

    pkgver
         Nature: Optional
         Key: package (as provided in defpkgdir or extpkgdir)
         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>.
         Conffile: project
         Example: pkgver:
                    mindi-busybox: 1.7.3

    projcomponent
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: project
         Example: projcomponent:
                    Lintel: main

    projtag
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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>.
         Conffile: project
         Example: projtag:
                    mondorescue: 1

    projver
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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>.
         Conffile: project
         Example: projver:
                    mondorescue: 2.2.9

    rbsconf
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: for mock it's the configuration directory. For rinse it's its configuration file. For rpmbootstrap it's not used yet.
         Conffile: ve
         Example: rbsconf:
                    default: /etc/mock, rbsconf default = /etc/pb/pb-rinse.conf

    rbsb4pi
         Nature: Optional
         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.
         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.
         Conffile: ve
         Example: rbsb4pi:
                    centos: /home/rinse/bin/before-post-install.sh

    rbsmirrorsrv
         Nature: Optional
         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.
         Value: URL for the mirror server for setting up a virtual environment
         Conffile: ve
         Example: rbsmirrorsrv:
                    debian: http://mirrors1.kernel.org/

    rbsmirrorupd
         Nature: Optional
         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.
         Value: Relative path wrt B<rbsmirrorsrv> where updates are located
         Conffile: ve
         Example: rbsmirrorupd:
                    mageia: ../updates

    rbsopt
         Nature: Optional
         Key: tool used for rpm based VE. Could be one of rpmbootstrap, rinse, mock, ...
         Value: Additional option to pass to the command
         Conffile: ve
         Example: rbsopt:
                    rpmbootstrap: -k

    rbspi
         Nature: Optional
         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.
         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.
         Conffile: ve
         Example: rbspi:
                    centos: /home/rinse/bin/post-install.sh

    rmhost
         Nature: Mandatory
         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.
         Value: IP address or name of the Remote Machine running the OS mentioned in the key, accessed through ssh.
         Conffile: rm
         Example: rmhost:
                    default: localhost - rmhost hpux-11.3-ia64 = 10.10.10.10 - rmhost mandriva-2010.2-x86_64 = machine1.domain.name

    rmlist
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: rm
         Example: rmlist:
                    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

    rmlogin
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: account name to use on the Remote Machine to build packages. Communication is done with ssh.
         Conffile: rm
         Example: rmlogin:
                    default: pb

    rmmonport
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: TCP port that is used to dialog with the monitor of the Remote Machine, to pass orders.
         Conffile: rm
         Example: rmmonport:
                    default: 4444

    rmntp
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: NTP server to contact for time accuracy with B<ospathcmd-ntpdate> before building.
         Conffile: rm
         Example: rmntp:
                    default: 1.pool.ntp.org

    rmpath
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: path where to find configuration file for Remote Machines management.
         Conffile: rm
         Example: rmpath:
                    default: /home/remote

    rmport
         Nature: Mandatory
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         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.
         Conffile: rm
         Example: rmport:
                    pb: 2222,rmport mondorescue = 2223

    rmtmout
         Nature: Optional
         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.
         Value: Time in seconds to wait before interacting with the RM. This may correspond to the time the RM takes to boot.
         Conffile: rm
         Example: rmtmout:
                    default: 10

    rmtype
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: ssh. For the moment, only ssh is supported as a communication means with RM.
         Conffile: rm
         Example: rmrtype:
                    default: ssh

    sshdir
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: dirname into which packages are uploaded on the B<sshhost> machine.
         Conffile: project
         Example: sshdir:
                    mondorescue: /pub/mondorescue

    sshhost
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: hostname to connect to in order to deliver packages to the repository server.
         Conffile: project
         Example: sshhost:
                    mondorescue: ftp.mondorescue.org

    sshlogin
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: login to use when connecting to the repository server B<sshhost> for package delivery. whoami result by default
         Conffile: project
         Example: sshlogin:
                    mondorescue: mylogin

    sshport
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: port to use when connecting to the repository server B<sshhost> for package delivery. 22 by default.
         Conffile: project
         Example: sshport:
                    mondorescue: 22

    supfiles
        Not used yet.

    testver
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: project
         Example: testver:
                    mondorescue: true

    vedebtype
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: debootstrap (no other tool to create deb distro based chroot)
         Conffile: ve
         Example: vedebtype:
                    default: debootstrap

    velist
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: list of comma separated OS (under the form of os-ver-arch).
         Conffile: ve
         Example: velist:
                    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

    velogin
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: account name to use in the VE to build packages.
         Conffile: ve
         Example: velogin:
                    default: pb

    ventp
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: NTP server to contact for time accuracy with B<ospathcmd-ntpdate> before building.
         Conffile: ve
         Example: ventp:
                    default: 1.pool.ntp.org

    vepath
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: ve
         Example: vepath:
                    default: /home/rpmbootstrap

    verebuild
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: true|false. True means that the VE should be rebuild before usage.
         Conffile: ve
         Example: verebuild:
                    default: true

    verpmtype
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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).
         Conffile: ve
         Example: verpmtype:
                    default: rpmbootstrap

    vesnap
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: ve
         Example: vesnap:
                    default: true

    vetype
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: ve
         Example: vetype:
                    default: chroot

    vmbuildtm
         Nature: Optional
         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
         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.
         Conffile: project
         Example: vmbuildtm:
                    default: 600,vmbuildtm mandriva-2009.0-x86_64 = 1200

    vmcmd
         Nature: Mandatory
         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.
         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.
         Conffile: vm
         Example: vmcmd:
                    default: /usr/bin/kvm

    vmhost
         Nature: Mandatory
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: hostname to connect to in order to reach the VM through ssh. Generally redirected from a port on localhost.
         Conffile: vm
         Example: vmhost:
                    default: localhost

    vmlist
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: list of comma separated OS (under the form of os-ver-arch).
         Conffile: vm
         Example: vmlist:
                    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

    vmlogin
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: account name to use in the VM to build packages. Communication is done with ssh.
         Conffile: vm
         Example: vmlogin:
                    default: pb

    vmmem
         Nature: Optional
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: Memory size in MB to allocate to the VM.
         Conffile: vm
         Example: vmmem:
                    default: 512

    vmmonport
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: TCP port that is used to dialog with the monitor of the VM, to pass orders such as snapshot. Not really operational yet.
         Conffile: vm
         Example: vmmonport:
                    default: 4444

    vmntp
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: NTP server to contact for time accuracy with B<ospathcmd-ntpdate> before building.
         Conffile: vm
         Example: vmntp:
                    default: 1.pool.ntp.org

    vmopt
         Nature: Optional
         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.
         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.
         Conffile: vm
         Example: vmopt:
                    default: -m 384 -daemonize,vmopt mandriva-2009.0-i386 = -m 256 -daemonize -no-kvm

    vmpath
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: vm
         Example: vmpath:
                    default: /home/qemu

    vmport
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: vm
         Example: vmport:
                    pb: 2222,vmport mondorescue = 2223

    vmsize
         Nature: Mandatory
         Key: OS (could be from the most generic up to the most specific from ostype, osfamily, os, os-ver, os-ver-arch).
         Value: Size of the VM to create when using the newvm command of pb.
         Conffile: vm
         Example: vmsize:
                    default: 7G

    vmsnap
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         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.
         Conffile: vm
         Example: vmsnap:
                    default: true

    vmtmout
         Nature: Optional
         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.
         Value: Time in seconds to wait before interacting with the VM. This should correspond to the time the VM takes to boot.
         Conffile: vm
         Example: vmtmout:
                    default: 180,vmtmout mandriva-2009.0-x86_64 = 500

    vmtype
         Nature: Mandatory
         Key: project (as defined in the -p option or pb environment variable)
         Value: qemu|kvm. For the moment, only QEMU or KVM are supported as virtualization technologies.
         Conffile: vm
         Example: vmtype:
                    default: kvm

    webdir
         Nature: Optional
         Key: project (as defined in the -p option or pb environment variable)
         Value: Target directory containing the web content in the project that should be delivered when using the sbx|cms2webssh|pkg command of pb.
         Conffile: project
         Example: webdir:
                    mondorescue: website

    websshdir
         Nature: Optional (when not using *2webssh commands)
         Key: project (as defined in the -p option or pb environment variable)
         Value: dirname into which content is uploaded on the B<websshhost> machine.
         Conffile: project
         Example: websshdir:
                    mondorescue: /var/www/html

    websshhost
         Nature: Optional (when not using *2webssh commands)
         Key: project (as defined in the -p option or pb environment variable)
         Value: hostname to connect to in order to deliver content to the Web server.
         Conffile: project
         Example: websshhost:
                    mondorescue: www.mondorescue.org

    websshlogin
         Nature: Optional (when not using *2webssh commands)
         Key: project (as defined in the -p option or pb environment variable)
         Value: login to use when connecting to the Web server B<websshhost> for content delivery.
         Conffile: project
         Example: websshlogin:
                    mondorescue: mylogin

    websshport
         Nature: Optional (when not using *2webssh commands)
         Key: project (as defined in the -p option or pb environment variable)
         Value: port to use when connecting to the Web server B<websshhost> for content delivery.
         Conffile: project
         Example: websshport:
                    mondorescue: 22

OTHER PARAMETERS
    pb URLs
         The pbprojurl and pbconfurl parameters support multiple schemas to point to the repositories to use.
         They are parsed by project-builder.org to communicate with them. 

         The protocols can be git, git+svn, svk, svn, cvs, hg. 
         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. 

         Examples:

         pbprojurl: 
           fossology: git+https://github.com/fossology/fossology.git
           linuxcoe: cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe
           pb: svn+ssh://svn.mondorescue.org/prj/svn/pb

         => 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.
         => 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.
         => 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.
         => 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.

         If you use instead:
           pb: git+svn+ssh://svn.mondorescue.org/prj/svn/pb

         => 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.


         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

         Examples:

         pbprojurl: 
           afio: ftp://localhost/src/afio-2.5.tar.gz

         => 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.

    pb Directories
         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.

         Tree will look like this:

                     maint pbdefdir                         PBDEFDIR            dev dir (optional)
                          |                                                        |
                    ------------------------                                --------------------
                    |                      |                                |                  |
                 pbproj1                pbproj2             pb       pbproj1           pbproj2   pbDIR
                    |                                                       |
          ---------------------------------------------                ----------
          *      *        *       |        |          |                *        *
         tag    dev    pbconf    ...    pbbuild  pbdelivery PBCONFDIR dev      tag
          |               |                         |       PBDESTDIR           |
          ---          ------                    pbrc.yml   PBBUILDDIR       -------
            |          |    |                                                |     |
           1.1        dev  tag                                              1.0   1.1                PBDIR
                            |
                         -------
                         |     |
                        1.0   1.1                           PBROOTDIR
                               |
                       ----------------------------------
                       |          |           |         |
                     pkg1      pbproj1.yml   pbfilter   pbcl
                       |
                -----------------
                |      |        |
               rpm    deb    pbfilter


         (*) By default, if no relocation in .pbrc.yml, dev dir is taken in the maint pbdefdir (when appropriate)
         Names under a pbproj and the corresponding pbconf should be similar


         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

         Examples:

         pbconfurl: 
          python-redfish: git+ssh://git@github.com:bcornec/python-redfish.git
          fossology: git+https://github.com/fossology/fossology.git
          uuwl: git+svn+ssh://svn.mondorescue.org/prj/svn/pb/projects/uuwl/pbconf
          pb: git+svn+ssh://svn.mondorescue.org/prj/svn/pb/pbconf
          afio: git+svn+ssh://svn.project-builder.org/prj/svn/pb/projects/afio/pbconf
          linuxcoe: cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe/pbconf

         pbconfdir:
          python-redfish: $ENV{'HOME'}/Work/bruno/prj/python-redfish/pbconf
          fossology: $ENV{'HOME'}/Work/bruno/prj/fossology/git/pbconf
          uuwl: $ENV{'HOME'}/svn-git/pb/projects/uuwl/pbconf

         pbdefdir:
          default: $ENV{'HOME'}/svn-git/pb/projects
          python-redfish: $ENV{'HOME'}/Work/bruno/prj
          fossology: $ENV{'HOME'}/Work/bruno/prj/fossology
          uuwl: $ENV{'HOME'}/svn-git
          pb: $ENV{'HOME'}/svn-git

         => 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.
         => 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.
         => 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.
         => 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 (pb 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.
         => 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 (pb 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.
         => 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 (pb 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.

         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.

         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

         Examples:

         pbprojurl: 
          python-redfish: git+ssh://git@github.com:bcornec/python-redfish.git
          fossology: git+ssh://git@github.com:fossology/fossology.git
          uuwl: git+svn+ssh://svn.mondorescue.org/prj/svn/uuwl
          pb: git+svn+ssh://svn.mondorescue.org/prj/svn/pb
          afio: ftp://localhost/src/afio-2.5.tar.gz
          linuxcoe: cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe

         pbprojdir:
          fossology: $ENV{'HOME'}/Work/bruno/prj/fossology/git
          pb: $ENV{'HOME'}/svn-git/pb
          linuxcoe: $ENV{'HOME'}/LinuxCOE/cvs

         pbdefdir:
          default: $ENV{'HOME'}/svn-git/pb/projects
          python-redfish: $ENV{'HOME'}/Work/bruno/prj
          fossology: $ENV{'HOME'}/Work/bruno/prj/fossology
          uuwl: $ENV{'HOME'}/svn-git
          pb: $ENV{'HOME'}/svn-git

         => 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 (pb 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.
         => 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).
         => 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 (pb 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.
         => 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.
         => 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 (pb 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.
         => 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.


         In order to help you validate the value for a given parameter, you may want to use pb -p pbproj getconf param_to_consider

    pb Environment Variables
         The following environment variables are used by pb when declared to change its behaviour:

         PBACCOUNT
           Default: Empty
           Value: Login to use to connect to the VM/VE/RM. Also see -a option.

         pb
           Default: Empty
           Value: Name of the project to build for. Also see -p option.

         PBROOTDIR
           Default: Empty
           Value: Root directory of the configuration files for this project. Also see -r option.

         PBV
           Default: Empty
           Value: List of VM/VE/RM to build for, separated by ','. Also see -m option

         PBVCSOPT
           Default: Empty
           Value: Options to pass to the VCS command when interacting with the repository.

         PBVMOPT
           Default: Empty
           Value: Options to pass to the VM engine to launch VMs.

         PBVMTMOUT
           Default: 120
           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.

         TMPDIR
           Default: /tmp
           Value: Directory where temporary files will be created.

         ftp_proxy
         http_proxy
         https_proxy
           Default: Empty
           Value: URL of the proxy server to use for these protocols.


         The following environment variables are generated by pb and can be used in build scripts:

         PBBUILDDIR
           Value: Build directory (pbbuild) where packages are created locally. See the schema of ProjectBuilder::Env man page.

         PBCMSLOGFILE
           Value: Intermediate log file generated for stable versions to create ChangeLog.

         PBCONFDIR
           Value: Configuration directory (pbconf) where configuration files for the project are stored. See the schema of ProjectBuilder::Env man page. See pbconfdir parameter.

         PBDEFDIR
           Value: Default directory where the project-builder.org will host host files for the projects, parent of pb directories. See the schema of ProjectBuilder::Env man page. See pbdefdir parameter.

         PBDESTDIR
           Value: Destination directory (pbdelivery) where intermediate tar files are created locally. See the schema of ProjectBuilder::Env man page.

         PBDIR
           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.

         PBETC
           Value: .pbrc.yml configuration file of the user located in his HOME directory.

 
           Value: E-mail address of the packager, used also to get GPG information. See pbpackager parameter.

         PBPASSFILE
           Value: File containing the pass phrase for the GPG signature. Used with PBPASSPATH. See pbpassfile parameter.

         PBPASSPATH
           Value: Path of the file containing the pass phrase for the GPG signature. Used with PBPASSFILE. See pbpasspath parameter.

         PBPASSPHRASE
           Value: Pass phrase for the GPG signature. Used instead of PBPASSPATH+PBPASSFILE. See pbpassphrase parameter.

         website
           Value: Name of the package built.

         pbDIR
           Value: Directory where an upstream project is located. See the schema of ProjectBuilder::Env man page. Correspond to pb dir under PBDEFDIR for project-builder.org conf files.

         pbTAG
           Value: Tag of the packages created, indicating the build procedure version. See pbprojtag parameter.

         pbVER
           Value: Version of the packages created. See pbprojver parameter.

         2692ISION
           Value: Revision of the project in the VCS. Revision for SVN, commit ID for git, ...

         PBVMPORT
           Value: Offset to the base port to communicate with the VM

         PBSOLDESTDIR
           Value: Target directory for the Solaris prototype

COPYRIGHT
     (c) B. Cornec 2007-today
     Eric Anderson's changes are (c) Copyright 2012 Hewlett Packard
     Provided under the Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) Creative Common License

