##########################################################################
# #
# (C) Copyright IBM Corporation 2002, 2010 All rights reserved. #
# #
# This program and the accompanying materials are made available under #
# the terms of the Common Public License v1.0 which accompanies this #
# distribution, and is also available at http://www.opensource.org #
# Contributors: #
# #
# William Spurlin - Initial version and framework #
# #
##########################################################################
ClearCase::CtCmd is an interface to IBM Rational ClearCase. For support,
contact support@rational.com. For installation instructions, see
INSTALL.
ClearCase::CtCmd is supported on all platforms that IBM Rational ClearCase
supports.
##########################################################################
# #
# Documentation #
# #
##########################################################################
ClearCase::CtCmd is self-documenting through the Perl POD (Plain Old
Documentation) facility. After installation, "perldoc ClearCase::CtCmd"
will display the self-documentation. Before installation the command
"perldoc -F CtCmd.pm" may be used from the installation directory.
##########################################################################
# #
# Signals #
# #
##########################################################################
ClearCase::CtCmd does not save/restore user signal handlers upon
entrance/exit. Users are, of course, able to explictly
restore their signal handlers with the $SIG{<signal>} = <handler ref>
mechanism after each invocation of ClearCase::CtCmd::exec(),
but user signal handlers are modified by the ClearCase libraries
called by ClearCase::CtCmd, except that with ClearCase versions
greater than 5.0, if the signal handler for signals 1, 2, 3 or 15
is set to SIG_IGN ( that is, $SIG{[1|2|3|15]} = 'IGNORE' )
the signal handler will be saved during and after
an invocation of ClearCase::CtCmd::exec.
##########################################################################
# #
# Limitations #
# #
##########################################################################
# libperl.so
On Solaris and presumably other Unix/Linux,
/usr/atria/shlib/libperl.<shared object extension> on ClearCase v5.0
can conflict with the user's perl installation if the user's perl is built
as a wrapper around a shared object of the same name, e. g., "libperl.so".
With IBM Rational ClearCase v6.x and newer, the perl library is name libratlperl.so, removing this conflict.
Workarounds:
A. Do not build Perl as a shared object.
pro: Simple
con: Requires user to rebuild Perl. Since libperl.so is shared,
loses advantage of significantly less memory use when
there are multiple Perl interpreters running.
B. Build a shared Perl using some name other than "libperl.<shared object extension>."
pro: Simple. Run Configure/modify the config.sh useshrplib,
libperl and dflt variables, assigning some name other than
"libperl.so" to libperl. "libperl561.so" does nicely.
con: Requires user to rebuild Perl.
C. Another workaround is for the user (where, for example, a shared Perl
is installed in /opt/perl_5.6.1) to:
1. From the CtCmd directory, run "perl Makefile.PL; make".
2. copy /usr/atria/shlib/libperl.so to
./blib/arch/auto/ClearCase/CtCmd/liboldperl.so
3. run the following command:
LD_RUN_PATH="/usr/atria/shlib:/usr/lib:/var/tmp/CtCmd" ld -G -L/usr/atria/shlib -L/usr/local/lib CtCmd.o -Lblib/arch/auto/ClearCase/CtCmd -R/usr/ucblib -R/usr/atria/shlib -R/shlib -R/opt/perl_5.6.1/lib/sun4-solaris/auto/ClearCase/CtCmd -R/opt/perl/5.6.1/lib/site_perl/auto/ClearCase/CtCmd -Rblib/arch/auto/ClearCase/CtCmd -o blib/arch/auto/ClearCase/CtCmd/CtCmd.so -lzuba -L/var/tmp/CtCmd -latriacmdsyn -latriacmd -latriasumcmd -latriasum -latriamsadm -latriamntrpc -latriacm -latriavob -latriaview -latriacm -latriadbrpc -latriatirpc -latriaxdr -latriamvfs -latriatbs -latriaadm -latriasplit -latriacredmap -latriaks -lezrpc -lrpcsvc -latriaccfs -latriasquidad -latriasquidcore -lc -lw -lCrun -loldperl
(The above will have to be on one line.)
Now, in lieu of "make test",
4. perl -Iblib/lib -Iblib/arch t/t1_createArch.t
5. perl -Iblib/lib -Iblib/arch t/t2_tstArch.t
6. perl -Iblib/lib -Iblib/arch t/t3_cleanArch.t
will run the test suite verbosely and clean up, hopefully with no failures.
7. Copy the contents of ./blib/arch/auto/ClearCase/CtCmd/
(three files ending in .so ) to
/opt/perl_5.6.1/lib/sun4-solaris/auto/ClearCase/CtCmd .
Directories will have to be created first.
8. Copy blib/lib/ClearCase/CtCmd.pm to
/opt/perl_5.6.1/lib/sun4-solaris/ClearCase/CtCmd.pm .
Directories will have to be created.
# AIX
On AIX platforms, with IBM Rational ClearCase v7.x, you must edit
/usr/opt/perl5/lib[64]/5.8.2/aix-thread-multi/Config.pm and change
lib_ext = ".a"
to
lib_ext = ".so"
before doing "perl Makefile.PL", otherwise perl will look for libraries
with the ".a" extension.