home *** CD-ROM | disk | FTP | other *** search
- Coda, the code distribution aide, is a system to keep source distributions
- current across a set of machines. The model is that the master source
- tree is kept on a server host, and client hosts run coda to get themselves
- in sync with the server. This is different from rdist where the server
- "pushes" files out to its clients.
-
- Coda is not as flexible as rdist(1), but it requires less of the client
- machines in that they do not have to be running Berkeley networking
- programs or even Unix at all. The client is simple, and designed to be
- easy to port. It currently runs on these systems:
- BSD, Ultrix, Sun, Masscomp
- VMS with Wollongong networking
- ATT3B2 with Wollongong networking (might be slightly broken)
- ATT6386 with Interlan networking
- Xenix with Excelan networking
-
- The server current runs under the INET daemon on a BSD-like system, but
- could be ported to other Unix systems, or even VMS, without too much
- effort.
-
- Because of the coda model, a client has to be told several things: where
- the server is, the user name on the host and where the sources are. These
- can be specified on the command line, or a simple config file can be used
- to any set of the necessary parameters.
-
- The coda server uses a simple but powerful control file to determine what
- files are appropriate for each client. The client directs the server to
- read the file when it connects, so that multiple source trees can be
- easily maintained on one server. In the Codafile, hosts are grouped
- into classes. Directories are grouped into blocks, and patterns are
- used to exclude hosts from receiving certain files. For example:
- sources: _ALL {
- # Everyone gets all the programs, but no object files
- src/programs
- except _ALL "*.o", foo, core, tags a.out;
- except VMS Makefile, "*.sh", "*.s", "llib-l*";
- except UNIX descrip.mms, "*.opt", "*.com", "*.mar";
- }
-
- ## VMS library
- vmslib: VMS {
- src/libvms
- }
-
- ## Unix library
- unixlib: UNIX {
- src/libunix
- except _ALL "*.[oa]", "llib-l*.ln";
- }
-
- Installation
- ------------
- Pick a port number for the service to be running on; to use a port number
- other than 1999, edit client.h and rebuild, or make sure to inform your
- users about the change. (The server doesn't care what port it is running
- on.) Edit server.h to set the log file location. and install the server
- binary in the appropriate directory. (It's shown as ... in the paragraphs
- below.)
-
- You will have to add the server to any machines where you want to make
- sources available. Add a line like the following to /etc/services:
- coda 1999/tcp # code distribution
- If you're using Yellow Pages don't forget to yppush(8).
-
- Next you will have to edit the inetd(8) configuration file. On a
- 4.2BSD-based system, add this line to /etc/inetd.conf:
- coda stream tcp nowait .../codaserver codaserver
- On a 4.3BSD-based system or SunOS4 add this line to /etc/inetd.conf:
- coda stream tcp nowait root .../codaserver codaserver
- You will then have to send a HUP signal to the inet daemon.
-
- On a SunOS3 system, add this line to /etc/servers:
- coda tcp .../codaserver
- You will then have to kill and restart inetd.
-
- The coda server requires the remote user to log in with a name and password
- before sending any files. It then does a setuid to that user. In order to
- do this, it should start out running as root.
-
- Enjoy.
-
- Coda was written by Rich $alz <rsalz@bbn.com>.
-
- It has the following copyright:
- Copyright 1989 BBN Systems and Technologies Corporation.
- All Rights Reserved.
- This is free software, and may be distributed under the terms of the
- GNU Public License; see the file COPYING for more details.
- $Header: README,v 2.0 90/03/23 14:40:54 rsalz Exp $
-