ComPact relies on the Concurrent Versions System (CVS) to manage the Source Code Repository. Therefore, it is a good idea to study the excellent CVS manual for an understanding of ComPact's underlying mechanisms. The rest of this section is a quick overview on the administrative requirements for CVS repository installation and recommended client/server configuration.
There are two ways to get a working CVS repository. The easiest one is to just copy the directory
from the ComPact CD-ROM to the machine which will host your repository. The repository on the CD-ROM contains some packages grouped together in the gnu-collection, that contain the source code of CVS (release 1.10.8) itself. You can use these packages to test the installation of Elego ComPact: you just need to check out all the packages, build, and ship them. There is a project description, too, which will help you with this task. It is contained in/demo/cvs
If you want an empty, clean repository, you can use the command cvs init to create one. However, the first approach will yield an operational repository that can later be tuned to fit specific needs./demo/cvs/gnu/prj/gnu-cvs/PrjDesc,v
There are many methods for CVS client programs to access the repository in client/server mode. System administrators need consider the security implications of those access methods, especially if RSH is to be used. Please refer to your system documentation and the section on Remote repositories in the CVS manual.
The most easily implemented access methods are:
internal RSH allows you to use the built-in Remote Shell client to connect to the CVS server. This does not require any external programs on the client side, but RSH access needs to be enabled on the server side. Users of CVS need a login account on the server. The rsh service on Unix systems is usually handled by inetd, so that you have to edit its configuration file /etc/inetd.conf and add or activate an appropriate entry. Additionally, every user needs the file .rhosts in his HOME directory with the appropriate entries and access permissions. Alternatively, computers may be granted global rsh access through the use of /etc/hosts.equiv. Details may be found in the manuals of the Unix servers, e.g. man rhosts or man rsh.
external RSH allows you to use a program specified by the environment variable CVS_RSH to connect to the CVS server. On the server side, proper access needs to be configured. This method can be used to connect via SSH (Secure Shell) or some other secure RSH replacement. Users of CVS need a login account on the server.
pserver allows you to use CVS's own Password Authenticating Server protocol to connect to the CVS server. This does not require any external programs on the client side, but the server side needs to be configured properly. Users of CVS do not need a login account on the server, but passwords have to be issued to each user.
On the server, the system administrator needs to enable the shell service at TCP port 514. Furthermore, all prospective users of CVS must be granted RSH access to their accounts on the server machine. The exact procedure to do this may vary with different operating systems; it is best to refer to your server system's documentation. For many popular systems, however, the procedure detailed in the CVS manual section named Connecting with rsh is applicable.
It is usually required to place a file names .rhosts into each user's home directory. This file should contain a line each for hosts (and users on that host) that should be allowed to connect to this account without having to supply a password.
Example: to allow user grumpy on host a.dwarf.org to connect to the grumpy account on the CVS server central.dwarf.org, an entry line
needs to be placed in ~grumpy/.rhosts on master.dwarf.org.a.dwarf.org grumpy
On the server, the system administrator needs to enable the cvspserver TCP service. The exact procedure to do this may vary with different operating systems; it is best to refer to your server system's documentation. For many popular systems, however, the procedure detailed in the CVS manual section named Setting up the server for password authentication is applicable.
Usually the cvspserver service is handled by the interned daemon inetd as is the rsh service. So the file /etc/inetd.conf must contain an appropriate entry, for example
2401 stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/usr/cvsroot pserver
In the CVSROOT-subdirectory of
the CVS repository the file
passwd must contain entries for all users allowed to
access the repository. Username and password are simply
separated by a colon; the password must be in standard Unix
crypt format:
anonymous:
bach:ULtgRLXo7NRxs
spwang:1sOp854gDF3DY
melissa:tGX1fS8sun6rY:pubcvs
qproj:XR4EZcEs0szik:pubcvs
The first line grants anonymous access without a password;
the last two lines grant access to users melissa and qproj,
but their CVS operations will be run with the access rights
of the local user pubcvs on the CVS
server. The configuration of the other possible access methods for CVS and Elego ComPact is not included in this manual. This is especially true for the configuration of secure access via SSH. Use of the distributed authentification system Kerberos and the directory access services provided by LDAP / PAM are generally possible, too; but it is impossible to give short general setup instructions. Elego experts will be delighted to discuss the possibilities of your special setup, and choose and install the best possible solution for you, even if ti should be rather complex.
There is only one thing to do to enable all ComPact programs to use the source code repositories you just created: put the location of the repository into the central configuration file compactrc or .compactrc. You do this by defining the variable repository.
For example, if the repository is accessible via RSH on host master.dwarf.org in the directory /usr/cvs, the line should read for user grumpy
repository grumpy@master.dwarf.org:/usr/cvs
If an external RSH client is to be used, the line should read
and the environment variable CVS_RSH should give the pathname of the external RSH client. Please see the CVS manual section named Connecting with rsh for details.repository :ext:grumpy@master.dwarf.org:/usr/cvs
If the repository is accessible through the pserver protocol, the line should read
In addition to this, the pserver access method requires that each user log into the repository once, before other CVS operations are permitted. This login will be cached in the file HOME/.cvspass for future CVS operations.repository :pserver:grumpy@master.dwarf.org:/usr/cvs
For example, user grumpy runs the command
which will prompt for the user's CVS password. The system administrator has a number of options when it comes to password assignments. Please see the CVS manual section named Using the client with password authentication for details.cvs -d :pserver:grumpy@master.dwarf.org:/usr/cvs login