Additional software components

Under:

Scope & audience

Described in Setting up your computing environment, OPTSTAR is the environment variable pointing to an area which will supplement the operating system installation of libraries and program. This area is fundamental to the STAR software installation as it will contain needed libraries, approved software component version, shared files, configuration and so on.

The following path should contain all software components as sources for you to install a fresh copy on your cluster:
    /afs/rhic.bnl.gov/star/common

Note that this path should allow anyuser to read so there is no need for an AFS token. The note below are sparse and ONLY indicate special instructions you need to follow if any. In the absence of special instructions, the "standard" instructions are to be followed. None of the explanations below are aimed to target a regular user but aimed to target system administrator or software infrastructure personnel.

General

The directory tree /afs/rhic.bnl.gov/star/common contains packages installed on our farm in addition of the default distribution software packages coming with the operating system. At BNL, all packages referred here are installed in the AFS tree

	/opt/star -> /afs/rhic.bnl.gov/@sys/opt/star/

Be aware of the intent explained in Setting up your computing environment as per the difference between $XOPTSTAR and OPTSTAR.

OPTSTAR will either

  • at BNL or to a remote site: be used to indicate and access the local software BUT may be supported through a soft-link to the same AFS area as showed above whereas @sys will expand to the operating system of interest (see Setting up your computing environment as well for a support matrix)
  • at a remote site, will point to a LOCAL (that is, non-networked) installation of the software components. This space could be anywhere on your local cluster but obviously, will have to be shared and visible from all nodes in your cluster.

XOPTSTAR

The emergence of $XOPTSTAR started from 2003 to provide better support for software installation to remote institutions. Many add path information to their configuration (like the infamous .la files) and previously installed in $OPTSTAR, remote sites had problems loading libraries for a path reason. Hence, and unless specified otherwise below, $XOPTSTAR will be used preferably at BNL for installation the software so remote access to the AFS repository and copy will be made maximally transparent.

In 2005, we added an additional tree level reflecting the possibility of multiple compilers and possible mismatch between fs sysname setups and operating system versions. Hence, you may see path like OPTSTAR=/opt/star/sl44_gcc346 but this structure is a detail and if the additional layer does not exist for your site, later login will nonetheless succeed. This additional level is defined by the STAR login environment $STAR_HOST_SYS. In the next section, we explained how to set this up from a "blank" site (i.e. a site without the STAR environment and software installed).

On remote sites where you decide to install the software components locally, you should use $OPTSTAR in the configure or make statements.

Basic starting point

From a blank node on remote site, be sure to have $OPTSTAR defined. You can do this by hand for example like this

% setenv OPTSTAR /usr/local

or

% mkdir -p /opt/star
% setenv OPTSTAR /opt/star

are two possibilities. The second, being the default location of the software layer, will be automatically recognized by the STAR group login scripts. From this point, a few pre-requisites are

  • you have to have a system with "a" compiler - we support gcc but also icc on Linux
  • you should have the STAR group login scripts at hand (it could be from AFS). The STAR login scripts will NOT redefine $OPTSTAR if already defined.

Execute the STAR login. This will define $STAR_HOST_SYS appropriately. Then

% cd $OPTSTAR
% mkdir $STAR_HOST_SYS
% stardev
 

the definition of $OPTSTAR will change to the version dependent structure, adding $STAR_HOST_SYS to the path definition (the simple presence of the layer made the login script redefine it).

Software repository directory layout


Note the following layout :


perl        Perl specific directory tree. Should be installed
            first really (so many things depends on perl
            nowadays). Installation order was
		perl-5.6.1.tar.gz      -- Moved to 5.8.0 starting from RH8
		perl-5.8.0.tar.gz      -- Solaris and True64 upgraded 2003
		perl-5.8.4.tar.gz      -- 2004, Scientific Linux

            All default arguments apart from install prefix which value is
            the value of $OPTSTAR. One question is about /opt/star/$STAR_HOST_SYS/bin
            which may not exist at first (answer y always). Other questions follows
            Do you want to install perl as /usr/bin/perl? [y] n
            What is your e-mail address? [jeromel@rplay18.rcf.bnl.gov] jeromel@bnl.gov
            

		The modules are installed using a bundle script (install_perlmods
		located in /afs/rhic.bnl.gov/star/common/bin/).
		It needs some work to get it generalized but the idea is that it
		contains the dependencies and installation order . To install,
		you can do the following (we assume install_perlmods is in the path
		for simplicity and clarity)

		0 first chose a work place where you would unpack the needed 
		  modules. Let's assume this is /home/xxx/myworkplace
		1 Check things out by running install_perlmods with arguments 0 as 
                  follow
			% install_perlmods 0 /home/xxx/myworkplace
		  It will tell you the list of modules you need to unpack. If
                  they are already unpacked and /home/xxx/myworkplace contains
		  all needed package directories, skip to step 3.
		  
		2 You can unpack manually OR use the command 
			  % install_perlmods 1 /home/xxx/myworkplace
		  to do this automatically. Note that you could have skipped step
		  1 and do that from the start (if confident enough).

		3 The steps above should have created a file named 
		  /home/xxx/myworkplace/perlm-install-XXX.csh where XXX is the OS
		  you are working on. Note that the same install directory may
		  therefore be used for ALL platform on your cluster. However, 
		  versionning is not (yet) supported.
		  Execute this script after checking its content. It will run
		  (hopefully smoothly) the perl Makerfile.PL and make / make install
		  commands.
		  Note that you could have also used
			% install_perlmods 2 /home/xxx/myworkplace	
		  and skipp step 1 & 2. In this mode, it unpacks and proceeds with
		  compilation. To do only if you have absolute blind faith in the
		  process (I don't and have written those scripts  ;-)   ).


		-- below for a very specific set of machines
		   for consistency however, we used to have them on the Linux 
		   side as well.
		GD-1.33          
                GD-2.35           (SL4.4+) [answer N for support of animated GIF]

		GDTextUtil-0.80
		GDGraph-1.33
		GIFgraph-1.20

		Image::Magick is usually installed from the ImageMagick directory
		rather than the downloaded module (this way, module and package
		match exactly ; other combo lead to disaster).

After you install perl, and your setup is local (in /opt/star) you may want to do the following

% cd /opt/star
% ln -s $STAR_HOST_SYS/* .
%
% # prepare for later directories packages will create
% ln -s $STAR_HOST_SYS/share .
% ln -s $STAR_HOST_SYS/include .
% ln -s $STAR_HOST_SYS/info .
% ln -s $STAR_HOST_SYS/etc .
% ln -s $STAR_HOST_SYS/libexec .
% ln -s $STAR_HOST_SYS/qt .
% ln -s $STAR_HOST_SYS/jed .
%

While some of those directories will not yet exist, this will create a base set of directories (without the additional compiler / OS version) supporting future upgrades via the "default" set of directories. In other words, any future upgrade of compilers for example leading to a different  $STAR_HOST_SYS will still lead as well to a functional environment as far as compatibility exists. Whenever compatibility will be broken, you will need of course to re-create a new $STAR_HOST_SYS tree.
At this stage, you should install as much of the libraries in $OPTSTAR and re-address the perl modules later as some depends on installed libraries necessary for the STAR environment to be functional.

 



Others/ [PLEASE READ, SOME PACKAGE MAY HAVE EXCEPTION NOTES]

        Needed on Other platform (but there on Linux). Unless specified 
        otherwise, the packages were build with the default values.
		make-3.80
		tar-1.13
		flex-2.5.4   
		xpm-3.4k
		libpng-1.0.9

		mysql-3.23.43 on Solaris
		mysql-3.23.55 starting from True64 days (should be tried as
			      an upgraded version of teh API)
			      BEWARE mysql-4.0.17 was tried and is flawed.
			      We also use native distribution MySQL
                mysql-4.1.22  *** IMPORTANT *** Actually this was an upgrade 
                              on SL4.4 (not necessary but the default 4.1.20 
                              has some bugs) 

		<gcc-2.95.2>
		dejagnu-1.4.1	 
		gdb-5.2
		texinfo-4.3
		emacs-20.7 

		findutils-4.1
		fileutils-4.1
		cvs-1.11       -- perl is needed before hand as it folds
                                  it in generated scripts
		grep-2.5.1a    Started on Solaris 5.9 in 2005 as ROOT would complain 
                               about too old version of egrep 


This may be needed if not installed on your system. It is part of a needed
autoconf/automake deployement.
		m4-1.4.1		
		autoconf-2.53  
		automake-1.6.3
		libtool-1.5.8
		
Linux only
		valgrind-2.2.0
		valgrind-3.2.3                SL 4.4+

General/   The installed packages/sources for diverse 
           software layers. The order of installation was
		ImageMagick-5.4.3-9.tar.gz    On RedHat 8+, not needed for SL/RHE
		slang-1.4.5                   On RedHat 8+, not needed for SL/RHE
		lynx2-8-2 
                lynx2-8-5                     Starting from SL/RHE
		xv-3.10a
		nedit-5.2-src                 No need on SL/RHE
		pythia5
		pythia6
		qt-x11-free-3.1.0
                qt-x11-free-3.3.1             Starting with SL/RHE
		text2c
		icalc
		dejagnu-1.4.1                 Optional / Dropped from SL3.0.5
		gdb-5.1.91                    For RH lower versions - Not RedHat , 8+
		gdb-6.2 (patched)             Done for SL3
		chtext
		jed-0.99-16
		doxygen-1.3.5
                doxygen-1.3.7                 Starting with SL/RHE
		astyle_1.15.3                 Started from SL3/RHE upon user request
		astyle_1.19                   SL4.4 and above
		

		unixODBC-2.2.6 (depend on Qt) Linux only for now
		MyODBC-3.51.06                Linux only for now
		MyODBC-3.51.12	              Started from SL4.4 (but really needed for mysql 4.1+)
                 mysql-connector-odbc-3.51.12 <-- new name under 51.12. BEWARE.

		log4cxx 0.9.7                 Linux only for now


Not necessary (installed but untested)
		chksum  
		pine4.64                      Added at SL4.4 as removed from base install at BNL

Retired
		xemacs-21.5.15                << Linux only  -- This was temporary and removed

Other directories are

WorkStation/   contains packages such as OpenAFS or OpenOffice Linux
WebServer/     mostly perl modules needed for our WebServer
Linux/         Linux specific utilities (does not fit in General) or
               packages tested under Linux only.






Some notes about packages :
 Most of them are pretty straight forward to install (like ./configure
 make ; make install (changing the base path /usr/local to $OPTSTAR).
 With configure, this is done using either
   ./configure --prefix=$OPTSTAR
   ./configure --prefix=$XOPTSTAR

 Specific notes follows and include packages which are NOT yet official
 but tried out.


- Beware that the Msql-Mysql-modules perl module requires a hack
  I have not quite understood yet how to make automatic (the 
  advertized --blabla do not seem to work) on platforms supporting
  the client in OPTSTAR
   INC = ... -I$(XOPTSTAR)/include/mysql ...     
   H_FILES = $(XOPTSTAR)/include/mysql/mysql.h
   OTHERLDFLAGS = -L$(XOPTSTAR)/lib/mysql 
   LDLOADLIBS = -lmysqlclient -lm -lz

- GD-2+
  Do NOT select support for animated GIF. This will fail on standard
  SL distributions (default gd lib has no support for that).


- ImageMagick : really easy to install but however, the PerlMagick
  part should be installed separatly (the usual perl module way). I
  used the distribution's module. Therefore, that perl-module is
  not in perl/Installed/ as the other perl-modules.
  The copy of PerlMagick to /bin/ by default will fail so you may
  want to additionally do 
  % make install-info
  % make install-data-html
  which comes later depending on version.


- lynx2-8-2 / lynx2-8-5 
  Note: First, I tried lynx2-8-4 and the make file / configure
        is a real disaster. For 2-8-2/2-8-5, follow the notes 
        below

  General :
  %  ./configure --prefix=$XOPTSTAR {--with-screen=slang}

  Do not forget to
  % make install-help
  % make install-doc

 caveat 1 -- Linux (lynx 2-8-2 only, fixed at 2-8-5)

  $OPTSTAR/lib/lynx.cfg was modified as follow
96,97c96,97
< #HELPFILE:http://www.crl.com/~subir/lynx/lynx_help/lynx_help_main.html
< HELPFILE:file://localhost/opt/star/lib/lynx_help/lynx_help_main.html
---
>
HELPFILE:http://www.crl.com/~subir/lynx/lynx_help/lynx_help_main.html > #HELPFILE:file://localhost/PATH_TO/lynx_help/lynx_help_main.html

   For using curses (needed under Linux, otherwise, the screen looks funny), 
   one has to do a few manipulation by hand i.e. 
   . start with ./configure --prefix=$XOPTSTAR --with-screen=slang
   . edit the makefile and add -DUSE_SLANG to SITE_DEFS
   . change CPPFLAGS from /usr/local/slang to $OPTSTAR/include [when slang is local]
     Version 2-8-5 has this issue fixed.
   . Change LIBS -lslang to -L$OPTSTAR/lib -lslang
   . You are ready now
   There is probably an easier way but as usual, I gave up after close
   to 15mnts reading, as much struggle and complete flop at the end ..

 caveta 2 -- Solaris/True64 : 
   We did not build with slang but native (slang screws colors up)



- xv-3.10a . Is distributed already patched. The patches were as
  follow
   % sed "s|/usr/local|$OPTSTAR|" MakeFile >Makefile.new
   % mv Makefile.new Makefile
   and in xv.h, line 119 becomes
#  if !defined(__NetBSD__) && ! defined(__USE_BSD)
  
  PLEASE : Note that xv is licensed so the usage as to remain stricly
  for your users' amusement only. If you use this package for doing
  any work, you are violating the law. Please, read the license agreement
  at http://www.trilon.com/xv/pricing.html

  caveat 1 -- SL/RHE
   % make depend
   Will generate some warnings. Ignore then. However, I had to go in the tiff/
   directory and do
   % make -f Makefile.gcc
   to generate the mkg3states (itself creating the g3states.h file) as it did
   not work.
   % make install BINDIR=$OPTSTAR

- Nedit. There is no install provided. I did
  % make linux
  % cp source/nc source/nedit $OPTSTAR/bin/
  % cp doc/nc.man $OPTSTAR/man/man1/nc.1
  % cp doc/nedit.man $OPTSTAR/man/man1/nedit.1

  % make dec
  % make solaris

- Pythia libraries :
  The unpacking is "raw". So, go in a working directory where the .tar.gz are, 
  and do the following
  (for linux)
   % mkdir Pythia && cd Pythia && tar -xzf ../pythia5.tar.gz
   % ./makePythia.linux
   % mv libPythia.so $OPTSTAR/lib/
   % cd .. 
   %
   % mkdir Pythia6 && cd Pythia6 && tar -xzf ../pythia6.tar.gz
   % test -e main.c && rm -f main.c
   % ./makePythia6.linux
   % mv libPythia6.so $OPTSTAR/lib
   %
   % rm -fr Pythia Pythia6

  Substitute linux with solaris for Solaris platform.
  On Solaris, Pythia6 requires gcc to build/link.

  True64
   pythia5 --> chmod +x ./makePythia.alpha  && ./makePythia.alpha 
   Pythia6 --> chmod +x ./makePythia6.alpha && ./makePythia6.alpha


 The following script was used to split the code which was too big
 #!/usr/bin/env perl
 $filin = $ARGV[0];
 open(FI,$filin);
 $idx = $i = 0;
 while( defined($line = <FI>) ){
    chomp($line); $i++;

    if ($i >= 500 && $line =~ /subroutine/){
	$i = 0;
	$idx++;
    }

    if ($i == 0){
	close(FO);
	open(FO,">$idx.$filin");
	print "Opening $idx.$filin\n";
    }
    print FO "$line\n";
 }
 close(FO);
 close(FI);




- Qt
  Horribly packaged, the easiest is to unpack in $OPTSTAR, cd to
  qt-x11-free-3.X.X (where X.X stands for the current sub-version
  deployed on our node), run the configure script, make the package, 
  then make clean. Then, link 
  % cd $OPTSTAR && ln -s qt-x11-free-3.X.X qt

  Later release can be build that way with changing the soft-link
  without removing the preceeding version entirely.

  Before building, do the following (if you had previous version
  of Qt installed). This is not necessary if you install the 
  package the first time around. Please, close windows after
  compilation to ensure STAR path sanity.
  % cd $OPTSTAR/qt
  % setenv QTDIR `pwd`
  % setenv LD_LIBRARY_PATH `pwd`/lib:$LD_LIBRARY_PATH 
  % setenv PATH `pwd`/bin:$PATH


  Linux gcc:   ./configure --prefix=`pwd` -no-xft -thread
  Linux icc:   ./configure --prefix=`pwd` -no-xft -thread -platform linux-icc
  True64 :     ./configure --prefix=`pwd` -no-xft -thread
  Solaris:     ./configure --prefix=`pwd` -no-xft

  In case of thread, the regular version is build first then the
  threaded version (so far, they have different names and no Soft
  links).


- Flex is usually not needed but some OS have pre-GNU flex
  not adequate so I would recommend to deploy flex-2.5.4 
  anyway (the latest version since Linux 2001)


- Xpm (Solaris)
  % xmkmf
  % make Makefiles
  % make includes
  % make 
  I ran the install command by hand changing the path (cut and paste)
  Had to 


  % cd lib
  % installbsd -c -m 0644 libXpm.so $OPTSTAR/lib
  % installbsd -c -m 0644 libXpm.a $OPTSTAR/lib
  % cd ..
  % cd sxpm/
  % installbsd -c sxpm $OPTSTAR/bin
  % cd ../cxpm/
  % installbsd -c cxpm $OPTSTAR/bin
  %
  
  Onsolaris, the .a was not there, add to
  % cd lib && ar -q libXpm.a *.o && cp libXpm.a $OPTSTAR/lib
  % cd ..

  Addiitionally needed
  % if ( ! -e $OPTSTAR/include) mkdir $OPTSTAR/include 
  % cp lib/xpm.h $OPTSTAR/include/

  

- libpng 
  ** Solaris **
  % cat scripts/makefile.solaris | sed "s/-Wall //" > scripts/makefile.solaris2
  % cat scripts/makefile.solaris2 | sed "s/gcc/cc/" > scripts/makefile.solaris3
  % cat scripts/makefile.solaris3 | sed "s/-O3/-O/" > scripts/makefile.solaris2
  % cat scripts/makefile.solaris2 | sed "s/-fPIC/-KPIC/" > scripts/makefile.solaris3
  % 
  % make -f scripts/makefile.solaris3

  will eventually fail related to libucb. No worry, this can be sorted
  out (http://www.unixguide.net/sun/solaris2faq.shtml) by including
  /usr/ucblib in the -L list
  % cc -o pngtest -I/usr/local/include -O pngtest.o -L. -R. -L/usr/local/lib -L/usr/ucblib -R/usr/local/lib -lpng -lz -lm
  % make -f scripts/makefile.solaris3 install prefix=$OPTSTAR


  ** True64 **
  Copy the make file but most likely, a change like
ZLIBINC = $(OPTSTAR)/include
ZLIBLIB = $(OPTSTAR)/lib

  in the makefile is neeed.
 
  pngconf.h and png.h needed for installation and either .a or .a + .so

cp pngconf.h png.h $OPTSTAR/include/
cp libpng.* $OPTSTAR/lib



- mysql client (Solaris)
 % ./configure --prefix=$XOPTSTAR --without-server {--enable-thread-safe-client}
 (very smooth)
 The latest option is needed to create the libmysqlclient_r needed by some
 applications. While this so is build with early version of MySQL, version
 4.1+ requires the configure option explicitly.


- dejagnu-1.4.1	[Solaris specific]
  the install program was not found.
  % cd doc/ && cp ./runtest.1 $OPTSTAR/man/man1/runtest.1
  % chmod 644 $OPTSTAR/man/man1/runtest.1

- Jed
 Note: the below tweak may not be needed on SL/RHE
 % ./configure --prefix=$OPTSTAR

 Edit the configure script and add $OPTSTAR (possibly /opt/star) 
 to it as follow.

JD_Search_Dirs="$JD_Search_Dirs \
                $includedir,$libdir \
		/opt/star/include,/opt/star/lib \
                /usr/local/include,/usr/local/lib \
		/usr/include,/usr/lib \
		/usr/include/slang,/usr/lib \
		/usr/include/slang,/usr/lib/slang"

 All fine afterward
 % make
 % make xjed
 % make install

 I had to make some hack on AIX (well, who wants to run on AIX
 in the first place right ?? but since AIX do not have any emacs
 etc ...jed is great) as follow
 * make a copy of unistd.h and comment the sleep() prototype
 * modify file.c to include the local version (replace <> by "")
 * modify main.c to include sys/io.h (and not io.h) and comment
   out direct.h
 Voila (works like a charm, don't ask).

 64 bit issue. It tried to do something along the line of  -L/usr/X11R6/lib64 
 -lX11 but did not find 64 bits X11 libs.


- emacs
  Was repacked with leim package (instead of keeping both separatly)
  in addition of having a patch in src/s/sol2.h for solaris as follow
 #define HAVE_VFORK 1
 #endif
 
+/* Newer versions of Solaris have bcopy etc. as functions, with
+   prototypes in strings.h.  They lose if the defines from usg5-4.h
+   are visible, which happens when X headers are included.  */
+#ifdef HAVE_BCOPY
+#undef bcopy
+#undef bzero
+#undef bcmp
+#ifndef NOT_C_CODE
+#include <strings.h>
+#endif
+#endif
+

  Nothing to do differently here. This is just a note to keep track
  of changes found from community mailing lists.

  % ./configure --prefix=$OPTSTAR --without-gcc
  

- Xemacs (Solaris)
  % ./configure --without-gcc --prefix=$OPTSTAR
  Other solution, forcing Xpm 
  % ./configure --without-gcc --prefix=$OPTSTAR --with-xpm --site-prefixes=$OPTSTAR

  Possible code problem :
  /* #include <X11/xpm.h> */
  #include <xpm.h> 

- gcc-2.95 On Solaris was used as a base compiler
  % ./configure --prefix=$OPTSTAR
  % make bootstrap

  o Additional gcc on Linux
  Had to do it in multiple passes (you do not need to do the first pass
  elsewhere ; this is just because we started without a valid node).

  A gcc version < 2.95.2 had to be used. I used a 6.1 node to assemble
  it and install in a specific AFS tree (cross version)
  % cd /opt/star && ln -s /afs/rhic/i386_linux24/opt/star/alt .
  Move to the gcc source directory
  % ./configure --prefix=/opt/star/alt
  % make bootstrap
  % make install
  install may fail in AFS land. Edit gcc/Makefile and remove "p" option
  to the tar options TAROUTOPTS .
  
  For it work under 7.2, go on a 7.2 node and
  % cp /opt/star/alt/include/g++-3/streambuf.h /opt/star/alt/include/g++-3/streambuf.h-init
  % cp -f /usr/include/g++-3/streambuf.h /opt/star/alt/include/g++-3/streambuf.h
  ... don't ask ...


  o On Solaris, no problems
  % ./configure --prefix=/opt/star/alt
  etc ...

- Compress-Zlib-1.12 --> zlib-1.1.4
  If installed in $OPTSTAR,
  % setenv ZLIB_LIB $OPTSTAR/lib
  % setenv ZLIB_INCLUDE $OPTSTAR/include
  

- findutil
  Needed a patch in lib/fnmatch.h for True64
  as follow :
  + addition of defined(__GNUC__) on line 49
  + do a chmod +rw lib/fnmatch.h  first

#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) || defined(__GNUC__)






- unixODBC 
  ./configure --prefix=$XOPTSTAR [CC=icc CXX=icc]

- MyODBC
  Linux  % ./configure --prefix=$XOPTSTAR --with-unixODBC=$XOPTSTAR [CC=icc CXX=icc]
  Others % ./configure --prefix=$XOPTSTAR --with-unixODBC=$XOPTSTAR --with-mysql-libs=$XOPTSTAR/lib/mysql --with-mysql-includes=$XOPTSTAR/include/mysql --with-mysql-path=$XOPTSTAR

  Note : Because of an unknown issue, I had to use --disable-gui on True64
         as it would complain about not finding the X include ... GUI is
         not important for ODBC client anyway but whenever time allows ... 

  Deploy instructions at http://www.mysql.com/products/myodbc/faq_toc.html





- doxygen
 Installation sucks
 % ./configure --prefix $OPTSTAR 
 % make
 % make install
 as usual but

 % make docs
 which will fail due to missing eps2pdf program. Will create however the
 HTML files you will need to copy somewhere.

 % cp -r html $WhereverTheyShouldGo
 for example
 % cp -r html /afs/rhic.bnl.gov/star/doc/www/comp/sofi/doxygen





* CLHEP1.8                      *** Experimental only ***
 printVersion.cc needs a correction #include <string> to <string.h>
 for True64 which is a bit strict in terms of compilation.

 On Solaris, 2 caveats
  o gcc was used (claim that CC is used but do not have the include)
  o install failed running a "kdir" command instead of mkdir so do a
    % make install MKDIR='mkdir -p'

 Using icc
  




- mysqlcc
 ./configure --prefix=$OPTSTAR --with-mysql-include=$OPTSTAR/include/mysql --with-mysql-lib=$OPTSTAR/lib/mysql
 The excutable do not install itself so, one needs to
 % cp -f  mysqlcc $OPTSTAR/bin/



- gdb (patch)
  in gdb/linux-nat.c
        /*
      fprintf_filtered (gdb_stdout,
			"Detaching after fork from child process %d.\n",
			child_pid);
      */

   and go (no, I won't explain).


- astyle 
  + All
    Find where the code really unpacks. There are no configure for this
    package.
    % cd astyle_1.15.3 or cd astyle/src
    % make
    % cp astyle $OPTSTAR/bin/
 
    A crummy man page was added (will make it better later if really 
    important). It was generted as follow and provided for convenience
    in the packages for STAR
    % lynx -dump astyle.html >astyle.pod
    [... some massage ...]
    % pod2man astyle.pod >astyle.man
    And install
    % cp astyle.man $OPTSTAR/man/man1/astyle.1

  + only for 1.15.3
    Comes as a zip archive. Be aware that unpacking extracts files
    in the current directory. So, the package was remade for
    convenience. 
    Although written in C++, this executable will perform as expected
    under icc environment.

    On SL4, gcc  3.4.3, add -fpermissive to the Makefile CPPFLAGS.


* valgrind
  MUST be installed using $XOPTSTAR because there is an explicit
  reference to the install path. Copying to a local /opt/star would
  therefore not work.
  For icc, use the regular command as this is a self-contained program
  without C++ crap and can be copied from gcc/icc directory. The command
  is
   % ./configure --prefix=$XOPTSTAR 

  Version 2.2
  -----------
  A few hacks were made on the package, a go-and-learn experience as
  problems appeared
   coregrind/vg_include.h
123c123
< #define VG_N_RWLOCKS 5000
---
> #define VG_N_RWLOCKS 500

  coregrind/vg_libpthread.vs 
195a196
>     __pthread_clock_gettime; __pthread_clock_settime;

  to solve problems encountered with large programs and pthread.



- log4cxx 0.9.x
  
  log4cxx 0.9.5
  -------------
  There is a bug on Linux so, start with commenting all
  lines related to HAVE_LINUX_ATOMIC_OPERATIONS in configure.in
  before the below.
  Finally, two code had to be patched are now repacked
  - filewatchdog.cpp line 21: comment #ifdef WIN32 and the associated #endif
  - cocketimpl.cpp   line 41: add #include <errno.h>

  For ODBC support, one needs
  % setenv CPPFLAGS "-I$XOPTSTAR/include"
  % setenv LDFLAGS  "-L$XOPTSTAR/lib"


  log4cxx 0.9.7
  -------------

  Also need to do the below or it will not even find the libs at configure.
  % setenv CPPFLAGS "-I$XOPTSTAR/include"
  % setenv LDFLAGS  "-L$XOPTSTAR/lib"

 
  Scientific Linux 4.4 aka Linux 2.6

  #AC_CHECK_FUNCS(gettimeofday ftime setenv)
  AC_CHECK_FUNCS(setenv)

  Linux 7.3 distributions note
  ............................
  On Version 7.3 of Linux, this is hard to install. You will need to upgrade
  m4, autoconf to at the least the versions specified for "other platforms".
  It won't compile easily with gcc 2.96 though. But it can using
  % ./configure --prefix=$OPTSTAR CC=/usr/bin/gcc3 CXX=/usr/bin/g++3
  if you have all gcc 3 ready.

  Finally, if you install log4cxx from a new Linux version (especially
  one having a different version of autoconf tools), you better start
  from a fresh directory and not attempt to use the 'clean' target (it
  will fail).

  Linux gcc  (general instructions, all log4cxx)
  ..............................................
   % ./autogen.sh
   % ./configure --prefix=$OPTSTAR  [--with-ODBC=unixODBC]

  Linux icc
  .........
   % setup icc
   % ./configure --prefix=$XOPTSTAR CC=icc CXX=icc [--with-ODBC=unixODBC]

   If icc is the second target, you should use 'make clean' before the configure.

  Solaris
  .......
   Does not configure (need the autoconf tools)

  True64
  ......
   Not tried yet



- libxml2 
  Platform: so far needed to update RH 8.0 only, add to propagate to other platform
  in 2006 due to a component dependence issue.
  % ./configure --without-python --prefix=$XOPTSTAR


- pine
  Re-added at BNL since SL4.4 because it was removed from the base
  installation, this may not be needed for your site (install from RPM,
  it exists).

  Scientific Linux (don't get fooled by the targets)
  % ./build lrh
  % cp bin/pine bin/pico $OPTSTAR/bin/