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, 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
LCMAPS plugins basic
cd ${source}
cvs co org.glite.security.lcmaps-plugins-basic
cd org.glite.security.lcmaps-plugins-basic
cp -p ../org.glite.build.common-cpp/m4/{glite,globus,lcmaps,gridlist}.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
LCMAPS plugins verify-proxy
Dependencies: LCMAPS
cd ${source}
cvs co org.glite.security.lcmaps-plugins-verify-proxy
cd org.glite.security.lcmaps-plugins-verify-proxy
cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security}.m4 ./project
./bootstrap
./configure --prefix=${prefix}
--with-glite-location=${glite}
make && make install