
Coda Servers for Windows NT
==== ======================

This release of Coda has alpha support for Coda servers running on NT.
The Win32 binaries are constructed using the Cygnus Win32 kit, which
effectively translates Unix system calls to Win32 calls.

We build the Win32 binaries on Linux workstations using a cross
compiler, just for our convenience.

At the moment this is not for the faint of heart, since quite a few
things have to be done "by hand".  Of course we encourage playing and
will try to help and fix bugs.

NOTE: there is no client support for NT yet.

Building
--------

1. Get the cross compiling kit:
ftp://ftp.coda.cs.cmu.edu/pub/tools/win32/cygwin-b19_glibc-2.i386.rpm

You also need:
ftp://ftp.coda.cs.cmu.edu/pub/tools/win32/libdb-nt-2.0.7-1.i386.rpm

(These are rpms for RedHat 5.0. Sources are available of course.)

2. Get a tar ball of release 4.6.0 or higher:

ftp://ftp.coda.cs.cmu.edu/pub/coda/src

3. Unpack & build

./configure --target=winnt
make coda

(drink coffee, ignore or better even fix the compiler warnings)

Native building should be possible; you'll have to make a few changes
to configs/coda.m4 and create a new configs/Makeconfig.ntnative file;
then run autoconf and get cracking.  But don't you dare send me
patches with ^M characters made by Windoze machines!



Installing
----------

1. Install into an area for NT binaries on your Linux box still

(drink coffee, ignore or better even fix the compiler warnings)

Put the binaries in a suitable place using:
make BINDIR=TARGET/bin SBINDIR=TARGET/bin server-install

2 get samba running on that RH machine and export the build area for
Coda.

3 get the Cygwin kit from
http://www.cygnus.com/misc/gnu-win32/

- install this on the NT machine, for example in C:\Cygnus

- get a patch to "select" and replace

C:\Cygnus\B19\H-i386-cygwin32\bin\cygwinb19.dll

with the one from:

ftp://ftp.coda.cs.cmu.edu/pub/coda/support/nt-patches

- get bash going (its in the Cygwin package).

- organise your mountpoints for Cywin.  Find a large directory say

C:\coda

that can serve as your "Unix" root on NT and type

mount -b //C/coda /

The -b, for binary mounting is vital.

mkdir /bin /vice /rvm /vicepa
We need /bin/sh in several places.
cp //C/Cygnus/B19/H-i386-cygwin32/bin/bash /bin/sh

export PATH=/bin:$PATH

4 install your Coda stuff.  Suppose the coda-4.5.1 area is a mapped
drive on the NT machine with drive letter H:

In bash:

cd //H/

Copy all the .exe files you built above to /bin

Configuring
-----------

If all is well you just need to run
/bin/vice-setup

Choose /rvm/log and /rvm/data as the log and data file.  I recommend
starting small with 2MB log and 20MB data.

When this script completes startserver should bring up the server.
However, it may very well not do this.


Now create a volume:

You are ready to attach a client: On a Linux box for example install
Coda client software:

venus-setup  nt-server.domain.org 10000
venus &

And play around.


Credits:
--------

Coda was ported to NT by Peter Braam with generous help from Jay
Kistler (who debugged RVM problems as well as some binding problems)
and Michael Callahan who was a great source of inspiration and hacking
friend throughout.

Coda has evolved over a long time and lots of people have made
contributions. See the CREDITS file in the top directory.

Strategy:
---------

The Coda filesystem is a large Unix application.  Our porting strategy
is to use the Cygwin kit to port it to Windows NT.
