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.