This is a port of some Plan 9 libraries and programs to Unix.

Some parts expect that the tree is installed in /usr/local/plan9.
Most are position independent.  The few hard-coded references
(there's one in sam) should really be fixed.

* Obtaining the source

Tarballs will be posted nightly (but only when there are updates!) at

  http://pdos.lcs.mit.edu/~rsc/software/plan9

/usr/local/plan9 is the suggested location to keep the software.
All the paths in the tarball begin with plan9/, so it's okay to unpack it
directly in /usr/local.

You can use CVS to obtain the very latest version and stay up-to-date.
See below.

* Building

To build, cd into src and run make install.  This will place binaries
in "bin".  At time of writing, the commands are sam, samterm, and mk.
There are a few shell scripts already included in bin -- B, Bwait,
and samsave.

* Make vs. Mk

I'm trying to use make for everything so that it's easier to get
off the ground, but this might not work out.  Working in the
intersection of BSD make and GNU make is quite restrictive.
If I'm going to start requiring a particular build utility,
it might as well be mk.

* Helping out

If you'd like to help out, great!

The TODO file contains our (somewhat long) to do list.

If you port this code to other architectures, please share your changes
so others can benefit.  See PORTING for some notes.

Please use diff -u or CVS (see below) to prepare patches.

* CVS

You can use CVS to keep your local copy up-to-date as we make 
changes and fix bugs.  The idioms explained here are pretty much
all you need to know about CVS.

To check out from the anonymous CVS repository, use

  cd /usr/local
  >$HOME/.cvspass
  cvs -d :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs login
  cvs -d :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs checkout plan9

When prompted for a password, just hit enter.

From then on, when you want to update, you can do

  cd /usr/local/plan9
  cvs update -dAP

If there are conflicts between changes you have made locally
and changes on the server, cvs will warn about them and leave
them clearly marked in the updated files.

If you change something and want to submit the change (please do!),
you can run

  cd /usr/local/plan9
  cvs diff -u

to generate the diff in a format that will be easy to apply.
(You can also use this to see what you've changed.)

Running the cvs commands in /usr/local/plan9 makes them
apply to the whole tree.  Running them in a subdirectory applies
only to the code rooted there in the code.

There's not much magical about /usr/local/plan9.  If you
check out the tree in some other directory, it should work
just as well.

Thanks.

Russ Cox <rsc@swtch.com>
