Specifics of the NorduGrid release of the Globus Toolkit 2™

Important notes

The NorduGrid middleware builds on top of the Globus Toolkit 2™. Although any reasonably stable release of GT2™ can be used, NorduGrid exploits many features which are often out of scope of the Globus developers. As a result, several patches and bug fixes for GT2™ are recommended and applied by the NorduGrid. Such patched version of Globus is recommended by the NorduGrid developers, since it allows users to avoid several shortcomings. It is packed as a single RPM distribution and is available for download from the NorduGrid downloads area.

While some patches and fixes are reported back to Globus, the propagation time for a patch into an official release takes too long (months at times). Also, some fixes are either of minor importance, or make use of components not supported by Globus any longer, while being still used by the NorduGrid. Hence the NorduGrid definitely has to provide an own Globus distribution, and intend to do so in future.

Other re-packaged Globus distributions, most notably, those from NMI or VDT, typicaly do not contain NorduGrid patches either, and have an unacceptable latency in releasing new versions. Moreover, the RPM packages provided by these projects are not natively built ones, and can not be re-built on different platforms. Thus, although NorduGrid can be built against such distributions, to achieve the best performance it is recommended to install the NorduGrid-patched Globus Toolkit 2™.

Installation

The NorduGrid's Globus release is available as pre-build binary packages, either in RPM or gzipped tar formats. The packages must be installed in the following order:

  1. Grid Packaging Tools (GPT)
  2. Globus Toolkit 2

Binaries are available through the NorduGrid Downloads area under "External software": choose "gpt" and "globus".

To install from RPMs, do:

rpm -Uvh gpt-<version>.rpm
rpm -Uvh globus-<version>.rpm

To install from the binary tarballs, simply unpack the packages.

Make sure that the environment variables GLOBUS_LOCATION and GPT_LOCATION are set according to your Globus installation: unless you forced installation in a specific location, the default locations should be /opt/globus and /opt/gpt respectively.

If you installed Globus from the binary tarballs, execute the post-installation script in $GLOBUS_LOCATION/setup/globus-post-install-script

Building

In addition to the pre-built Globus binary RPMs and tarballs, available for a dozen of GNU/Linux distributions, NorduGrid provides a source RPM for the patched Globus as well (globus-<x.y.z-N>ng). Re-building a single globus-<x.y.z-N>ng RPM requires a functional RPM build environment and prior installation of the following software:

To re-build an RPM from a source tar.gz file, do:

rpmbuild -ta <package>.tar.gz

or, from a .src.rpm, do:

rpmbuild --rebuild <package>.src.rpm

Proceed them with installation as written above.

Patches being applied for the NorduGrid GT2™ release

Check the list of all the bugs ever submitted by the NorduGrid to the Globus Toolkit™ Bugzilla.

Below is the list of patches currently or recently applied by the NorduGrid to the original Globus Toolkit 2™ distribution.


Patch Description Globus bug #
globus_gatekeeper.0.patch Adds an extra logging line with everything on one line Submitted by EDG
globus_gss_assist.0.patch Allows for dynamic accounts Submitted by EDG
globus_openldap-2.0.22-4.patch Patch to make openldap handle long packets and timeouts properly. #1201, #1483 (re-submitted by VDT) – fixed
globus_mds_timeout.patch Patch to make MDS handle timeouts properly. #1201, #1483 (re-submitted by VDT) – fixed
globus_replica_catalog-2.1.patch Use secure authentication while contacting globus replica server. Not reported because Globus does not support Replica Catalog anymore
globus_merge_openldap-3.patch Merge the 2 versions of OpenLDAP that Globus distributes (one for MDS and another for Replica Catalog). Not reported because Globus does not support Replica Catalog anymore
globus_gsincftp-mandir.patch Fix the problem with gsincftp manpage locations Not reported, non-critical
globus_cyrus-sasl_nousrlocal.patch Get around a bug in gcc-3.2 (applied only for gcc-3.2) Reported by others, Globus does not consider it a bug (see e.g. bug report #488)
globus_gsincftp_noextradirs.patch Get around a bug in gcc-3.2 (applied only for gcc-3.2) Reported by others, Globus does not consider it a bug (see e.g. bug report #488)
globus_openldap_perms.patch Correct permissions for openldap libraries. #858 – fixed - but still applied (?)
globus_ftp_client_transfer.patch Handle timeout when asking for size of files on gsiftpserver. #1084 – assigned
globus_iov_max.patch Fixes something Reported by others: #992 – fixed (?)
globus_makefile-header.patch This patch fixes globus-makefile-header to work with gpt-3.0.1 Reported by others: #1141 – new (?)
globus_normalization.patch This patch makes globus_i_gss_assist_gridmap_parse_globusid use the same normalization as X509_NAME_oneline. #1417 &ndash assigned
globus_slapd_backslash.patch Removes the backslash from the list of characters that cause unconditional rejection #1496 – new
globus_debug.h.patch Fix for using header in C++ #929 – fixed in globus_common 3.16 (update for 2.4.3); not applied
globus_common_gpt1.patch Fix GPT dependencies for GPT version 1 Not reported as Globus does not support GPT v.1 anymore; not applied

Packaged components

Listed in build order

TitleDescription (if any)
globus_core
globus_common
globus_common_setup
globus_data_conversion
globus_hostname2contacts
globus_gatekeeper_setup
globus_libtool
globus_mds_common
globus_mds_common_setup
globus_mds_gris
globus_mds_gris_setup
globus_openssl
globus_proxy_wrapper
globus_trusted_ca_42864e48_setup
globus_user_env
globus_cyrus-sasl
globus_gass_cachemanages the local GASS cache on a client system
globus_gsi_openssl_error
globus_gsi_proxy_ssl
globus_mp
globus_rsl
globus_gram_reporter
globus_openldapan API for the LDAP protocol used by MDS
globus_openssl_module
globus_rsl_assist
globus_gsi_cert_utils
globus_gsi_sysconfig
globus_gsi_callback
globus_gsi_credential
globus_gsi_proxy_core
globus_gssapi_gsi
globus_proxy_utils
globus_gss_assistsimplifies the use of the GSSAPI in the Globus environment
globus_sasl_gssapi_gsi
globus_gatekeeper
globus_ioprovides high-performance I/O with integrated security and a socket-like interface
globus_ldapmodules
globus_mds_back_giis
gssapi_error
globus_ftp_controlprovides low-level services for implementing FTP client and servers
globus_gass_transferprovides an API for clients and servers involved in GASS data transfer
globus_gram_protocol
globus_nexusprovides multithreaded, asynchronous, thread-safe multiprotocol communication facilities
globus_duct_common
globus_ftp_clientprovides a convenient way of accessing files on remote FTP servers
globus_gass_server_ezprovides a simple set of GASS server capabilities
globus_gram_clientprovides remote job submission and management capabilities
globus_gridftp_server
globus_duct_control
globus_duct_runtime
globus_duroc_commonprovides resource coallocation services for starting distributed jobs
globus_gass_copyprovides a uniform interface for accessing files using a variety of protocols
globus_gass_cache_program
globus_gram_job_managerprovides a simple, consistent way to interact locally with a variety of schedulers such as LSF, LoadLeveler, PBS, Condor, etc.
globus_duroc_control
globus_gram_client_tools
globus_gram_myjobprovides a basic communication mechanism for processes within a GRAM job
globus_duroc_runtime
globus_duroc_bootstrap
globus_gram_job_manager_setup
globus_gram_job_manager_setup_fork
globus_gram_job_manager_setup_condor
globus_gram_job_manager_setup_lsf
globus_gram_job_manager_setup_pbs
globus_gram_job_manager_setup_remote
globus_gram_reporter_setup_fork
globus_gram_reporter_setup_condor
globus_gram_reporter_setup_lsf
globus_gram_reporter_setup_pbs
globus_gsincftp
globus_replica_catalogprovides an interface to a catalog of data collections, logical files, and physical locations
globus_replica_managementallows clients to manage files within a file replication system
globus_rls_client