Welcome to Project-Builder Wiki
Project-Builder.org aims to provide support to the "Continuous Packaging" approach. The mantra is "Package early, package often".
Project-Builder.org 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-builder.org 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 dploy.org 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 project-builder.org born !
Technical ideas around the project-builder.org (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, ...)
- Latest versions are available at ftp://ftp.project-builder.org/src/project-builder-0.12.6.tar.gz, ftp://ftp.project-builder.org/src/ProjectBuilder-0.12.6.tar.gz, ftp://ftp.project-builder.org/src/pbmkbm-0.12.6.tar.gz and ftp://ftp.project-builder.org/src/rpmbootstrap-0.12.6.tar.gz Packages are also available for multiple distributions from ftp://ftp.project-builder.org/
- Latest version are also available from CPAN via PAUSE upload.
- Latest development version is availble from the Subversion repository by doing svn co svn://svn.project-builder.org/pb
- The latest presentation of the project is available at http://trac.project-builder.org/browser/devel/pb-doc/pb-presentation.odp
- Porting on Open Solaris
- Porting on HP-UX
- Generating LSB compliant packages
Examples of Project-Builder usage
- The Project-Builder Lab: Experience yourself project-builder.org by following those Lab instructions ! Should provide you with at least 2 hours of fun discovering the tool with detailed explanations. This Lab has been developed for an internal HP Open Source and Linux Event I contributed to organize (TES 2009). Highly receommended to have a good tour of the features.
- NetPerfExample: Simple example with netperf (pb 0.9.7.1). Also Cf: http://trac.project-builder.org/browser/projects/netperf
- BufferExample: Another example with the buffer project (pb 0.9.5). Also Cf: http://trac.project-builder.org/browser/projects/buffer
- LinuxCoeExample: More complex example with LinuxCOE using CVS (pb 0.9.5). Also Cf: http://trac.project-builder.org/browser/projects/linuxcoe
- MondoRescueExample?: More complex example with MondoRescue? using SVN. lso Cf: http://trac.project-builder.org/browser/projects/mondorescue
- Bootstrapping: How do I get started.
Other pages of interest
- Communications around Project-Builder
- The VCS-Pkg initiative
- Package format comparison by the [EDOS] project
- dar-perl: python script to generate .spec file for perl modules
- rinse: installing minimal copies of RPM-based distributions.
- febootstrap tool for building supermin appliances
- schroot: securely enter a chroot environment ( Example for CentOS).
- createrepo: tool to create a yum repository
- LSB chroot compliant download.
- BitBake a tool for executing tasks and managing metadata.
- 0publish format from the 0install project
- Native vs Non-Native Debian packages
- Semantic Versioning
- VCI perl module for VCS abstraction
Packaging format references
- Microsoft CoApp windows packaging initiative
- Winpkg windows packaging initiative
- RPM Web site and the Maximum RPM document
- Debian Policy Manual and Ubuntu Packaging Guide
- Solaris packages
- HP-UX SD packages is coming soon
- TracGuide -- Built-in Documentation
- The Trac project -- Trac Open Source Project
- Trac FAQ -- Frequently Asked Questions
- TracSupport -- Trac Support
For a complete list of local wiki pages, see TitleIndex.