########################################################################## # # # (C) Copyright IBM Corporation 2002, 2013 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 # # # # Max Vohlken - Defect fixes # # # ########################################################################## ClearCase::CtCmd is an interface to IBM Rational ClearCase. For support, go to http://support.ibm.com. For installation instructions, see INSTALL. ClearCase::CtCmd is supported on all platforms that IBM Rational ClearCase supports. Starting with IBM Rational ClearCase version 8.0.0.0 ClearCase::CtCmd is shipped as part of the product. ########################################################################## # # # 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{} = 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. 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.." 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.