Difference between revisions of "Building gLExec and its gLite dependencies from SVN source"

From PDP/Grid Wiki
Jump to navigationJump to search
Line 48: Line 48:
 
''Note'': It is important to use the given <tt>org.glite.build.common-cpp</tt> version!
 
''Note'': It is important to use the given <tt>org.glite.build.common-cpp</tt> version!
 
  cd ${source}
 
  cd ${source}
 +
cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp
 
  cvs co org.glite.security.lcmaps
 
  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
 
  cd org.glite.security.lcmaps
 
  cp -p ../org.glite.build.common-cpp/m4/{globus,glite,glite_security,lcmaps}.m4 ./project
 
  cp -p ../org.glite.build.common-cpp/m4/{globus,glite,glite_security,lcmaps}.m4 ./project
Line 63: Line 63:
 
''Note'': glite-build-common-cpp is also checked out under [[#LCMAPS|LCMAPS]].
 
''Note'': glite-build-common-cpp is also checked out under [[#LCMAPS|LCMAPS]].
 
  cd ${source}
 
  cd ${source}
 +
cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp
 
  cvs co org.glite.security.lcas
 
  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
 
  cd org.glite.security.lcas
 
  cp -p ../org.glite.build.common-cpp/m4/{glite,globus,lcmaps}.m4 ./project
 
  cp -p ../org.glite.build.common-cpp/m4/{glite,globus,lcmaps}.m4 ./project
Line 149: Line 149:
 
  cd org.glite.security.lcmaps-plugins-c-pep
 
  cd org.glite.security.lcmaps-plugins-c-pep
 
  cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security}.m4 ./project
 
  cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security}.m4 ./project
 +
./bootstrap
 +
./configure --prefix=${glite} --with-glite-location=${glite}
 +
make && make install
 +
 +
== SAML2-XACML2 Library ==
 +
''Note'': glite-build-common-cpp is also checked out under [[#LCMAPS|LCMAPS]] and/or [[#LCAS|LCAS]]
 +
cd ${source}
 +
cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp
 +
cvs co org.glite.security.saml2-xacml2-c-lib
 +
cd org.glite.security.saml2-xacml2-c-lib
 +
cp -v -p ../org.glite.build.common-cpp/m4/glite.m4 ./project
 +
export CXXFLAGS=-fPIC
 +
cd gsoap-2.7
 +
../autogen.sh
 +
./configure --prefix=${glite}
 +
make && make install
 +
cd ../xacml-1.0
 +
../autogen.sh
 +
./configure --prefix=${glite} --with-gsoap=${glite}
 +
make && make install
 +
 +
== LCMAPS plugins SCAS client ==
 +
Dependencies: [[#LCMAPS|LCMAPS]], [[#SAML2-XACML2 Library|SAML2-XACML2 Library]]
 +
cd ${source}
 +
cvs co org.glite.security.lcmaps-plugins-scas-client
 +
cd org.glite.security.lcmaps-plugins-scas-client
 +
cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security,lcmaps}.m4 ./project
 
  ./bootstrap
 
  ./bootstrap
 
  ./configure --prefix=${glite} --with-glite-location=${glite}
 
  ./configure --prefix=${glite} --with-glite-location=${glite}
 
  make && make install
 
  make && make install

Revision as of 14:00, 3 June 2010

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, VOMS API

Note: It is important to use the given org.glite.build.common-cpp version!

cd ${source}
cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp
cvs co org.glite.security.lcmaps
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 -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp
cvs co org.glite.security.lcas
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

LCMAPS plugins voms

Dependencies: Globus, VOMS API, LCMAPS

cd ${source}
cvs co org.glite.security.lcmaps-plugins-voms
cd org.glite.security.lcmaps-plugins-voms
cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security,globus,lcmaps,gridlist}.m4 ./project
./bootstrap
./configure --prefix=${glite}
            --with-glite-location=${glite}
            --with-globus-prefix=${globus} --with-globus-thr-flavor=${globus_flav}pthr --with-globus-nothr-flavor=${globus_flav}
make && make install

PEP-C Library

Note: the way the PEP-C library determines the library path is not fully compatible with the way LCMAPS does it. To fix this, define:

export pepclibdir=${glite}/<libdir used by LCMAPS>
cd ${source}
svn co http://svnweb.cern.ch/guest/glxa/pep-c-lib/tags/1_3_0 org.glite.authz.pep-c
cd org.glite.authz.pep-c
./autotools.sh
./configure --prefix=${glite} --libdir=${pepclibdir}
make && make html && make install

LCMAPS plugins C-pep

Dependencies: LCMAPS, PEP-C Library

cd ${source}
cvs co org.glite.security.lcmaps-plugins-c-pep
cd org.glite.security.lcmaps-plugins-c-pep
cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security}.m4 ./project
./bootstrap
./configure --prefix=${glite} --with-glite-location=${glite}
make && make install

SAML2-XACML2 Library

Note: glite-build-common-cpp is also checked out under LCMAPS and/or LCAS

cd ${source} 
cvs co -r glite-build-common-cpp_R_3_2_7_1 org.glite.build.common-cpp
cvs co org.glite.security.saml2-xacml2-c-lib
cd org.glite.security.saml2-xacml2-c-lib
cp -v -p ../org.glite.build.common-cpp/m4/glite.m4 ./project
export CXXFLAGS=-fPIC 
cd gsoap-2.7
../autogen.sh
./configure --prefix=${glite}
make && make install
cd ../xacml-1.0
../autogen.sh
./configure --prefix=${glite} --with-gsoap=${glite}
make && make install

LCMAPS plugins SCAS client

Dependencies: LCMAPS, SAML2-XACML2 Library

cd ${source}
cvs co org.glite.security.lcmaps-plugins-scas-client
cd org.glite.security.lcmaps-plugins-scas-client
cp -p ../org.glite.build.common-cpp/m4/{glite,glite_security,lcmaps}.m4 ./project
./bootstrap
./configure --prefix=${glite} --with-glite-location=${glite}
make && make install