Version 103 (modified by bruno, 4 weeks ago) (diff)


Welcome to Project-Builder Wiki aims to provide support to the "Continuous Packaging" approach. The mantra is "Package early, package often". is a tool that helps you build packages for your application (provided as tar file, or through a configuration management system such as CVS, Subversion, Mercurial, or Git). It is able to generate build package skeleton for your project, and with simple configuration files to generate for up to 50 different tuples of distributions (name, version, architecture), including Fedora, Mandriva, OpenSuSE, Debian, Ubuntu, Gentoo, Slackware.

It provides a macro system to help you keep common what needs to stay common between distributions, and helps you build Virtual Machines (VMs) (QEMU, KVM) or Virtual environments (VEs) (chroot, rinse) easily to create native packages for the distributions you want to support.

Design Ideas around the project

Since 2005 that I took over the maintenance of the MondoRescue project, I have passed time developing code at the periphery of the project to allow me to easily build packages from Subversion, deliver them, manage them, ...

I met a lot of Open Source project which are suffering from the same barrier for their adoption as MondoRescue suffered in the past: without native packaging for your distribution you have much less people testing your software, trying it, less chance to be integrated in distributions, ...

Then I wanted to also work on another project called which uses the great LinuxCOE. However that LinuxCOE project had exactly the same issue as previously mentioned, no packaging, only installs from CVS or tarballs, so smaller community. And in order for me to put something on a production server, I want it packaged :-)

So I decided it could be a good idea to reuse the scripts made for mondo to package LinuxCOE. However, they were too specific, even if the ideas could be reused (that was my 3rd generation of build scripts, so ideas were more advanced than the code). And thus was born !

Technical ideas around the (aka pb) project

  • use perl. It makes coding so much more efficient, powerful and also fun
  • make it independant from the CMS (flat, CVS, SVN, Mercurial, Git, more to come), the VM (QEMU, more to come) or chroot (rpmbootstrap, mock, rinse, pbuilder), the type of OS (Linux being RPM based, deb based, ebuild based, Solaris pkg...)
  • Reuse other Open Source Projects to help create a fully integrated build system, tacking in account building in parallel on various types of systems (virtual, physical, ...)



Generic docs

Examples of Project-Builder usage

Other pages of interest

Packaging format references

Concerning trac

For a complete list of local wiki pages, see TitleIndex.

Trac is brought to you by Edgewall Software, providing professional Linux and software development services to clients worldwide. Visit for more information.