pb(1) - Linux man page

Name

pb, aka project-builder.org - builds packages for your projects

Description

pb helps you build various packages directly from your project sources. Those sources could be handled by a CMS (Configuration Management System) such as Subversion, CVS , Git, Mercurial... or being a simple reference to a compressed tar file. It's based on a set of configuration files, a set of provided macros to help you keeping build files as generic as possible. For example, a single .spec file should be required to generate for all rpm based distributions, even if you could also have multiple .spec files if required.

Synopsis

pb [-vhSq][-r pbroot][-p project][[-s script -a account -P port][-m mach-1[,...]]][-i iso] <action> [<pkg1> ...]

pb [--verbose][--help][--man][--quiet][--snapshot][--revision pbroot][--project project][[--script script --account account --port port][--machine mach-1[,...]]][--iso iso] <action> [<pkg1> ...]

Options

-v|--verbose

Print a brief help message and exits.
-q|--quiet
Do not print any output.
-h|--help
Print a brief help message and exits.
-S|--snapshot
Use the snapshot mode of VMs or VEs
--man
Prints the manual page and exits.
-m|--machine machine1[,machine2,...]
Name of the Virtual Machines ( VM ) or Virtual Environments ( VE ) you want to build on (coma separated). All if none precised (or use the env variable PBV ).
-s|--script script
Name of the script you want to execute on the related VMs or VEs.
-i|--iso iso_image
Name of the ISO image of the distribution you want to install on the related VMs.
-a|--account account
Name of the account to use to connect on the related VMs.
-P|--port port_number
Port number to use to connect on the related VMs.\n";
-p|--project project_name
Name of the project you're working on (or use the env variable PBPROJ )
-r|--revision revision
Path Name of the project revision under the CMS (or use the env variable PBROOT )
-V|--version new_version
New version of the project to create based on the current one.

Arguments

<action> can be:

cms2build
Create tar files for the project under your CMS . CMS supported are SVN , CVS and Mercurial parameters are packages to build if not using default list
build2pkg
Create packages for your running distribution
cms2pkg
cms2build + build2pkg
build2ssh
Send the tar files to a SSH host
cms2ssh
cms2build + build2ssh
pkg2ssh
Send the packages built to a SSH host
build2vm
Create packages in VMs, launching them if needed and send those packages to a SSH host once built VM type supported are QEMU
build2ve
Create packages in VEs, creating it if needed and send those packages to a SSH host once built
cms2vm
cms2build + build2vm
cms2ve
cms2build + build2ve
launchvm
Launch one virtual machine
launchve
Launch one virtual environment
script2vm
Launch one virtual machine if needed and executes a script on it
script2ve
Execute a script in a virtual environment
newvm
Create a new virtual machine
newve
Create a new virtual environment
setupvm
Setup a virtual machine for pb usage
setupve
Setup a virtual environment for pb usage
snapvm
Snapshot a virtual machine for pb usage
snapve
Snapshot a virtual environment for pb usage
test2pkg
Test a package locally
test2vm
Test a package in a virtual machine
test2ve
Test a package in a virtual environment
newver
Create a new version of the project derived from the current one
newproj
Create a new project and a template set of configuration files under pbconf
announce
Announce the availability of the project through various means
web2ssh
Deliver the Web site content to the target server using ssh.
clean
Purge the build and delivery directories related to the current project
<pkgs> can be a list of packages, the keyword 'all' or nothing, in which case the default list of packages is taken (corresponding to the defpkgdir list of arguments in the configuration file).

Web Sites

The main Web site of the project is available at <http://www.project-builder.org/>. Bug reports should be filled using the trac instance of the project at <http://trac.project-builder.org/>.

User Mailing List

None exists for the moment.

Configuration Files

Each pb user may have a configuration in $HOME/.pbrc. The values in this file may overwrite any other configuration file value.

Here is an example of such a configuration file:

#
# Define for each project the URL of its pbconf repository
# No default option allowed here as they need to be all different
#
# URL of the pbconf content
# This is the format of a classical URL with the extension of additional schema such as
# svn+ssh, cvs+ssh, ...
#
pbconfurl linuxcoe = cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe/pbconf

# This is normaly defined in the project's configuration file
# Url of the project
#
pburl linuxcoe = cvs+ssh://:ext:bcornec@linuxcoe.cvs.sourceforge.net:/cvsroot/linuxcoe

# All these URLs needs to be defined here as the are the entry point
# for how to build packages for the project
#
pbconfurl pb = svn+ssh://svn.project-builder.org/mondo/svn/pb/pbconf
pbconfurl mondorescue = svn+ssh://svn.project-builder.org/mondo/svn/project-builder/mondorescue/pbconf
pbconfurl collectl = svn+ssh://bruno@svn.mondorescue.org/mondo/svn/project-builder/collectl/pbconf
pbconfurl netperf = svn+ssh://svn.mondorescue.org/mondo/svn/project-builder/netperf/pbconf

# Under that dir will take place everything related to pb
# If you want to use VMs/chroot/..., then use $ENV{'HOME'} to make it portable
# to your VMs/chroot/...
# if not defined then /var/cache
pbdefdir default = $ENV{'HOME'}/project-builder
pbdefdir pb = $ENV{'HOME'}
pbdefdir linuxcoe = $ENV{'HOME'}/LinuxCOE/cvs
pbdefdir mondorescue = $ENV{'HOME'}/mondo/svn

# pbconfdir points to the directory where the CMS content of the pbconfurl is checked out
# If not defined, pbconfdir is under pbdefdir/pbproj/pbconf
pbconfdir linuxcoe = $ENV{'HOME'}/LinuxCOE/cvs/pbconf
pbconfdir mondorescue = $ENV{'HOME'}/mondo/svn/pbconf

# pbdir points to the directory where the CMS content of the pburl is checked out
# If not defined, pbdir is under pbdefdir/pbproj
# Only defined if we have access to the dev of the project
pbdir linuxcoe = $ENV{'HOME'}/LinuxCOE/cvs
pbdir mondorescue = $ENV{'HOME'}/mondo/svn

# -daemonize doesn't work with qemu 0.8.2
vmopt default = -m 384

Authors

The Project-Builder.org team <http://trac.project-builder.org/> lead by Bruno Cornec <mailto:bruno@project-builder.org>.

Copyright

Project-Builder.org is distributed under the GPL v2.0 license described in the file "COPYING" included with the distribution.