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][-t os-ver-arch][-m os-ver-arch[,...]]][-g][-i iso] <action> [<pkg1> ...]

pb [--verbose][--help][--man][--quiet][--snapshot][--revision pbroot][--project project][[--script script --account account --port port][--target os-ver-arch][--machine os-ver-arch[,...]]][--nographic][--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.

-t|--target os-ver-arch

Name of the target system you want to build for. All if none precised.

-m|--machine os-ver-arch[,os-ver-arch,...]

Name of the Virtual Machines (VM), Virtual Environments (VE) or Remote Machines (RM) 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/VEs/RMs.

-g|--nographic

Do not launch VMs in graphical mode.

-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/RMs.

-P|--port port_number

Port number to use to connect on the related VMs/RMs.";

-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:

sbx2build

Create tar files for the project under your CMS. Current state of the exported content is taken. CMS supported are SVN, SVK, CVS, Git and Mercurial parameters are packages to build if not using default list

cms2build

Create tar files for the project under your CMS. Current state of the CMS is taken. CMS supported are SVN, SVK, CVS, Git and Mercurial parameters are packages to build if not using default list

build2pkg

Create packages for your running distribution

cms2pkg

cms2build + build2pkg

sbx2pkg

sbx2build + build2pkg

build2ssh

Send the tar files to a SSH host

sbx2ssh

sbx2build + build2ssh

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 and KVM

build2ve

Create packages in VEs, creating it if needed and send those packages to a SSH host once built

build2rm

Create packages in RMs, which should pre-exist, and send those packages to a SSH host once built RM means Remote Machine, and could be a physical or Virtual one. This is one buildfarm integration for pb.

sbx2vm

sbx2build + build2vm

sbx2ve

sbx2build + build2ve

sbx2rm

sbx2build + build2rm

cms2vm

cms2build + build2vm

cms2ve

cms2build + build2ve

cms2rm

cms2build + build2rm

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

script2rm

Execute a script on a remote machine

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

setuprm

Setup a remote machine for pb usage

sbx2setupvm

Setup a virtual machine for pb usage using the sandbox version of pb instead of the latest stable Reserved to dev team.

sbx2setupve

Setup a virtual environment for pb usage using the sandbox version of pb instead of the latest stable Reserved to dev team.

sbx2setuprm

Setup a remote machine for pb usage using the sandbox version of pb instead of the latest stable Reserved to dev team.

snapvm

Snapshot a virtual machine for pb usage

snapve

Snapshot a virtual environment for pb usage

updatevm

Update the distribution in the virtual machine

updateve

Update the distribution in the virtual environment

updaterm

Update the distribution in the remote machine

test2pkg

Test a package locally

test2vm

Test a package in a virtual machine

test2ve

Test a package in a virtual environment

test2rm

Test a package in a remote machine

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

sbx2webssh

Create tar files for the website under your CMS. Current state of the exported content is taken. Deliver the content to the target server using ssh from the exported dir.

cms2webssh

Create tar files for the website from your CMS. Deliver the content to the target server using ssh from the DVCS.

sbx2webpkg

Create tar files for the website under your CMS. Current state of the exported content is taken.

cms2webpkg

Create tar files for the website under your CMS.

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.