Building gLExec and its gLite dependencies from SVN source

From PDP/Grid Wiki
Jump to navigationJump to search

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:

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

Dependencies: Globus, LCMAPS

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