, view all tags

Tutorial on WMS build and debian package creation

This tutorial assumes that you have GIT access to WMS repository https://github.com/MarcoCecchi/org.glite.wms. It will help you to build all the component that you get when cloning the WMS GIT repository without the etics's build automation tools.

Pre-Requisites for build on SL6

  • A "virgin" SLC6 installation
  • yum-autoupdate disabled; execute as root:
chkconfig --level 0123456 yum-autoupdate off
/etc/init.d/yum-autoupdate stop
  • EMI2 repo for external dependencies installation via yum; execute:
wget http://emisoft.web.cern.ch/emisoft/dist/EMI/2/RPM-GPG-KEY-emi
rpm --import RPM-GPG-KEY-emi
yum -y install yum-priorities
wget http://emisoft.web.cern.ch/emisoft/dist/EMI/2/sl6/x86_64/base/emi-release-2.0.0-1.sl6.noarch.rpm
rpm -ivh emi-release-2.0.0-1.sl6.noarch.rpm 
  • Remove the pre-installed c-ares package (that is wrong version):
rpm -e --nodeps c-ares-1.7.0-6.el6.x86_64
  • Install all needed dependencies:
yum -y install mod_fcgid mod_ssl gridsite-apache httpd-devel zlib-devel boost-devel \
                     c-ares-devel glite-px-proxyrenewal-devel voms-devel voms-clients argus-pep-api-c-devel \
                     lcmaps-without-gsi-devel lcmaps-devel classads-devel glite-build-common-cpp \
                     gsoap-devel libtar-devel cmake globus-ftp-client globus-ftp-client-devel log4cpp-devel \
                     log4cpp glite-jobid-api-c glite-jobid-api-c-devel glite-jobid-api-cpp-devel openldap-devel \
                     glite-wms-utils-exception  glite-wms-utils-classad chrpath cppunit-devel \
                     glite-wms-utils-exception-devel glite-wms-utils-classad-devel glite-jdl-api-cpp-devel \
                     glite-lb-client-devel glite-lbjp-common-gsoap-plugin-devel

Checking out WMS from GIT repository

As normal user (having the GIT access as said above) clone the WMS repository:
cd $HOME; git clone --progress -v https://github.com/MarcoCecchi/org.glite.wms.git WMS
(it is better if possible to use the ssh access: git clone --progress git@github.com:MarcoCecchi/org.glite.wms.git WMS)

Pre-Requisites for build on Debian and for .deb packaging

Execute (as root) the following commands:
apt-get install curl
curl http://emisoft.web.cern.ch/emisoft/dist/EMI/2/debian/dists/squeeze/main/binary-amd64/emi-release_2.0.0-1.deb6.1_all.deb \
       -o emi-release_2.0.0-1.deb6.1_all.deb

dpkg -i emi-release_2.0.0-1.deb6.1_all.deb

apt-get install build-essential autoconf automake autotools-dev dh-make debhelper \
                     devscripts fakeroot xutils lintian pbuilder cmake dpkg-dev pkg-config

Now an extra EMI software repository is needed to be able to install glite-jobid* packages; as root do the following:
curl http://eticssoft.web.cern.ch/eticssoft/pbuilder/emi-2-deb6-test-x86_64.list -o /etc/apt/sources.list.d/emi-2-deb6-test-x86_64.list
apt-get update
Now you can install some dependencies needed by WMS's build (as root):
apt-get install libglite-jobid-api-c-dev libglite-jobid-api-cpp-dev libglite-jobid2 libclassad0-dev \
                     liblog4cpp5-dev libglobus-io-dev libglobus-gss-assist-dev libglobus-ftp-client-dev \
                     libglobus-common-dev libboost-regex-dev libboost-filesystem-dev libboost-date-time-dev

Now, some dependencies internal and external do not provice the pkg-config .pc files (this is the case of boost, classad, etc.). As root follow these steps:
curl http://devel12.cnaf.infn.it:7444/pub/emi/packaging/deb/emi-pkgconfig-compat/deb-emi-pkgconfig-compat-head \
      -o deb-emi-pkgconfig-compat-head

chmod +x deb-emi-pkgconfig-compat-head
dpkg -i BINARIES/emi-pkgconfig-compat_1.0.1-1_all.deb
At this point your debian box is ready to build WMS software, logout and login as "normal" user.

Build (on both SL6 and Debian6_2)

These are the steps to follow (at the moment only the org.glite.wms.common component is covered):
cd $HOME
git clone git://github.com/italiangrid/classad-utils.git
git clone git://github.com/italiangrid/jobman-exception.git
git clone https://github.com/MarcoCecchi/org.glite.wms.git

cd classad-utils
cmake . -DCMAKE_INSTALL_PREFIX=$HOME/WORKAREA/stage -Dprefix=$HOME/WORKAREA/stage/usr -Dexec_prefix=$HOME/WORKAREA/stage/usr -Dlibdir=$HOME/WORKAREA/stage/usr/lib -Dincludedir=$HOME/WORKAREA/stage/usr/include
make install
cd ..
cd jobman-exception
cmake . -DCMAKE_INSTALL_PREFIX=$HOME/WORKAREA/stage  -Dprefix=$HOME/WORKAREA/stage/usr -Dexec_prefix=$HOME/WORKAREA/stage/usr -Dlibdir=$HOME/WORKAREA/stage/usr/lib -Dincludedir=$HOME/WORKAREA/stage/usr/include
make install
cd ..
cd org.glite.wms/org.glite.wms.common
cmake . -DPREFIX=$HOME/WORKAREA/stage/usr -DINSTALL_BUILD_DEV=$HOME/WORKAREA/debian/build_dev/org.glite.wms.common/usr -DINSTALL_BUILD=$HOME/WORKAREA/debian/build_nodev/org.glite.wms.common/usr -DOFFICIAL_INSTALL_PREFIX=/usr
make install

In order to make sure that everything worked try to execute an executable provided by org.glite.wms.common:

export LD_LIBRARY_PATH=$HOME/WORKAREA/stage/usr/lib
Configuration problem: file "glite_wms.conf" not found in the path(s) /etc/glite-wms, /opt/glite/etc, /etc,
It doesn't matter the error output, this is just to verify that the exe is correctly compiled and linked. TBC

-- AlviseDorigo - 2012-10-04

Edit | Attach | PDF | History: r14 < r13 < r12 < r11 < r10 | Backlinks | Raw View | More topic actions...
Topic revision: r11 - 2012-10-11 - AlviseDorigo
  • Edit
  • Attach
This site is powered by the TWiki collaboration platformCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback