Building gLExec and its gLite dependencies from SVN source
Introduction
This page explains the steps needed to build gLite tools, in particular gLExec and its LCMAPS and LCAS dependencies directly from the source in CVS.
Prerequisites: Globus and global settings
At this point we depend on a (binary) globus installation. For the following OSes it can be found in the Etics repositories:
- RedHat-4 32 bits (also for SL(C)-4 and Centos-4): globus-4.0.3-VDT-1.6.1-7.tar.gz
- RedHat5 64 bits (also for SL(C)-5 and Centos-5): globus-4.0.7-VDT-1.10.1-1.tar.gz
- OpenSUSE 11 64 bits: globus-4.0.7-VDT-1.10.1-1.tar.gz
- Debian-5 64 bits: globus-4.0.8-VDT-2.0.0-2.tar.gz
Set the following exports:
export globus_flav=gcc32 |
or | export globus_flav=gcc64 |
And additionally, adapted to personal taste:
export source=/tmp/source # Where to download sources export globus=/tmp/build/globus # Where to install globus export glite=/tmp/build/glite # Where to find glite builds export prefix=${glite} # Where to install glite builds export CVSROOT=:pserver:anonymous@glite.cvs.cern.ch:/cvs/glite # anonymous CVS root
Make sure ${source} exists.
Since all these tarballs assume installation in /opt/globus unpack and 'relocate' as follows:
mkdir -p ${globus} && \ cd ${globus} && \ tar -zxf <globus tarball> && \ find -type f -name \*.la|while read file;do sed s+/opt/globus+${globus}+g ${file} > ${file}.new && \ mv -f ${file}.new ${file} done
VOMS API
Dependencies: Globus
cd ${source} cvs co -r glite-security-voms_R_1_9_16_2 org.glite.security.voms cd org.glite.security.voms ./configure --prefix=${prefix} --with-globus-prefix=${globus} --disable-java --with-api-only make && make install
LCMAPS
Dependencies: Globus and VOMS API
Note: It is important to use the given org.glite.build.common-cpp version!
cd ${source} cvs co org.glite.security.lcmaps cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp cd org.glite.security.lcmaps cp -p ../org.glite.build.common-cpp/m4/{globus,glite,glite_security,lcmaps}.m4 ./project ./bootstrap ./configure --prefix=${prefix} \ --with-glite-location=${glite} \ --with-globus-prefix=${globus} --with-globus-thr-flavor=${globus_flav}pthr --with-globus-nothr-flavor=${globus_flav} make && make install
LCAS
Dependencies: Globus
Note: glite-build-common-cpp is also checked out under LCMAPS.
cd ${source} cvs co org.glite.security.lcas cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp cd org.glite.security.lcas cp -p ../org.glite.build.common-cpp/m4/{glite,globus,lcmaps}.m4 ./project ./bootstrap && \ ./configure --prefix=${prefix} \ --with-glite-location=${glite} \ --with-globus-prefix=${globus} --with-globus-thr-flavor=${globus_flav}pthr --with-globus-nothr-flavor=${globus_flav} make && make install
LCAS interface
cd ${source} cvs co org.glite.security.lcas-interface cd org.glite.security.lcas-interface cp -p ../org.glite.build.common-cpp/m4/glite.m4 ./project ./bootstrap ./configure --prefix=${prefix} make install
gLExec
Dependencies: Globus, VOMS API, LCMAPS, LCAS, LCAS interface
Note: for Debian-5 set the following extra export:
export LDFLAGS="-Wl,--rpath -Wl,${globus}/lib"
cd ${source} cvs co org.glite.security.glexec cd org.glite.security.glexec cp -p ../org.glite.build.common-cpp/m4/{glite,globus,lcmaps}.m4 ./project ./bootstrap ./configure --prefix=${prefix} \ --with-glite-location=${glite} --with-globus-prefix=${globus} --with-globus-thr-flavor=${globus_flav}pthr --with-globus-nothr-flavor=${globus_flav} make && make install