Project

General

Profile

Building PPFX

This wiki page aims to explain how to make a new version of PPFX

First off, make a workspace and clone the repository into it

$ mkdir ./my_ppfx_dir
$ cd ./my_ppfx_dir
$ git clone ssh://p-ppfx@cdcvs.fnal.gov/cvs/projects/ppfx

Next, open up ./ppfx/ups/product_deps. Increment parent ppfx version and update any dependency versions as necessary (usually just ifdh_art needs to be updated), e.g.

< parent ppfx  v02_10
---
> parent ppfx  v02_10_01

< ifdh_art        v2_07_07
---
> ifdh_art        v2_07_08

Now make a build and install directory in your workspace, and move into the build directory. Setup the UPS area and source the PPFX setup script with either the -<p|d> and <e17|c2> qualifiers

$ mkdir ./my_ppfx_dir/build_dir
$ mkdir ./my_ppfx_dir/install_dir
$ cd ./my_ppfx_dir/build_dir
$ source /cvmfs/nova.opensciencegrid.org/externals/setup
$ source /nova/ana/users/csweeney/my_ppfx_dir/ppfx/ups/setup_for_development -p e17

If setup_for_development completes succesfully, build the product using buildtool

$ buildtool -I "/nova/ana/users/csweeney/my_ppfx_dir/install_dir" -bti -j4

If this build is successful, you should push the changes you made to the repository, and make a tag of the repository with the same name as the version of PPFX you are creating.

Now repeat for different combinations of the -<p|d> and <e17|c2> qualifiers, and also from an SL7 node (e.g. novasl7gpvm01) to get all the required builds ({prof,debug}.{e17,c2}.{SL6,SL7}). Before each new build, it is necessary to unsetup all UPS products and clear out ./my_ppfx_dir/build_dir

$ unsetup_all
$ rm -rf ./build_dir/*

Once you have built all the required versions, you can scp ./install_dir/ppfx/v02_10_01 and ./install_dir/ppfx/v02_10_01.version onto CVMFS.