FrameCPP INSTALLATION NOTES

Contents

1  Import Changes

2  Software Packages Used by FrameCPP

2.1  Building of 3rd party packages

The pkgbuilder building tool is now employed to greatly simplify the installation of third party packages. The environment variable LDASTOPSRCDIR must be set to use the rules given below. The value of this environment variable should be set to the fully qualified path of the top level directory of the LDAS source tree.
Before any of the packages can be installed, a directory of "/ldcg" must be created with read/write permissions for the user installing the software and read permissions for all other users. Although this directory is anchored at the root directory, it can reside anywhere there is sufficient space and have a symbolic link from there to "/ldcg." This needs to be added to the PATH and LD_LIBRARY_PATH environment variables. To set this variable for bourne shell and its derivitives use "PATH=/ldcg/bin:${PATH}; export PATH". For C shell and its derivities use "setenv PATH /ldcg/bin:${PATH}". Also for C shell and derivitives the rehash command will be need to be executed after each package installation. To set this variable for bourne shell and its derivitives use "LD_LIBRARY_PATH=/ldcg/lib:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH". For C shell and its derivities use "setenv LD_LIBRARY_PATH /ldcg/lib:${LD_LIBRARY_PATH}".
It is required to use stow. Please review the section dedicated to stow and install this package first.
The table below describes which packages are are needed for various configurations of LDAS. The columns "Solaris 10" and "CentOS 5.2/Intel" describe the operating system on which the LDAS software is to be compiled and run. The sub-column CVS stands for building of the LDAS system from the source in the CVS archive. The sub-column Tar-Ball stands for building of the LDAS system from a tar-ball distribution (ldas-x.x.x.tar.gz). The three field values are "Required", "Optional", and "RPM". A field value of "Required" means the package must be built. A field value of "Optional" means the package does not need to be built. A field value of "RPM" means that the package is required and can either be built from its sources or the RPM from RedHat may be used.
Software Packages used by FrameCPP
Package OS Distribution Requiremnts
stow 1.3.3 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required
pkgbuilder 0.11.0 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required
zlib 1.1.4 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM
Tarball RPM
BZip2 1.0.2 Solaris 10 CVS OS Supplied
Tarball OS Supplied
CentOS 5.2 CVS RPM (bzip2-devel-1.0.2-16 bzip2-libs-1.0.2-16 bzip2-1.0.2-16)
Tarball RPM (bzip2-devel-1.0.2-16 bzip2-libs-1.0.2-16 bzip2-1.0.2-16)
binutils 2.16.1 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM (binutils-2.17.50.0.6-6.el5)
Tarball RPM (binutils-2.17.50.0.6-6.el5)
gcc 4.1.1 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS
RPM (gcc-4.1.2-42.el5 gcc-c++-4.1.2-42.el5 gcc-gfortran-4.1.2-42.el5)
Tarball
RPM (gcc-4.1.2-42.el5 gcc-c++-4.1.2-42.el5 gcc-gfortran-4.1.2-42.el5)
make 3.79.1 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM (make-3.81-3.el5)
Tarball RPM (make-3.81-3.el5)
m4 1.4.4 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM (m4-1.4.5-3.el5.1)
Tarball RPM (m4-1.4.5-3.el5.1)
autoconf 2.59 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required
automake 1.9.6 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required
libtool 1.5.22 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required

2.2  stow 1.3.3

2.2.1  Description

GNU Stow is a program for managing the installation of software packages, keeping them separate (/usr/local/stow/emacs vs. /usr/local/stow/perl, for example) while making them appear to be installed in the same place (/usr/local). Stow is a Perl script which should run correctly under Perl 5.005 and above. You must install Perl before running Stow. Stow was inspired by Carnegie Mellon's Depot program, but is substantially simpler.

2.2.2  Links

Link DescriptionLink
Home Page
http://www.gnu.org/software/stow/
Download
http://mirrors.usc.edu/pub/gnu/stow/stow-1.3.3.tar.gz
Mirror
LDAS Patch

2.2.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
stow 1.3.3 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required

2.2.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:stow

2.3  pkgbuilder 0.11.0

2.3.1  Description

Pkgbuilder is a utility designed to automate the process of building third party packages.

2.3.2  Links

Link DescriptionLink
Home Page
http://ldas-sw.ligo.caltech.edu/packages/pkgbuilder-0.11.0.tar.gz
Download
http://ldas-sw.ligo.caltech.edu/packages/pkgbuilder-0.11.0.tar.gz
Mirror
LDAS Patch

2.3.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
pkgbuilder 0.11.0 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required

2.3.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

./configure -prefix=/ldcg
make bootstrap

2.4  zlib 1.1.4

2.4.1  Description

Zlib is designed to be a free, general-purpose, legally unencumbered, lossless data-compression library for use on virtually any computer hardware and operating system. The zlib data format is itself portable across platforms. Unlike the LZW compression method used in Unix compress(1), the compression method currently used in zlib essentially never expands the data. (LZW can double or triple the file size in extreme cases.) zlib's memory footprint is also independent of the input data and can be reduced, if necessary, at some cost in compression.

2.4.2  Links

Link DescriptionLink
Home Pagehttp://www.gzip.org/zlib/

2.4.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
zlib 1.1.4 Solaris 10 CVS OS Supplied
Tarball OS Supplied
CentOS 5.2 CVS RPM (zlib-devel-1.2.2.2-5.fc4 zlib-1.2.2.2-5.fc4)
Tarball RPM (zlib-devel-1.2.2.2-5.fc4 zlib-1.2.2.2-5.fc4)

2.4.4  Build Instructions

This package should already be installed on your system.
For Red Hat Linux verify with:
rpm -qa | grep zlib
You should get a list of packages as referenced in the RPM list above.
For Solaris, check for the existance of the following files:
If you have an incomplete installation, please contact your system administrator as this package require system privileges to install.

2.5  BZip2 1.0.2

2.5.1  Description

bzip2 is a freely available, patent free, high-quality data compressor. It typically compresses files to within 10 percent to 15 percent of the best available techniques (the PPM family of statistical compressors), whilst being around twice as fast at compression and six times faster at decompression.

2.5.2  Links

Link DescriptionLink
Home Pagehttp://sources.redhat.com/bzip2/

2.5.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
BZip2 1.0.2 Solaris 10 CVS OS Supplied
Tarball OS Supplied
CentOS 5.2 CVS RPM (bzip2-devel-1.0.2-16 bzip2-libs-1.0.2-16 bzip2-1.0.2-16)
Tarball RPM (bzip2-devel-1.0.2-16 bzip2-libs-1.0.2-16 bzip2-1.0.2-16)

2.5.4  Build Instructions

This package should already be installed on your system.
For Red Hat Linux verify with:
rpm -qa | grep bzip2
You should get a list of packages as referenced in the RPM list.
For Solaris, check for the existance of the following files:
If you have an incomplete installation, please contact your system administrator as this package require system privileges to install.

2.6  binutils 2.16.1

2.6.1  Description

GNU binutils work mostly behind the scenes of Linux development, largely because GNU make and the GCC frontend does so many things automatically. Utilities include: ld as nm objdump objcopy nm ar ranlib strip c++filt size addr2line and dlltool.

2.6.2  Links

Link DescriptionLink
Home Page
http://sources.redhat.com/binutils/
Download
http://mirrors.usc.edu/pub/gnu/binutils/binutils-2.16.1.tar.gz
Mirror
LDAS Patch

2.6.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
binutils 2.16.1 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM (binutils-2.17.50.0.6-6.el5)
Tarball RPM (binutils-2.17.50.0.6-6.el5)

2.6.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:binutils

2.7  gcc 4.1.1

2.7.1  Description

The GNU Compiler Collection contains frontends for C, C++, Objective-C, Fortran, Java, and Ada as well as libraries for these languages. It is a full-featured ANSI C compiler with support for K&R C as well. GCC provides many levels of source code error checking traditionally provided by other tools (such as lint), produces debugging information, and can perform many different optimizations to the resulting object code.

2.7.2  Links

Link DescriptionLink
Home Page
http://gcc.gnu.org
Download
ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.1.1/gcc-4.1.1.tar.bz2
Mirror
http://mirrors.usc.edu/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2
LDAS Patch

2.7.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
gcc 4.1.1 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS
RPM (gcc-4.1.2-42.el5 gcc-c++-4.1.2-42.el5 gcc-gfortran-4.1.2-42.el5)
Tarball
RPM (gcc-4.1.2-42.el5 gcc-c++-4.1.2-42.el5 gcc-gfortran-4.1.2-42.el5)

2.7.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:gcc

2.8  make 3.79.1

2.8.1  Description

GNU Make examines the timestamps on a set of interdependent files, and, if necessary, issues commands to bring them up-to-date. The user creates a makefile describing the files, their relationships, and the commands to run. Most often make is used to rebuild libraries and programs when their sources are changed, but it can be used for any situation where one set of files needs to be generated from another set.

2.8.2  Links

Link DescriptionLink
Home Page
http://www.gnu.org/software/make/make.html
Download
http://mirrors.usc.edu/pub/gnu/make/make-3.79.1.tar.gz
Mirror
LDAS Patch

2.8.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
make 3.79.1 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM (make-3.81-3.el5)
Tarball RPM (make-3.81-3.el5)

2.8.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:make

2.9  m4 1.4.4

2.9.1  Description

GNU m4 is an implementation of the traditional Unix macro processor. It is mostly SVR4 compatible, although it has some extensions (for example, handling more than 9 positional parameters to macros). GNU m4 also has built-in functions for including files, running shell commands, doing arithmetic, etc.

2.9.2  Links

Link DescriptionLink
Home Page
http://www.seindal.dk/rene/gnu/
Download
http://mirrors.usc.edu/pub/gnu/m4/m4-1.4.4.tar.bz2
Mirror
LDAS Patch

2.9.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
m4 1.4.4 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS RPM (m4-1.4.5-3.el5.1)
Tarball RPM (m4-1.4.5-3.el5.1)

2.9.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:m4

2.10  autoconf 2.59

2.10.1  Description

Autoconf is an extensible package of m4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the package to many kinds of UNIX-like systems without manual user intervention.

2.10.2  Links

Link DescriptionLink
Home Page
http://www.gnu.org/software/autoconf/
Download
http://mirrors.usc.edu/pub/gnu/autoconf/autoconf-2.59.tar.bz2
Mirror
LDAS Patch

2.10.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
autoconf 2.59 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required

2.10.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:autoconf

2.11  automake 1.9.6

2.11.1  Description

Automake is a tool for automatically generating Makefiles compliant with the GNU Coding Standards. It was inspired by the 4.4BSD make and include files, but aims to be portable and to conform to the GNU standards for Makefile variables and targets. Automake is a Perl script. The input files are called Makefile.am. The output files are called Makefile.in; They are intended for use with Autoconf. Automake requires certain things to be done in your configure.in. This package also includes the äclocal" program. aclocal is a program to generate an 'aclocal.m4' based on the contents of 'configure.in'. It is useful as an extensible, maintainable mechanism for augmenting autoconf.

2.11.2  Links

Link DescriptionLink
Home Page
http://www.gnu.org/software/automake/automake.html
Download
http://mirrors.usc.edu/pub/gnu/automake/automake-1.9.6.tar.bz2
Mirror
LDAS Patch

2.11.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
automake 1.9.6 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required

2.11.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:automake

2.12  libtool 1.5.22

2.12.1  Description

GNU libtool is a generic library support script. Libtool hides the complexity of using shared and static libraries behind a consistent, portable interface. Libtool supports building static libraries on all platforms.

2.12.2  Links

Link DescriptionLink
Home Page
http://www.gnu.org/software/libtool/
Download
http://mirrors.usc.edu/pub/gnu/libtool/libtool-1.5.22.tar.gz
Mirror
LDAS Patch

2.12.3  Build Requirements

Software Package used by FrameCPP
Package OS Distribution Requiremnts
libtool 1.5.22 Solaris 10 CVS Required
Tarball Required
CentOS 5.2 CVS Required
Tarball Required

2.12.4  Build Instructions


#
# Please review section 2.1 of this document titled
# "Building of 3rd party packages" on how to correctly
# set the environment variables used here
#

pkgbuilder ${LDASTOPSRCDIR}/doc/utilities/ldas:libtool

3  Installation of FrameCPP

FrameCPP software is available only in tarball format. It can be retrieved from http://www.ldas-sw.ligo.caltech.edu/packages/framecpp-1.12.2.tar.gz. To install the software, use the command "gzip -dc framecpp-1.12.2.tar.gz - tar xf -". This will create the sub-directory ldas-1.12.2.

4  Building the Source

4.1  Default configuration

The FrameCPP script "ldas-1.12.2/build-ldas" (or "ldas/build-ldas " if building from CVS) will examine the system, configure the software, and build all libraries and APIs. Currently the only supported operating systems are Solaris 10 and CentOS 5.2.

4.2  Custom configuration

There are many options to ldas-1.12.2/build-ldas to modify its default behavior. ldas-1.12.2/build-ldas takes options starting with two hyphens (--) as options that need to be passed to configure. Options that start with a single hyphen (-) are options interpreted only by ldas-1.12.2/build-ldas.
Of special note is the building of the metadataAPI. It is not necessary to build this API unless needing to interact with a database. The LDAS system uses DB2 under Solaris. On other systems, the iODBC library can be linked against to produce the shared object. The other option, which is cleaner, is the disabling of the building of the metadataAPI shared object. This is achieved by the --enable-metadata-api=no flag. See below.

4.2.1  ldas-1.12.2/build-ldas Options

Option NameDescription
-helpPrint help message and then exit
-config-onlyDo all steps up to and including configuration
-forceDon't stop make on errors
-installPerform the installation step.
-no-stowDon't use stow's installation paradigm.
-mail[=ADDR]Mail know warning messages and known error messages. If ADDR is specified it is used, else the mail is sent to the invoking user.
-parallel[=NUM]Make use of parallel make. If NUM is specified, then only spawn NUM subprocesses, else spawn as many as possible.
-tmpdir[=DIR]Specify the location of temporary files. The default value is the current directory.
-distcheckThis option causes the build process to verify the integrity of the build process by first creating a tarball and then running configure, make and make check using the files from the tarball. NOTE: This option will not work if used on a tarball distribution since the tarball distribution cannot make a tarball of itself. It is best to run make check by hand in the buid directory of a tarball distribution to verify the build at the unit level.
-warn-unsupported-compilerThis option allows the user to try compiling with a compiler that has not been certified. It changes the error level of unsupported compiler from fail to warning. If this option is used with a supported compiler, no message is generated.

4.2.2  Configure Options

OptionDescription
--prefix=PREFIXinstall architecture-independent files in PREFIX [/ldas/ldas-0.0]
--enable-metadata-api[=yes]build the metadata API
--disable-tclSpecifically disable all TCL bindings. This was added for building the datacond library package without TCL.
--with-extra-cxxflagsAdditional C++ compiler flags
--with-extra-ldflagsAdditional linker flags
--with-ldflagsReplace linker flags
--with-mountptSpecify frame builder directory
--with-optimization Compiler optimization [extreme - high - medium - low - none]
--enable-inliningforces inlining of code
--with-ospace[=DIR]ObjectSpace directory

4.2.3  ldas-1.12.2/build-ldas Options - View status of the LDAS build

The options described here should be used after the build-script completes with the compilation of the LDAS software. The will grep the log files and return information about how the compilation completed. If there is a need to examine the full context of messages, the log files are in a subdirectory of the build-ldas script of: "`uname`-`uname -m`/build_logs".
Option NameDescription
-errorsDisplay known error messages in all log files
-errors-makeDisplay known error messages in make log file
-statusDisplay build process currently executing along with directory listing of log files sorted by time last modified
-warningsDisplay known warning message in all log files
-warnings-makeDisplay known warning messages in make log file

5  Reporting problems

FrameCPP uses GNATS for reporting and tracking problem reports. Each major piece of code and each major task has a category. For example, errors that are found in this documentation should be submitted under the category "doc" since it represents a documentation error.

5.1  Accessing GNATS via the Web

https://ldas-sw.ligo.caltech.edu/cgi-bin/gnatsweb.cgi?database=ldas
The above link will bring you to a page explaining levels of severity, levels of priorities, and explain the types of classes. The link at the bottom of the page will bring you into the GNATS system where you will be able to submit and query problem reports.
All users can submit problem and query reports. Only developers can modify problem reports once they have been submitted.

5.1.1  Submitting a new problem report.

Once in the GNATS system, choose "create". This brings up a form which must be filled out.
Does
Don'ts
Once the form has been completely filled out, go to the top or the bottom of the page and select the "submit" button. You will receive e-mail notifying you of your submitted problem report and the id with which it is associate. You will also receive e-mail whenever there is a change to the problem report.

5.1.2  Checking the status of a problem report

There are two ways of checking the status of a problem report. The first is using the "View problem report" option from the GNATs main page. If you have the problem report id, just type in the number and select the "view" button. A page with the full details of the problem report will appear.
The second method allows you to query the GNATS system for problem reports of interest and has two flavors. The simplest is the "Query Problem Reports." Use this method by selecting the "query" button. A web form page will appear. Refine the search by using the drop down selectors and/or using the text widgets. The query is executed after selecting the "submit" button. If you are interested in problem reports that are potentially closed, be sure the "Ignore Closed" button below the "State" field is not selected.
For more advanced queries, select the "advanced query" button. This form allows you to search by time and date and by regular expressions. Again if you are interested in problem reports that are potentially closed, be sure the "Ignore Closed" button in the "State" field is not selected.



File translated from TEX by TTH, version 3.85.
On 6 May 2009, 13:58.