---------------------------------------------------------------------------

CVS for OS/2
based on EMX 0.9d

This is CVS 1.11 for OS/2. I had to make some adjustements to the code
supplied by Cyclic to actually make it work smoothly, esp. with ssh. I also
applied a patch I developed even two years ago (but which was never accepted
by Cyclic for some obscure reasons) which uses the DosSetFileAttr API for
setting or resetting the readonly attribute, instead of using the braindead
method used before ( system("attrib +r filename") ). This speeds up checkout
in local mode or over a fast lan considerably.
If have tested the CVS client in local mode, pserver mode and ext (rsh/ssh)
mode. I have also tested pserver mode (i.E. OS/2 acting as CVS server). I did
not try server via rshd.
For the ext (rsh/ssh) client, rsh is used by default and a "-b" argument is
supplied to rsh, assuming that you are using the OS/2 TCP/IP rsh, which needs
"-b" to be transparent. You may set the CVS_RSH environment variable to point
to another remote shell, like e.g. "ssh", in which case the "-b" argument
will NOT be supplied to the remote shell.
You can find all code, the base CVS code as well as my OS/2 pages, at Netlabs
(www.netlabs.org). In case you have problems getting it there, you may also
mail me and ask for diff files of my modifications.
Tobias Ernst <tobi@bland.fido.de>
The following text is the original README from the EMX directory in the
sources supplied by Cyclic. It may be partly outdated.
---------------------------------------------------------------------------

This port works well in local mode.  It fully respects the OS/2
filename conventions, but only works on HPFS or other filesystem types
which support long filenames (like ext2fs or Netware FS with OS/2
namespace).  It does _not_ work on FAT partitions or any other fs which
does not support long filenames.  The port also works in client mode.

This port requires EMX 0.9d (patch 04) and the BSD libraries.  It should
work in local mode, in client mode and also in server mode.  nServer mode
will only work if the client uses the :server: method, because the CRLF
handling of IBM's RSHD.EXE is not "compatible" with CVS.  (If you find a
better rshd for OS/2, please let us know!)

To compile CVS for OS/2, you must install the following packages:

 - EMX 0.9d (patch 04) and the GNU-C-Compiler

      EMXDEV1.ZIP
      EMXDEV2.ZIP
      EMXRT.ZIP
      GNUDEV1.ZIP
      GNUDEV2.ZIP
      BSDDEV.ZIP
      EMXFIX04.ZIP

 - GNU make for OS/2

      GNUMAKE.ZIP

 - ufc.a (ufc-crypt) as a replacement for crypt (this may be something
   different if you live inside the USA).  You don't need this one currently,
   because the port of the server to OS/2 isn't done yet, but I'm mentioning
   in case it is useful for future reference (we're probably better off
   using a different password hash instead, as noted in item #184 of ../TODO).

      GNUUFC.ZIP

All packages can be found on ftp://ftp.leo.org/pub/comp/os/os2/leo/gnu
(You may also try http://www.leo.org/pub/comp/os/os2/leo/gnu).

Change to the `emx' directory, do "make" and get emx\cvs.exe.  I had
to comment out the "Makefile" rule in emx/Makefile to avoid a
complaint about ../config.status not existing.  You also might need to
edit srcdir to be "." and top_srcdir to be "..".

Assuming you have edited the `install_dir' variable in the Makefile,
you may type "make install-cvs" to put cvs.exe in the right place.
You may also "make clean-cvs" to clean up object and library files.

The cvs.exe generated will require emx.dll to run.  You can try
compiling with -Zomf -Zsys to generate a cvs.exe without this
requirement, but that almost surely will require significant changes
to make it work.  For the client, the big known problem would be that
EMX 0.9c doesn't have sockets with -Zsys (according to the
documentation).  That seems like it would be hard to get around.  For
local, the big known problem is that -Zsys doesn't have fork().  This
one isn't as bad--using os2/run.c or something similar instead of
src/run.c should solve this problem.

You will get warnings in lib/getdate.c.  These are yacc's fault; ignore
them.

You will get about 5 warnings in lib/regex.c concerning "unused variable
destination".  Ignore them.

Report bugs to tepting@swol.de and bug-cvs@gnu.org.
