The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.