(Illustration by Gaich Muramatsu)
New file INSTALL that gives basic info similar to that for lwp etc. Bring README.BSD 6 years forward, and in particular remove what is now very bad advice about copying an ancient mount.h from the coda tree (fortunately it is gone!) into /usr/include/sys Index: INSTALL =================================================================== RCS file: INSTALL diff -N INSTALL --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ b/INSTALL 24 Feb 2004 17:36:18 -0000 @@ -0,0 +1,57 @@ +Basic Installation +================== + +Obtaining the sources +--------------------- + +The sources can be downloaded from: + ftp://ftp.coda.cs.cmu.edu/pub/coda/src/rpc2-6.x.y.tar.gz + +Or obtained from the anonymous CVS repository: + +Autoconf must be installed on your system in order to set up the build +environment. Autoconf 2.59 is known to work. (The coda sources, +unlike lwp, rpc2 and rvm, do not yet use automake and libtool.) + + $ cvs -d':pserver:anonymous_at_coda.cs.cmu.edu:/coda-src' login + Password: <return> + $ cvs -d':pserver:anonymous_at_coda.cs.cmu.edu:/coda-src' co coda + $ cd coda + $ ./bootstrap.sh + +From here the everything is identical to (but possibly more up-to-date +than) using the tarball from the Coda ftp site. + +Prerequisites +------------- + +GNU Make is required to build coda; 3.80 is known to work. + +Perl is required; 5.6.1 is known to work. + +GNU readline is used by a large number of programs. [FIXME: describe what you +lose without readline, and how much it matters.] + +Configuring +----------- + +Run the ./configure script. The default installation path is /usr/local, but +this can be modified by using the --prefix option. + +Building and installing +----------------------- + +# The following assumes that GNU make is gmake. + +# Build the entire tree (libraries, client (venus), server (codasrv) +$ gmake + +# Install the libraries and programs needed to run venus. +$ gmake client-install + +# Install the libraries and programs needed to run codasrv +$ gmake server-install + +# Note that one may do both installs with no ill effects, e.g. on a +# server that is also a client. + Index: README.BSD =================================================================== RCS file: /coda-src/coda/README.BSD,v retrieving revision 4.3 diff -u -r4.3 README.BSD --- a/README.BSD 29 Apr 1999 18:28:05 -0000 4.3 +++ b/README.BSD 24 Feb 2004 17:36:18 -0000 @@ -1,52 +1,96 @@ -This file is Readme.bsd current as of 01/09/98. +$Id:$ -To build Coda on a BSD system (NetBSD/FreeBSD), you must first make -sure that perl, and readline are installed on your machine. -Secondly, you must copy the sys/mount.h from the Coda kernel sources -to /usr/include/sys. This defines MOUNT_CFS in a way appropriate for -the particular BSD system. - -Under NetBSD: - -1. To install perl: - cd /usr/pkgsrc/languages/perl - make install; -3. To intall readline: - get the readline tar.gz - ftp to prep.ai.mit.edu - cd /u2/emacs - get readline-2.1.tar.gz - quit ftp. - tar xvzf readline-2.1.tar.gz - cd readline-2.1 - ./configure - make install -4. cp <foo>/src/sys/sys/mount.h /usr/include/sys +This file is README.BSD, rewritten by Greg Troxel and current as of +2004-02-24. +* INTRODUCTION +Most BSDs have support for coda in the kernel already. There is a +minor complication of version 2 versus version 3 of the venus/kernel +interface. This file is in Coda 6, which uses version 3 in order to +support multiple realms. -Under FreeBSD: - -1. cd /usr/ports/languages/perl - make install; -2. cd /usr/ports/databases/gbdm - make install -3. To intall readline: - get the readline tar.gz - ftp to prep.ai.mit.edu - cd /u2/emacs - get readline-2.1.tar.gz - quit ftp. - tar xvzf readline-2.1.tar.gz - cd readline-2.1 - ./configure - make install -4. cp <foo>/src/sys/sys/mount.h /usr/include/sys +This file contains BSD-specific notes. Also see INSTALL. -Building Coda: +* KERNEL SUPPORT -1. unpack the tar ball, say in SRC=/moose/coda-4.?.? +To use Coda 6, you must have version 3 'pseudo-device vcoda' (only one +needed, but people typically put in 4), and 'file-system CODA' in your +kernel config. Some systems have version 3, and some require patches. -2. cd $SRC ; mkdir obj ; cd obj $SRC/configure ; make coda +You must ensure that /dev/cfs0 exists. + +** NetBSD + +If /dev/cfs0 does not exist (it is not created by default on 1.6.2 or +-current), run ./MAKEDEV cfs0. + +NetBSD-current (as of 2004-01) has up-to-date version 3 support. +Ensure that the two lines above are in the kernel config and simply +compile coda. + +NetBSD 1.6.2 (the entire netbsd-1-6 branch) has version 2 support. +Apply Phil Nelson's patch at: + ftp://ftp.coda.cs.cmu.edu/pub/coda/netbsd/netbsd-1.6-realms.patch +and build a new kernel + +Some bugs were fixed in 2003 in vnode handling in the kernel code. It +is recommnded to be running either recent -current or netbsd-1-6. +Aside from having to apply the patch, -current and netbsd-1-6 are +equally good from the coda viewpoint. + +** FreeBSD + +Check /dev/cfs0 and create it if it is missing. +[XXX Does MAKEDEV support this? If not, what numbers to use?] + +[XXX Explain whether 4.9, 5.2, and -current have realms support.] + +Obtain the realms patch for 4.8 or -current from + ftp://ftp.coda.cs.cmu.edu/pub/coda/freebsd/ +and build a new kernel. + +** OpenBSD + +[unknown. check /dev/cfs0, and see if the kernel support in sys/coda +is version 2. If so, apply the netbsd-1-6 patch, which might or might +not be hard.] + +** Darwin + +As of this writing, there is not known to be kernel support. Study +the vnode interface in Darwin, and adapt either FreeBSD or NetBSD's +sys/coda to Darwin. Put the resulting patch on your web site, and +send email announcing it to codalist_at_coda.cs.cmu.edu + +** BSDI + +[unknown] + +* PREREQUISITES + +** ALL SYSTEMS + +Ensure that GNU make, autoconf, perl, and GNU readline are installed. +Use pkgsrc (NetBSD) or ports (FreeBSD/OpenBSD), and refer to your OS's +documentation for help - there is nothing coda-specific about +installing these packages. + +** PKGSRC (NetBSD and others): + +When configuring, pass LDFLAGS and CFLAGS so that programs in /usr/pkg +(namely readline) will be found. The following may be helpful: + +#!/bin/sh +for i in lwp rpc2 rvm coda; do + echo "BUILDING $i" && \ + (cd $i && \ + ./bootstrap.sh && \ + rm -f config.cache && \ + LDFLAGS="-L/usr/pkg/lib -R/usr/pkg/lib" CFLAGS="-I/usr/pkg/include" CXXFLAGS="-I/usr/pkg/include" ./configure --prefix=/usr/local/coda && \ + gmake -k clean && + gmake -k && + gmake install) +done +(cd coda && gmake -k client-install server-install) -3. to install: cd $SRC/objReceived on 2004-02-24 12:44:28