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 near from a a perl hash structure: 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, conf /etc/pb/pb.conf or /usr/local/etc/pb/pb.conf, VE vepath/.pbrc, VM vmpath/.pbrc, or project project.pb) and an example of use.

OPTIONS

defpkgdir
Nature: Mandatory
Key: project (as defined in the -p option or PBPROJ environment variable)
Value: coma 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.
extpkgdir
Nature: Optional
Key: project (as defined in the -p option or PBPROJ environment variable)
Value: coma 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: coma 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
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: coma 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
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
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: coma 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
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: coma 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: Date-Manip = 5.54
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: coma 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
osrelexpr rhel = Red Hat (?:Enterprise Linux|Linux Advanced Server) .*release ([0-9.]+).* \(
Example: 
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
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 install packages on it.
Conffile: pb
Example: ostype rh = rpm, ostype md = rpm, ostype novell = rpm
pbconfurl
Nature: Mandatory
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ 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
pbml
Nature: Optional (Mandatory if using announce command)
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ 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>
pbprojdir
Nature: Optional
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ environment variable)
Value: URL of the server hosting the upstream tar file.
Conffile: project
Example: pbrepo mondorescue = ftp://ftp.mondorescue.org
pbsmtp
Nature: Optional (Mandatory if using the announce command)
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ 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
pburl
Nature: Optional
Key: project (as defined in the -p option or PBPROJ environment variable)
Value: B<pb URL> 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: pburl linuxcoe = cvs+ssh://:ext:user@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe, pburl pb = svk:////local/pb
pbwf
Nature: Optional
Key: project (as defined in the -p option or PBPROJ 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 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
projtag
Nature: Mandatory
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ 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 PBPROJ 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
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
supfiles

Not used yet.

testver
Nature: Optional
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ 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 PBPROJ environment variable)
Value: list of coma 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 PBPROJ 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 PBPROJ environment variable)
Value: NTP server to contact for time accuracy with B<ventpcmd> before building.
Conffile: ve
Example: ventp default = 1.pool.ntp.org
ventpcmd
Nature: Optional
Key: project (as defined in the -p option or PBPROJ environment variable)
Value: NTP command to use to perform time synchronization with the B<ventp> server.
Conffile: ve
Example: ventpcmd default = /usr/sbin/ntpdate
vepath
Nature: Mandatory
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ environment variable)
Value: true|false. True means that the VE should be rebuild before usage.
Conffile: ve
Example: ventpcmd default = /usr/sbin/ntpdate
verpmtype
Nature: Mandatory
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ 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 PBPROJ environment variable)
Value: chroot|schroot. There are two different ways of launching a chroot activity in pb. For the moment only chroot has been tested.
Conffile: ve
Example: vertype default = chroot
vmhost
Nature: Mandatory
Key: project (as defined in the -p option or PBPROJ environment variable)
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 PBPROJ environment variable)
Value: list of coma 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 PBPROJ environment variable)
Value: account name to use in the VM to build packages. Communication is done with ssh.
Conffile: vm
Example: vmlogin default = pb
vmmonport
Nature: Optional
Key: project (as defined in the -p option or PBPROJ 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 PBPROJ environment variable)
Value: NTP server to contact for time accuracy with B<vmntpcmd> before building.
Conffile: vm
Example: vmntp default = 1.pool.ntp.org
vmntpcmd
Nature: Optional
Key: project (as defined in the -p option or PBPROJ environment variable)
Value: NTP command to use to perform time synchronization with the B<vmntp> server.
Conffile: vm
Example: vmntpcmd default = /usr/sbin/ntpdate,vmntpcmd opensuse-11.0-i386 = sntp -P no -r
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 PBPROJ 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 PBPROJ 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: project (as defined in the -p option or PBPROJ environment variable)
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 PBPROJ 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 way beofre interacting with the VM. This should corresponds 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 PBPROJ environment variable)
Value: qemu|kvm. For the moment, only QEMU or KVM are supported as virtualization technologies.
Conffile: vm
Example: vmrtype default = kvm
webdir
Nature: Optional
Key: project (as defined in the -p option or PBPROJ environment variable)
Value: Target directory containing the web content in the project that should be delivered when using the web2ssh command of pb.
Conffile: project
Example: webdir mondorescue = website
pb URL =item pb directory desc =item pb environment variables