This is the README file for GNU CSSC, a workalike for the source code control system SCCS. It is based on the MySC package by Ross Ridge. CSSC is currently under development so expect problems with compiling the package on older machines and perhaps even incorrect operation. ============================================================================== Quick Start ------------------------------------------------------------------------------ 0. Configuring the package To configure CSSC before compiling it, run the "configure" script. See the file INSTALL for the generic options you can use with "configure". Options for "configure" that are specific to CSSC are detailed below. --enable-binary This is the default setting (but the default setting may change in the future). Enables support for creating "binary" SCCS files (required for interoperability with Solaris). If binary support is disabled, encoded SCCS files can still be read, but not created. You should disable this feature only if you need to interoperate with a version of SCCS which lacks binary file support. The setting of this option can be overridden at runtime by setting the environment variable CSSC_BINARY_SUPPORT to "disable". --disable-binary Turns off suport for creating encoded ("binary") SCCS files. CSSC will still handle these as input, but will never create one, when this option is used. The setting of this option can be overridden at runtime by setting the environment variable CSSC_BINARY_SUPPORT to "enable". --enable-max-line-length=N The default setting corresponds with N=0. Sets the maximum line length allowed in SCCS files to N. By default, CSSC has no limit. Use this option only if you need to make CSSC interoperate with other versions of SCCS. This limit applies only to the actual body lines in the file, and are not checked for (e.g.) comments. This means that by entering a very long comment, you can make CSSC produce an SCCS file which cannot be read by some other versions of SCCS. The setting of this option can be overridden at runtime by setting the environment variable CSSC_MAX_LINE_LENGTH to a positive integer. Setting CSSC_MAX_LINE_LENGTH to 0 removes the limit (and so CSSC will handle lines of any length). 1. Compiling You will probably need to compile the software with GNU make. The default installation directory for the binaries is /usr/local/libexec/cssc, except for the sccs comand, which gets installed in /usr/local/bin. If you want to change this, you will need to read the file INSTALL. If, for example, you want to install the files in /usr/libexec/cssc and so on rather than in /usr/local/..., you just need to pass the argument "prefix=/usr" to make. If, on the other hand, all you wanted to do was to install the binaries in a normal binary directory, you can do this with the argument "csscutildir=/usr/local/bin" to make. The program "sccs" (from the subdirectory bsd) is sensitive to the setting of $(csscutildir) at compile time, because it compiles in the calue of that option as the default place to find the various subprograms. mkdir work cd work ../configure make 2. Testing The tests can be run with "make check". This short script runs the test suite, and reports any problems to me:- if make check 2>&1 | tee make.log then (uname -a ; ./admin -V) | mail -s "CSSC success" jay@gnu.org else echo FAILED, please send full details to 'jay@gnu.org.' (uname -a ; cat make.log) | mail -s "CSSC failure" jay@gnu.org fi Note that this test process accepts several environment variables which allow you to point it at a particular installation of the tools. If you have used these variables for something else, the test will fail. These variables are :- $dir, $get, $admin, $cdc, $prs, $prt, $delta, $sact, $sccsdiff, $unget, $what, $rmdel, $sccs If the tests failed, I'll definitely need some more information and so it would be best to keep the test outputs in case I need them in order to fix the bug ("tar cf failed-tests.tar tests" should do fine for that). I may need to ask you to send a compressed version of this to me. 3. Installing cd work make install ============================================================================== SCCS commands implemented this package are: admin, cdc, delta, get, prs, prt, sccsdiff, rmdel, sact, sccs, unget, val and what. Not all options and capabilities of the commands have been implemented yet, and the comb and help commands are not provided at all. You can use these tools to convert your SCCS repository to RCS or CVS - to do this, you will also need the SCCS-to-RCS conversion script by Jonathan Leffler (which should be included in the source distribution of CVS). Unimplemented features include the "-h" option of admin (use "val" instead), ignored deltas (delta -g), l-files (get -l). Some features like including and excluding deltas (get -i -x) have been implemented but not extensively tested. See the file INSTALL for information on how to compile this package. Send any questions or bug reports by e-mail to the current maintainer, . After you have compiled CSSC, _PLEASE_ run the test suite, as described in docs/TESTING, unless you are using GCC or EGCS under Linux, in which case please don't bother sending success reports [since I already know that works]. I'm particularly intersested in success reports for platforms not in the "docs/Platforms" file. To generate the manual, type "make dvi". For the PostScript version, type "cd docs ; make cssc.ps". If you don't have TeX, you can read the "info" documentation with either the GNU "info" program, or Emacs. To regenerate all the machine-generated files from their ultimate sources (for example, after checking the controlled sources out of a CVS repository), use sh autogen.sh followed by the usual invocation of "configure" and "make". Alternatively, if you have a sufficiently new version of Autoconf installed, you could just run "autoreconf". However, if you do this, some benign warnings will be generated for "testutils/configure.in". The most helpful thing you could possibly do for this project would be to contribute a new test case. It isn't hard; the test scripts are just shell scripts; instructions on how to do this are provided in the manual.