[Dev] new build infrastructure

Andi Vajda vajda at osafoundation.org
Fri Mar 26 13:29:05 PST 2004


Chandler is a python project that includes and leverages a number of other
open source projects. At this time, that number is 16 and is growing.

Until now we have been including the sources of these projects in our own CVS
repository by 'cvs import'ing them. We've also had to modify them in subtle
ways to integrate them with our build:

This has had several drawbacks:

   - our CVS repository is huge
   - cvs import is a rather clumsy tool
   - everytime we upgrade to a new revision or release it's a headache
     determinining if, how and where our changes still apply
   - we're essentially maintaining our own forks for these projects

In an effort to streamline this we're considering moving to a new build
infrastructure for managing our dependencies on third party open source
projects used by Chandler:

   - When our changes are limited, which is the case with all of systems we
     depend on but one, wxPython, we maintain our changes to them in patch
     files and we don't import their sources into our CVS tree anymore.

   - We supply one downloadable prebuilt release and debug binary archives for
     them built for Linux (Red Hat 8 at the moment), Mac OS X (10.3.x) and
     Windows (win2k/xp).

   - For those who wish to build their own binaries we also provide a separate
     tree in our CVS repository that contains all our build files and patches,
     and a downloadable source archive to be used with this tree.

This new infrastructure is now available for testing and feedback.

To checkout chandler sources and run them with prebuilt binaries:

   - mkdir -p osaf/chandler
   - cd osaf
   - cvs -d :pserver:<cvslogin>@cvs.osafoundation.org co -d hardhat hardhat
   - cd chandler
   - cvs -d :pserver:<cvslogin>@cvs.osafoundation.org co -d Chandler osaf/chandler/Chandler
   - curl -O http://builds.osafoundation.org/www/docs/external/<os>/release-<version>.tar.gz
     where <os> is one of linux, macosx, windows
     where <version> is 0.3-1
   - tar xvzf release-<version>.tar.gz
   - cd Chandler
   - ../../hardhat/hardhat.py -b
   - cd repository
   - ../../../hardhat/hardhat.py -b
   - cd ..
   - ../release/RunRelease -stderr -create

To checkout chandler sources and build the third party binaries yourself:

   - mkdir -p osaf/chandler
   - cd osaf
   - cvs -d :pserver:<cvslogin>@cvs.osafoundation.org co -d hardhat hardhat
   - cd chandler
   - cvs -d :pserver:<cvslogin>@cvs.osafoundation.org co -d Chandler osaf/chandler/Chandler
   - cd ..
   - cvs -d :pserver:<cvslogin>@cvs.osafoundation.org co -d external external
   - cd external
     read the README file there for instructions on requirements and env vars
   - make expand
     this downloads the sources from our server and installs them into the
     tree you just checked out
   - make
   - make binaries
     if it all worked, you end up with release-0.3-1.tar.gz
   - cd ../chandler
   - tar xvzf release-<version>.tar.gz
   - cd Chandler
   - ../../hardhat/hardhat.py -b
   - cd repository
   - ../../../hardhat/hardhat.py -b
   - cd ..
   - ../release/RunRelease -stderr -create

Markie, our new release engineer may already have automated some of these
steps. Feel free to contact him for more info: markie at osafoundation.org.

If you have questions or find problems, feel free to contact him (or me).

Thanks for your feedback !

Andi..


More information about the Dev mailing list