Project-Builder.org Home Page
What is Project-Builder.org ?
Project-Builder.org is a GPL tool for simplifying the process of building packages for multiple operating systems from source. The source can come from version control or from tar files, the packages can be build on pre-installed Remote Machines (RM) over ssh, on Virtual Machines (VM) on the local host, or inside a Virtual Environment (VE aka chroot) on the local host. The configuration files for Project-Builder.org are stored in subversion and are used to control the method by which the packages are created. Further details can be found on that page and in a detailed walkthrough of using Project-Builder.org available as http://trac.project-builder.org/browser/devel/pb-doc/LabProject-Builder.org.pdf
Authors
Bruno Cornec: lead development, maintenance, packaging, web site, documentation
Latest news
2013-03-08 Project pb version 0.12.2 is now available
The project team is happy to announce the availability of a newest version of pb 0.12.2. Enjoy it as usual!
Now available at ftp://ftp.project-builder.org
Mostly a bug fix version, with some enhancements as sbx2pkg2ins e.g. Look at detailed changelogs at the end.
As usual source packages are also available in the same directory.
Changes are :
PERL-PROJECTBUILDER CHANGES
- pbdistrogetparam now works, is built & delivered, and has a new -a (all) option (Bruno Cornec)
- New function pb_conf_get_all to return the list of all parameters, also now used by pb_conf_print (Bruno Cornec)
- add a pbdistrogetparam command to ease shell interface (Bruno Cornec)
- Latest Ubuntu codename updated (Bruno Cornec)
- rpmbootstrap content for opensuse 12.2 (Bruno Cornec)
- Exports function pb_vcs_add_if_not_in (Bruno Cornec)
- Introduce a pb_exit function and use it in all apps (Bruno Cornec)
- In debug mode, do not erase the temporary dir created to ease analysis (Bruno Cornec)
- Red Hat 6.2 (not RHEL) support (Bruno Cornec)
- Factorize the proxy usages in pb_apply_conf_proxy and make it public (was partly done only) (Bruno Cornec)
- Allow usage of mayfailverbose in pb_system when both features are needed to help debuging (Bruno Cornec)
- Render File::Temp and Pod::Usage optional, in order to support partly old perl versions (5.00.5 at least) such as on RH6.2, so that the Base.pm module can be used in such a VE/VM (Bruno Cornec)
- Really use snapshot for launchve when needed. fix some parts of the condition which were wrong. (Bruno Cornec)
- Fix a nasty bug when using an empty value on the right side of the = sign in a conf file, he parameter wasn't created in the cache conf. (Bruno Cornec)
- Changing old checksum for yum from sha1 to sha as it wasn't working at least for RHEL5. (Bruno Cornec)
PBMKBM CHANGES
- Minor changes. Still not usable (Bruno Cornec)
PB CHANGES
- Better debug info when passing a wrong parameter (Bruno Cornec)
- Presentation updated for LCA 2013 (Bruno Cornec)
- pbml & pbsmtp params only queried when really needed (can be omitted in the conf file thus for those not using announces) (Bruno Cornec)
- Adds support for a 2ins target for all buildpkg call (example: sbx2pkg2ins) which adds the final installation of packages at the end (Bruno Cornec)
- tar is needed in the VM (Bruno Cornec)
- fix a bug for checkssh with test version where to many * where given (Bruno Cornec)
- Red Hat 6.2 (not RHEL) support: doesn't support setarch i386 for a x86_64, builds with the rpm command, sudo doesn't support the env_keep var, sed -i doesn't work, setupve fix (however needs a manual install of perl 5.6.2 to work) (Bruno Cornec)
- debug level is now passed to the vescrip improving debug capabilities in that script (Bruno Cornec)
- When used the env command should be passed in full path for sudo and then not skipped (Bruno Cornec)
- New deb generation regex to support non english messages better (Bruno Cornec)
- Repository files generated now contains in their name a tag corresponding to the delivery dir. This allows to have easily both a test and non-test version in the same yum repo e.g. (Bruno Cornec)
RPMBOOTSTRAP CHANGES
- Adds Red Hat 6.2 (not RHEL !) support (Bruno Cornec)
- Tested with opensuse 12.2 (Bruno Cornec)
- rpmbootstrap now supports non-yum type of install with a full list of deps. (Bruno Cornec)
2012-05-30 Project pb version 0.12.1 is now available
The project team is happy to announce the availability of a newest version of pb 0.12.1. Enjoy it as usual!
All changelog details are available at the end of this post. For a summary, please look at the 2 blog posts I made to detail this development at http://brunocornec.wordpress.com/2012/05/30/project-builder-org-0-12-1-is-now-available/ and http://brunocornec.wordpress.com/2012/05/22/about-to-publish-project-builder-org-0-12-1/. ANd many thanks to Eric Anderson for his great contributions in this version !
Now available at ftp://ftp.project-builder.org
As usual source packages are also available in the same directory.
Changes are :
PERL-PROJECTBUILDER CHANGES
- Adds pbstoponerr option in conf file to allow to overwrite the default which is back to not stopping on errors as it perturbates VE and VM build for themoment, as not all commands are expected to succeed systematically. (Bruno Cornec)
- Change urpmi.update call from /usr/bin (consolehelper) to /usr/sbin (urpmi) as that's what we have in VE. (Bruno Cornec)
- Fix mageia 1 and 2 deps for VE (Bruno Cornec)
- Adds option pbshowsudo (false by default) to check whether we display the detail of sudo commands (to match security requiremetns) or not (to have a nicer output) (Bruno Cornec)
- In VE.pm fix modes of the chroot after the snapshot phase detection to avoid error which make the code die (Bruno Cornec)
- Improve system cmd display in Distribution.pm for deps analysis (Bruno Cornec)
- pb_system is back to 3 params, as the previously undocumented "mayfail" 3rd parameter provides what the 4th was dded for. callers adapted in relationship. Also improves error message displayed (Bruno Cornec)
- Fix another bug in pb_check_req on the default value used with a || where an undef wasn't different from a bad integer. (Bruno Cornec)
- Use pb_cjeck_req for all commands called in the VE for its setup, so it can be used correctly in a secured environement with a sudoers conf file (Cf pbtest) (Bruno Cornec)
- Adds support for the PBVCSOPT env var to pass cli options to the VCS command. Example is authentication method for SVN as in pbtest. (Bruno Cornec)
- Fix pb_syntax, where a call with an exit of 0 was seen as false and thus lead to a value of -1. Now pb -h returns true (Bruno Cornec)
- Move PBPROJ env var setuo from Env.pm to Conf.pm to have it earlier available for some calls with less context. (Bruno Cornec)
- Fix a bug when (ve|vm|rm)path->ENV(PBPROJ) was undefined, and expand its path when defined to support that type of definition in conf files (pbtest does it) (Bruno Cornec)
- getconf now loads more conf files, and calls cms_compliant (Bruno Cornec)
- Use new pbgpgcheck option to control whether we enable gpgcheck in the repo script. (Eric Anderson)
- Use new projcomponent value to specify which component we are building for -- most things probably aren't contrib (for deb based distros) (Eric Anderson)
- Tolerate the file: and flat: schemes -- they were tolerated in some places but not others. (Eric Anderson)
- Add a new option pbusesshagent in pb.conf to allow the user to specify whether he wants to use his existing SSH environement and agent, or if he prefers to create a new key pair for building. (Bruno Cornec)
- newv(e|m) doesn't require execution of cms2build before being available. (Bruno Cornec)
- Add git support in pb_vcs_up, pb_vcs_checkin and pb_vcs_add and Improve git support for pb_vcs_get_uri (Eric Anderson)
- VE.pm: Verify that the proxy variables are passed through if we are using sudo. (Eric Anderson)
- Adds Scientific Linux support . (Eric Anderson)
- Add case where centos versioning include minor since centos makes major changes in minor releases. (Eric Anderson)
- Fix typo in oracle linux regex. (Eric Anderson)
- Proposes min dependencies separately for centos-5.2, 5.6 others just match that set. (Eric Anderson)
- Add next ubuntu codename. (Eric Anderson)
- Add new pb_pbos_to_keylist function that generates the keys that should be used for looking up filter filenames or keys into the hash-maps. New function will generate 5.m, for all m in [0,n] for version 5.n of some OS. Useful because minor versions are usually similar. Use it in distro_get_param, simplifying the function and making it more powerful. (Eric Anderson)
- add auto-agree-with-licenses for opensuse, other failures on install can occur. (Eric Anderson)
- Fix bug, if we install with yum, put the repo in the yum location. If we install with zypper, put it in the zypper location. Otherwise complain that we don't know what to do with the file. (Eric Anderson/Bruno Cornec)
- Run bootstrapping under linux32 (Bruno changed that to setarch) if arch is i386 and host is x86_64/amd64 so that it gets the architecture right. (Eric Anderson)
- multiple improvements to distro dep lists. (Eric Anderson)
- document addrepo. (Eric Anderson)
- Fix the code to check to see if a deb package is installed. (Eric Anderson)
- sudo does not pass through the DEBIAN_FRONTEND variable; use env to make sure it is set. Also change from --force-yes to --allow-unauthenticated (Eric Anderson)
- Make sure to apply the ftp/http proxy when installing dependencies. Also add hack to try the install twice if it fails the first time. (Eric Anderson)
- Handle multi-line entries in debian control files. (Eric Anderson)
- Add a parameter to pb_system that allows commands to fail even if pb_stop_on_error is set. (Eric Anderson)
- Add in pid to the error output from pb_system for help in tracking down which parent ran the command. (Eric Anderson)
- pb_conf_init is called at low level on the default project to avoid PBPROJ to be undefined and creatin lots of error msgs. pbdistrocheck works again with it. (Bruno Cornec)
- Fix sbx2setupvm in order to call pb_conf_init correctly at start of the pbinit script. (Bruno Cornec)
- Document new ftp_proxy and http_proxy options. (Eric Anderson)
- Document the rbsmirrorsrv option (already supported, not documented). (Eric Anderson)
- Document that sshlogin and sshport are now optional parameters. (Eric Anderson)
- Use confess so when failing to get a parameter we get a stack trace. (Eric Anderson)
- Adding the internal function pb_distro_compare_repo to avoid code duplication between apt and yum repos treatment (Bruno Cornec)
- add pb_path_expand to do the path expansion for config values. (Eric Anderson)
- Print out all sudo'd commands if we haven't already so people know what they're typing their passwords in for. (Eric Anderson)
- verify that we don't try to launch a mips ve on x86_64 (previous check only prevented x86_64 on ix86). (Eric Anderson)
- Make sure to create the path to the VE before we try to bootstrap it. (Eric Anderson)
- Use new Global::pb_stop_on_error variable to decide whether we should abort on an error. (Eric Anderson)
- Skip dependencies that are all whitespace since that leads to errors when running dpkg -L
- Add possibility to use a PREFIX variable for Makefie.PL for pb-module (Eric Anderson)
- Conf.pm largely rewritten to cache all conf files into a local $h hash in which conf files are added in reverse order. (Bruno Cornec)
- pb_vcs_add and pb_vcs_up now support a list of dirs/files as second parameter. (Bruno Cornec)
- pb_mkdir_p now returns the return value of mkpath. (Bruno Cornec)
- Split CMS functions in 2 parts, one lowlevel reusable outside of pb in VCS.pm, the remaining stay in CMS.pm, part of pb. (Bruno Cornec)
- Provides a new pb_get_osrelease function similar to uname -r. (Bruno Cornec)
- patch command and option are now variables in pb.conf under ospatchcmd and ospatchopt (Bruno Cornec)
- Adds OEL support for build (Bruno Cornec)
- Adds support for Fedora 15 and 16 (tested) and RHEL 6 (to be tested) for VE (Bruno Cornec)
- Create a new VE.pm module to host pb_ve_launch (from pb code now reusable for pbmkbm) (Bruno Cornec)
- Adds codename for debian 7 and Ubuntu 11.10 (Bruno Cornec)
- Fix #103: ProjectBuilder::Env is needed by rpmbootstrap so should be under pb-modules (Bruno Cornec)
PBMKBM CHANGES
- First version of this tool which builds custom bootable media. Not usable yet. Will be developed during 0.12.x life (Bruno Cornec)
PB CHANGES
- Adds pbstoponerr option in conf file to allow to overwrite the default which is back to not stopping on errors as it perturbates VE and VM build for themoment, as not all commands are expected to succeed systematically. (Bruno Cornec)
- Change urpmi.update call from /usr/bin (consolehelper) to /usr/sbin (urpmi) as that's what we have in VE. (Bruno Cornec)
- Fix errors in mageia deps (Bruno Cornec)
- pb correctly now differentiate PBDEP and BPBDEP (in Env.pm for template generation) (Bruno Cornec)
- Reverting stop on error to false by default as VM are not usable for now with it. (Bruno Cornec)
- Adds option pbshowsudo (false by default) to check whether we display the detail of sudo commands (to match security requiremetns) or not (to have a nicer output) (Bruno Cornec)
- In pb create the RPM build dirs before entering in the parallel loop as sometimes 2 identical were created simultaneously, leading to an error leading to a die (Bruno Cornec)
- option -h can now be passed multiple times. one provides synopsis, two gives full help. (Bruno Cornec)
- Add a test script to have a full regression suite before publishing a new version. (Bruno Cornec)
- Don't create a repomd.xml.key symlink if the pubkey is empty. opensuse zypper will reject the file and refuse to use the repo (even if the option to ignore signatures is specified) (Eric Anderson)
- lots of improvement into .deb repositories support (Eric Anderson)
- Use new pbgpgcheck option to control whether we enable gpgcheck in the repo script. (Eric Anderson)
- Use new projcomponent value to specify which component we are building for -- most things probably aren't contrib (for deb based distros) (Eric Anderson)
- Tolerate the file: and flat: schemes -- they were tolerated in some places but not others. (Eric Anderson)
- Lots of documentation improvements (Eric Anderson)
- log when we start and finish the build, that's an important state. (Eric Anderson)
- Greatly simplify pb_get_distros function by using split and join. (Eric Anderson)
- New pb_pbos_to_keylist function to generate the list of basenames. (Eric Anderson)
- Improve support of ftp/http proxy, in particular for VEs. (Eric Anderson)
- Add support for multi-line filter variables. (Eric Anderson)
- Make sure that if we are doing a parallel build we will stop on errors if that option is set. (Eric Anderson)
- Fix bug in running in 32bit VE with 64bit host. (Eric Anderson)
- Do *not* set the time in a virtual environment as it breaks stuff. (Eric Anderson)
- Tolerate failures on the debsign step -- the key-file can validly not exist. (Eric Anderson)
- Add a new option pbusesshagent in pb.conf to allow the user to specify whether he wants to use his existing SSH environement and agent, or if he prefers to create a new key pair for building. (Bruno Cornec)
- Update to make the port and login optional config entries. (Eric Anderson)
- vmmonport is now optional. (Bruno Cornec)
- vmmem is also now really optional (wasn't working before as wasn't correctly tested). (Bruno Cornec)
- newv(e|m) doesn't require execution of cms2build before being available. (Bruno Cornec)
- Set pb_stop_on_error, add option to continue through errors. (Eric Anderson)
- Only try to apply and sign patches if the apply script exists. (Eric Anderson)
- Add git support in pb_vcs_up, pb_vcs_checkin and pb_vcs_add. (Eric Anderson)
- Conf.pm largely rewritten to cache all conf files into a local $h hash in which conf files are added in reverse order. (Bruno Cornec)
- Improve web delivery by forcing more open modes for files (644) and dirs (755) in the web tree. (Bruno Cornec)
- Split CMS functions in 2 parts, one lowlevel reusable outside of pb in VCS.pm, the remaining stay in CMS.pm, part of pb. (Bruno Cornec)
- Fix #99. Adds a new extdir member to the pb structure, in order to manage the timestamp tag added in version name for test versions and have a complete correspondance between the tar file content, and the names. This modification creates an incompatibility in the build part of pb (thus change to 0.12.x), so requires that the build environment be updated before it's usable (with setupve|vm or sbx2setupve|vm). Use the new extdir member to update existing projects filter (Bruno Cornec)
- Adds a new -k option to kep some temporary files for debug purposes (Bruno Cornec)
- Fix bugs on check for gentoo. -r is for official versions, _p for test versions (Bruno Cornec)
- Improve handling of lack of svn2cl command (Bruno Cornec)
- Fix 2 bugs in newver with automatic change of version and delivery check to be done. (Bruno Cornec)
- Fix #585 bug in the Mondorescue project (http://trac.mondorescue.org/ticket/585) by creating correct symlinks to the repo key file. (Bruno Cornec)
- Make the parameter of the -t option optional, in which case the underlying distro is used. (Bruno Cornec)
- Adds a cleanssh target to purge test versions on the remote repository. (Bruno Cornec)
- Adds option checkexclude and command checkssh with the -rebuild option: this allows to check after the build which packages have not been built correctly and to potentially relaunch the build. (Bruno Cornec)
- Fix #93 by recoding newver partly and remove the fixed loading of a pb profile in KVM and put it in option. (Bruno Cornec)
- Start to add CPAN upload support to solve #101 - Needs to be tested now with an official version. (Bruno Cornec)
- Fix a bug in the recursive function pb_list_bfiles where file handle should not be global (Bruno Cornec)
- Add support for patches for deb family of distributions (bump version to 0.12 as this is an incompatible change which requires VM update) (Bruno Cornec)
- Fix to support directories under the debian dir (such as source/format) (Bruno Cornec)
- Fix to apply build files really from generic to specific (Bruno Cornec)
- Create a new VE.pm module to host pb_ve_launch (from pb code now reusable for pbmkbm) (Bruno Cornec)
- Adds a yum config line to allow for automatic GPG key import (Bruno Cornec)
- pb now supports distro inhritance for the vmmem parameter (Makes stuff easier for fedora) (Bruno Cornec)
RPMBOOTSTRAP CHANGES
- rpmbootstrap needs aaa_base for VE seyup with zypper, in order to add passwd file e.g. (Bruno Cornec)
- If we have a proxy defined, write it into /etc/sysconfig/proxy. Otherwise one of the opensuse's doesn't work right. (Eric Anderson)
- Improve error message, include why the download failed (Eric Anderson)
- Download files to a temporary name so that ctrl-c won't leave around bad .rpm files. (Eric Anderson)
- Add support for stop-on-error. (Eric Anderson)
- Error out if no packages are defined for the OS version since that indicates something is badly wrong. (Eric Anderson)
- Track the packages that we install so that we can re-install them with the vendor's tool. (Eric Anderson)
- Don't mount proc if it is already mounted. (Eric Anderson)
- Only process repo files under yum.repos.d. (Eric Anderson)
- Report on broken packages listed for installation at the end so the warning isn't hidden. (Eric Anderson)
- Fix rpmbootstrap to support sites with multiple href in their page (opensuse main site e.g) (Bruno Cornec)
- Fix conf to support VE for opensuse 12.1 (Bruno Cornec)
- Improved description, documentation and web pages (Eric Anderson)
- Exit when no mirror defined to build a VE (Bruno Cornec)
- Fix #105: create /dev/null in the chroot to avoid getting a file with errors in it. (Bruno Cornec)
2011-05-27 Project pb version 0.11.3 is now available
The project team is happy to announce the availability of a newest version of pb 0.11.3. Enjoy it as usual!
Now available at ftp://ftp.project-builder.org And commented here
Most notably, this version adds signature support and various smaller fixes. Enjoy !
As usual source packages are also available in the same directory.
Changes are :
PERL-PROJECTBUILDER CHANGES
- Working VE for opensuse-11.4 (Bruno Cornec)
- Arch Linux doesn't have a version. It's like gentoo (Bruno Cornec)
- Adds RPM signature support and doc (Bruno Cornec)
PB CHANGES
- Avoid the structure check for git/hg for now as the way it's currently done is only valid for SVN and the likes (Bruno Cornec)
- allow verbosity transfer to repo creation script (Bruno Cornec)
- Avoids error msgs in announce due to find issues (Bruno Cornec)
- By default enable gpg for repo built with pb, now that package signature is working (Bruno Cornec)
- Fix #96 completely by using the realpkgname and sorting the results (Bruno Cornec)
- Fix #94 by modifying wrong test condition in pb_get_port (Bruno Cornec)
- Fix #97 by delivering in PBBUILDIR instead of non-existent dirs below (Bruno Cornec)
- Adds delivery of the public key to each repository at each delivery (Bruno Cornec)
- Adds suport for .deb package signing (Bruno Cornec)
- Fix debian repo build (Bruno Cornec)
- Adds RPM signature support and doc (Bruno Cornec)
- Adds support for different sha algorithms for createrepo call, due to some distro with python 2.4 not supporting sha256. (Bruno Cornec)
- Fix a bug in debian/ubuntu repo creation for amd64 (used x86_64 instead) (Bruno Cornec)
RPMBOOTSTRAP CHANGES
- Working VE for opensuse-11.4 (Bruno Cornec)
- some corresponding fixes for rpmbootstrap that would also need backward checks now (Bruno Cornec)
2011-03-12 Project pb version 0.11.2 is now available
The project team is happy to announce the availability of a newest version of pb 0.11.2. Enjoy it as usual!
So as promised (or threatened) here is the small update I wanted to make just before using pb for a training next week. Finally some small annoying bugs have been resolved now (in particular around repo management), and nearly the whole spectrum of features has been extensively tested, so that version should be a good one to use for long. Docs is also up to date, in particular Lab, pres and man pages from the Web site.
Now available at ftp://ftp.project-builder.org
As usual source packages are also available in the same directory.
Changes are :
PERL-PROJECTBUILDER CHANGES
- Adds mdkonline as a dependency for Mandriva VE builds (at least afetr 2010.1) to have urpmi.update (Bruno Cornec)
- Fix rpm repo installation for pb (missing arch) (Bruno Cornec)
- Add support for sources.list pb repo installation for deb based distro. Fix for #81. (Bruno Cornec)
- No repo provided for CentOS so file install. Fix for #81. (Bruno Cornec)
- Some more fixes for full path commands with sudo (older rhel) (Bruno Cornec)
- Fix sudo calls for sles/suse with full path (Bruno Cornec)
PB CHANGES
- Fix #82 Undescriptive error message for missing pbcl file (Bruno Cornec)
- Fix #90 - cms2webssh broken (Bruno Cornec)
- Fix #92 as well as documentation generation which was also broken (linufr.org report) (Bruno Cornec)
- Adds filter generation at newproj time for more debian/ubuntu distros (Bruno Cornec)
- Call pb_get_ssh also for VE to build local keys (Bruno Cornec)
- Fix bug #95 Personalized FILTER accessing an item in an hash of a hash (Bruno Cornec)
- Fix a bug in newvm where VMsize was incorrectly used after pbos introduction. (Bruno Cornec)
- Fix #91 where announce was broken and add pkg and sd pakgs to the list (Bruno Cornec)
- Fix #89 where sources.list files generated were incorrect (Bruno Cornec)
- Add support for patches and additional sources also for Solaris (Bruno Cornec)
- Fix a debian build bug due to directory change (Bruno Cornec)
- Postpone execution of pbinit after all files have been filtered so that e.g. a configure.in be filtered before a bootstrap script being executed and all variables expanded correctly. Case of MondoRescue (Bruno Cornec)
- Updated Lab and pres for TES 2011 (Bruno Cornec)
RPMBOOTSTRAP CHANGES
- Try to be more error proof when issues with repository download (Bruno Cornec)
- Fix rpmbootstrap and pb newve order, which wasn't working after the latest pbos introduction (Bruno Cornec)
- rpmbootstrap wasn't using the right conf file when launched with sudo is fixed by using the SUDO_USER env. var. (Bruno Cornec)
- pb.conf rbsmirrorsrv now uses pbos var, and is filtered correctly. (Bruno Cornec)
For more news look here
Made with
About this website
This website has been designed according to the W3C standards in order to be viewable by most standard compliant browsers. Since it uses some CSS techniques, it may not render correctly on some non-free (as in freedom) widely used browser. If this is the case with your browser, you may want to try the latest version of Firefox, a standards compliant free software browser.
This site is best viewed with the free "Vera" True Type Font from Bitstream.