= 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 [http://www.mondorescue.org 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 [http://www.mondorescue.org 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 [http://trac.dploy.org dploy.org] which uses the great [http://www.LinuxCOE.org 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, ...) = Getting Project-Builder.org = * 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 [http://search.cpan.org/~bco CPAN] via [https://pause.perl.org/pause/authenquery?ACTION=show_files PAUSE] upload. * Latest development version is availble from the Subversion repository by doing svn co svn://svn.project-builder.org/pb = Documentation = == Generic docs == * [wiki:FAQ] * [wiki:Documentation] * The latest presentation of the project is available at http://trac.project-builder.org/browser/devel/pb-doc/pb-presentation.odp * [wiki:OpenSolaris Porting on Open Solaris] * [wiki:HP-UX Porting on HP-UX] * [wiki:LSB Generating LSB compliant packages] == Examples of Project-Builder usage == * The [http://trac.project-builder.org/browser/devel/pb-doc/LabProject-Builder.org.pdf 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 * [wiki:Bootstrapping]: How do I get started. = Other pages of interest = * [wiki:Communication Communications around Project-Builder] * The [http://vcs-pkg.org/ VCS-Pkg] initiative * [http://www.mancoosi.org/edos/packages.html Package format] comparison by the [EDOS] project * [http://svn.rpmforge.net/svn/trunk/tools/dar/dar-perl.py dar-perl]: python script to generate .spec file for perl modules * [http://www.xen-tools.org/software/rinse rinse]: installing minimal copies of RPM-based distributions. * [http://people.redhat.com/~rjones/febootstrap/ febootstrap] tool for building supermin appliances * [http://pwet.fr/man/linux/commandes/schroot schroot]: securely enter a chroot environment ([http://www.nikhef.nl/~dennisvd/schroot.html Example] for CentOS). * [http://createrepo.baseurl.org/ createrepo]: tool to create a yum repository * [http://dev.linuxfoundation.org/download/ LSB] chroot compliant download. * [http://bitbake.berlios.de BitBake] a tool for executing tasks and managing metadata. * [http://0install.net/package-scons.html 0publish format] from the [http://0install.net/ 0install] project * [http://wiki.debian.org/DebianMentorsFaq#What_is_the_difference_between_a_native_Debian_package_and_a_non-native_package.3F Native vs Non-Native] Debian packages * [http://www.packagekit.org/ PackageKit] * [http://semver.org/ Semantic Versioning] * [http://enricozini.org/2011/debian/distromatch/ distromatch] * [http://www.freedesktop.org/software/systemd/man/os-release.html os-release] * [http://search.cpan.org/~mkanat/VCI-0.7.1/ VCI] perl module for VCS abstraction == Packaging format references == * [http://www.coapp.org Microsoft CoApp] windows packaging initiative * [http://www.wpkg.org Winpkg] windows packaging initiative * [http://www.rpm.org RPM] Web site and the [http://www.rpm.org/max-rpm/ Maximum RPM] document * [http://www.debian.org/doc/debian-policy/ Debian Policy Manual] and [https://wiki.ubuntu.com/PackagingGuide Ubuntu Packaging Guide] * [wiki:OpenSolaris#Solarispackages Solaris] packages * [wiki:HP-UX#HPUXpackages HP-UX] SD packages is coming soon = Concerning trac = * TracGuide -- Built-in Documentation * [http://projects.edgewall.com/trac/ The Trac project] -- Trac Open Source Project * [http://projects.edgewall.com/trac/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions * TracSupport -- Trac Support For a complete list of local wiki pages, see TitleIndex. Trac is brought to you by [http://www.edgewall.com/ Edgewall Software], providing professional Linux and software development services to clients worldwide. Visit http://www.edgewall.com/ for more information.