
0. What is it?

	This is the second experimental beta version of an EMX port of the
	Concurrent Versions System (CVS) Version 1.11  (client/server).

	Tested Features include:
		* Full client (:ext:, :server: and :pserver:).
                * Client support for cvs via ssh AND rsh.
		* Full server (pserver via inetd).
		* Documentation in .INF format.
		* Utility to maintain the password file (for
		  pserver authentication).

        Untested features inclue:
                * Full server (via rshd / sshd)
		* Rshd replacement for use with the server.
		* Direct execution of shell scripts, Rexx
		  scripts, #! scripts (including perl and sh) and
		  PM applications (e.g. PM editors).
		* Rexx scripts to control access to the repository,
		  to distribute commit messages, and to semi-
		  automatically maintain ChangeLogs.


        The untested features are contained in the file "emxnew.zip" in the
        "ahuber" subdirectory. This is work done by A. Huber for his CVS
        1.10.6 port. I have not yet updated or checked these files; probably
        I or another Netlabs developer will do this in the future.
        Not all of these features have been tested by me. At least,
        the client code for local, pserver and rsh/ssh repositories works,
        as well as the server code for local and pserver. The other features
        should work, but I did not test them.

        Note:  If you use cvs with rsh, the executable file of the rsh must
        be called "RSH.EXE" if you use the original OS/2 exe (which
        requires the -b parameter to work), while it must NOT be called
        "RSH.EXE" if you use any sort of rsh replacement which does NOT
        require the -b parameter (e.g. use "newrsh.exe", "ssh.exe" or
        something).

        If anything does not work, my hope is that the Netlabs project will
        enable us to work together and fix it, so that we will soon get a
        really good and *OPEN SOURCED* (!!!) CVS client for OS/2.

        The previous problem with CVS on OS/2 was that many developers did
        something, but they did not cooperate and not all did release their
        sources. I want to change that - by having one centralised version
        of CVS on Netlabs we will sooner or later have a really working CVS
        client and also an easy upgrade path to adapter later release of
        CVS for OS/2.


1. Contents.

	.\
		README			- You're just reading it.
		COPYING			- The GNU public license.

	bin\
		cvs.exe			- The CVS executable (client/server).
		cvspw.exe		- Manipulates the passwd file.

	book\
		intro.inf		- An introduction to CVS.
		cvs.inf			- The CVS reference manual.
		cvs-client.inf	        - The client/server protocol reference.
		install.cmd		- Creates a folder with book objects for
					  the manuals.


	src\
		README                  - Read this if you want to build CVS
			              	  yourself.
		cvspatch.dif            - Patches to the Cyclic CVS 1.10 release.
		newdirs.zip             - "

        ahuber\
                emxnew.zip               Old (despite the name ...) work by
                                         A. Huber. Some developer should sooner
                                         or later decide what is needed and
                                         what not. Users may find some useful
                                         REXX scripts in there.
2. Installation.

	- Edit CONFIG.SYS to add X:\CVS\BIN to your PATH. Make sure you
	  have the EMX 0.9d runtime installed.

	The following two steps are only required for server and local
	installations. They are NOT required for client only installations.

	- Create a new directory that will serve as your repository.

	- Add the CVSROOT environment variable to your CONFIG.SYS:

		set CVSROOT=<your repository>

	  Path components are separated by forward slashes.

	- If you don't want to use TEDIT to edit your commit messages
	  and ChangeLogs, add "set CVSEDITOR=<your favorite editor>" to
	  CONFIG.SYS. Be sure to include any options and arguments your
	  editor might require. To use EPM, add "set CVSEDITOR=epm /m".
	  If you are using emacsclient, add "set CVSEDITOR=emacsclient".
	  Type C-x # to continue the commit.

	- Add the following environment variable to your CONFIG.SYS, if it
	  doesn't already exist:

		set LOGNAME=<your login name>

	- Reboot.

	- To create book objects for the CVS documentation on your desktop
          run the install script in the BOOK directory (change to the BOOK
	  directory first).

	- For server and local installations, initialize your repository:

		cvs init

	- If you want repository access control, commit messages emailed
	  and/or ChangeLogs (semi-)automatically maintained, take a look
	  at the SCRIPTS directory.

	- You are now ready to use CVS in client and local modes.

	- To setup a server or pserver, go to the 'Autostart' page in your
	  TCP/IP configuration notebook and enable inetd.

	- Edit %ETC%\inetd.lst to add the line

		cmd tcp X:\CVS\BIN\RSHD

	  for a server and/or the line

		cvspserver tcp cvs --allow-root=<your repository> pserver

	  for a pserver. You also need to add the line

		cvspserver 2401/tcp

	  to %ETC%\services.

	  Note: You have re-do this step each time your TCP/IP configuration
	  is updated. A backup of %ETC%\inetd.lst is saved to %ETC%\inetd.bk?.

	- If you are using RSHD, go to the second 'Security' page in your
	  TCP/IP configuration notebook and add each host/user you want to
	  serve.

	- If you are setting up a pserver, you have to setup a passwd file:

		md work
		cd work
		cvs co CVSROOT
		cd CVSROOT
		cvspw -add <login name> <password>

	  Repeat the last line for each login name.

	  Edit the file checkoutlist to add the line:

		passwd

	  In file config uncomment the line "SystemAuth=no".

	- Finally add the file passwd to the repository and commit:

		cvs add passwd
		cvs commit -m "<your log message>"

	  You can now remove work\CVSROOT.

	- Reboot. Your server should now be able to accept requests.

3. Contacting the author.

        My name is Tobias Ernst, you can reach me at tobi@bland.fido.de.
        My contributions to this package are those:  I provided that
        patches to the original CVS source code, and I compiled the cvs.exe
        located in the bin directory.  I have commited this work to
        netlabs, and I hope they will take over the job of supporting it.
        In the past, many authors released CVS versions for OS/2, but all
        had bugs and none of the authors really cared to fix them.  So I
        hope this will become better with Netlabs, where everybody has
        access to the source code.

        The rest of the infrastructure of this package (in particular all
        other EXE and CMD files, and most of the DOC's) are deliberately
        "stolen" from the cvs110.zip package which has been provided by
        Andreas Huber.  You might be able to reach him at ahuber@ping.at.

	For any questions about CVS in general, subscribe to the CVS mailing
	list (see http://www.cyclic.com for details).

4. Availability.

        Visit http://www.netlabs.org, or ftp://ftp.netlabs.org/pub/cvs.

