This document describes the build procedure of the NorduGrid ARC v0.6.x middleware from tarball or from source RPM. This is a Web-friendly variant of the INSTALL file distributed with the middleware. When building older versions of ARC, always consult the INSTALL file in the distribution.
This document is mostly focused and tested on RedHat-like distributions. For Debian-like systems (especially Ubuntu), check ARC build notes by NDGF. They are reported to be suitable for other systems, too.
Before trying to compile the ARC middleware make sure you have installed the following software packages:
Note that NorduGrid provides packaged versions of GPT, Globus, gSOAP, VOMS, and it is highly recommended to use these packages if possible. The rest of the dependencies are available in any standard Linux distribution.
Make sure that GPT_LOCATION and GLOBUS_LOCATION environment variables are set properly
The build is using the GNU autotools. This means that a standard installation can be made with:
./bootstrap
./configure
make
make install
The configure script accepts the usual options with the addition of: (defaults in square brackets)
| --disable-python-wrappers | Disable Python wrappers for ARCLIB |
| --disable-pkgdirs | Do not use pkg directories. Useful for /opt/nordugrid installation. |
| --disable-voms | Disable VOMS support |
| --disable-lcas | Disable LCAS support |
| --disable-lcmaps | Disable LCMAPS support |
| --enable-experimental | Enable experimental code |
| --disable-rpath-hack | Do not rpath Globus libraries in binaries |
| --enable-docs | Build the documentation |
| --with sysv-scripts-location=<PATH> | Location of the SYSV init scripts [autodetect] |
| --with-monitor-prefix=<PATH> | Specify the location of the Grid Monitor WWW scripts [/var/www/html/gridmonitor] |
| --with-monitor-local-prefix=<PATH> | Specify the relative location of the Grid Monitor WWW scripts [gridmonitor] |
| --with-cron-scripts-prefix=<PATH> | Specify the location of the cron directory [/etc/cron.d] |
| --with-profile-scripts-prefix=<PATH> | Specify the location of the profile directory [/etc/profile.d] |
| --with-gsoap-location=<PATH> | Specify the gSOAP installation path [autodetect] |
| --with-mysql-location=<PATH> | Specify the MySQL installation path [autodetect] |
| --with-libxml-location=<PATH> | Specify the libxml installation path [autodetect] |
| --with-gacl-location=<PATH> | Specify the GACL installation path [/opt/gridsite|autodetect] |
| --with-default-globus-location=<PATH> | Specify the default globus location. [/opt/globus] |
| --with-globus-location=<PATH> | Specify the globus installation path |
| --with-gpt-location=<PATH> | Specify the gpt installation path |
| --with-globus-makefile-header | Use globus-makefile-header to generate makefile stubs |
| --with-flavor=<flavor> | Specify the globus build flavor or without-flavor for a flavor independent |
| --with-voms-location=<PATH> | Specify the VOMS installation path [/opt/voms] |
| --with-lcas-location=<PATH> | Specify the LCAS installation path [/opt/edg] |
| --with-lcmaps-location=<PATH> | Specify the LCMAPS installation path [/opt/edg] |
| --with-qtdir=<PATH> | Specify the QT installation path [autodetect] |
Note that using --disable-pkgdirs will install the software without package directories suitable for /opt/nordugrid installation:
/opt/nordugrid/bin
/opt/nordugrid/lib
/opt/nordugrid/libexec
..
A "standard" install using the --prefix=/usr/local will place the software in nordugrid subdirectories:
/usr/local/bin
/usr/local/lib/nordugrid
/usr/local/libexec/nordugrid
..
Please note that make builds the full middleware containing server, client, monitor and documentation. Modular builds (such as make client, or make server) are not supported yet.
Make sure that GPT_LOCATION and GLOBUS_LOCATION environment variables are set properly
ARC can be built using RPM. From a tar.gz file do:
rpmbuild -ta nordugrid-arc-<version>.tar.gz
and from a .src.rpm do:
rpmbuild --rebuild nordugrid-arc-<version>.src.rpm
Source RPMs are configured with the --disable-pkgdirs switch and binary builds are relocatable (consult the relocation instructions).
In terms of RPMs the build requirements can be satisfied with the following packages:
Note that the naming convention above might not correspond exactly to the naming used on your system. Also be aware that on some systems the RPM dependencies are broken. This means for example that libxml2 is not explicitly required by lixml2-devel which it should be.
The RPMs created by rpmbuild are:
| nordugrid-arc-client | Client programs |
| nordugrid-arc-server | Servers |
| nordugrid-arc-logger-server | Logger server |
| nordugrid-arc-gridmap-utils | Utilities for managing gridmap-files |
| nordugrid-arc-ca-utils | Utilities for mainting CA files |
| nordugrid-arc-monitor | Grid monitor web interface (should be installed on a Web server in a convenient directory) |
| nordugrid-arc-doc | Documentation |
| nordugrid-arc-libs | Runtime libraries |
| nordugrid-arc-libs-devel | Development files (headers, static libs) |
| nordugrid-arc-python | Python bindings of arclib |
| nordugrid-arc-compat | Old client tools |
The strict runtime RPM dependencies are:
| nordugrid-arc-libs | → | globus, gsoap, libxml2 >= 2.4.0 |
| nordugrid-arc-libs-devel | → | nordugrid-arc-libs |
| nordugrid-arc-client | → | nordugrid-arc-libs, globus, gsoap, libxml2 >= 2.4.0 |
| nordugrid-arc-compat | → | nordugrid-arc-client, globus, gsoap, libxml2 >= 2.4.0 |
| nordugrid-arc-python | → | nordugrid-arc-libs, globus, gsoap, libxml2 >= 2.4.0 |
| nordugrid-arc-server | → | nordugrid-arc-libs, globus, gsoap, libxml2 >= 2.4.0, voms >= 1.6.7 |
| nordugrid-arc-logger-server | → | nordugrid-arc-libs, globus, gsoap, nordugrid-arc-server, mysql |
| nordugrid-arc-gridmap-utils | → | perl modules (Net::LDAP, XML::DOM, LWP::UserAgent, URI) |
| nordugrid-arc-ca-utils | → | wget |
Requirements not expressed in the RPM requirements
| nordugrid-arc-server | → | standard Perl environment |
| nordugrid-arc-ca-utils | → | openssl (native or globus-provided) |
| nordugrid-arc-gridmap-utils | → | openssl (native or globus-provided) and optional (preferably) curl >= 7.9.8 |
Special requirements of the Grid Monitor (not expressed in RPM requirements):
| nordugrid-arc-monitor | → | php4 or php5, php-ldap, php-gd, openldap, webserver |