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] [ ...] 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] [ ...] 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 pb) -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 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 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 . Bug reports should be filled using the trac instance of the project at . 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 lead by Bruno Cornec . COPYRIGHT Project-Builder.org is distributed under the GPL v2.0 license described in the file "COPYING" included with the distribution.