= VOMS: NorduGrid packaging information =

This document describes the version of VOMS packaged by NorduGrid.
It was last updated on July 5th 2007 for voms-1.7.20.

Currently only RPM packaging format is supported.

== Upstream source ==

The upstream source version of VOMS can be retrieved from the
[http://jra1mw.cvs.cern.ch/cgi-bin/jra1mw.cgi/ EGEE JRA1 Middleware CVS repository].

The tarball can be easily created using anonymous CVS access:

<pre>
export CVSROOT=:pserver:anonymous:@jra1mw.cvs.cern.ch:/cvs/jra1mw
cvs login
cvs co -r glite-security-voms_R_1_7_20_1 -d voms-1.7.20 org.glite.security.voms
tar cvfz voms-1.7.20.tar.gz voms-1.7.20
</pre>

== Patches and changes ==

VOMS is using GNU Autotools for it's build process. Autotools bootstrapping
is generally not portable and thus the initial bootstrapping steps
(including automake and autoconf) have already been done so that the quick
build/install procedure is simply:

<pre>
./configure
make
make install
</pre>

However, some of the needed changes affects the autotools procedure and in
principle a whole new bootstrapping should be done with these changes. However
this is not practical to do runtime due to portability and added dependencies.
Distributing a bootstrapped source with patches applied before bootstrapping,
obscures the changes done to the upstream source.

In order to avoid these problems the changes comes in both static patches and
as shell code in the RPM spec file. The use of shell code is also done so that
the changes works with upstream changes that would break patches.

Also, the document generation has been dropped to limit dependencies. However
most man pages have been pre-generated and are included.

=== Patches ===

* voms-openssl_portability.patch

Add support for OpenSSL version 0.9.8. This version of OpenSSL includes
API changes wrt. 0.9.7. Also work around openssl bug with missing stddef.h
include for sha.h.

* voms-isoc90_portability.patch

Fix non ISO C90 compliance for older compilers (eg. on RH73)

== Other changes not in patches ==

* Don't use project based (gLite) include paths
* Fix broken --libexecdir support for configure
  (some systems do not have libexecdir = <prefix>/libexec)
* Drop all documents except man pages which are pre-generated
* Do not use edg- prefix
  (can be turned on/off through macro)
* Install flavored libraries in addition to non-flavored
  (can be turned on/off through and RPM macro)

== RPM Dependencies ==

The RPM uses explicit dependencies on the modular Globus packages distributed
by NorduGrid.

== Relocation ==

This VOMS packaging is done with the intentions of making it as standard as
possible. This means that the default prefix is /usr though it can be changed
during installation with RPM package relocations.

When relocating to eg. /opt/voms one could also relocate /etc to
/opt/voms/etc. This requires that one set the environment variable
VOMS_LOCATION to /opt/voms. Setting VOMS_LOCATION makes sure that references
to configuration files under /etc remains correct. Note, that this variable
should thus NOT be used when not relocating /etc.

== File locations ==

In order to make VOMS more standard behaving some changes in file locations
have been done:

* The server startup script has been moved from <tt><prefix>/etc/init.d</tt> to
  <tt>/etc/init.d</tt>.
* Similarily the configuration files have been placed under <tt>/etc</tt> rather
  than <tt><prefix>/etc</tt>

