mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-12 11:10:07 +00:00
Distribution notes.
This commit is contained in:
parent
67f1f37bd8
commit
f305dffb85
3 changed files with 109 additions and 1 deletions
89
NOTES
Normal file
89
NOTES
Normal file
|
@ -0,0 +1,89 @@
|
|||
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 occasionally 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>
|
17
PORTING
Normal file
17
PORTING
Normal file
|
@ -0,0 +1,17 @@
|
|||
[Need to write better notes.]
|
||||
|
||||
Look for files named *386* or *FreeBSD* and you'll see what
|
||||
you need to implement for your architecture of choice.
|
||||
|
||||
The hardest thing is probably the assembly routines:
|
||||
src/lib9/tas-$SYSTYPE.s and src/libthread/asm-$SYSTYPE-$OBJTYPE.s.
|
||||
The former is a test and set used to implement shared-memory
|
||||
spin locks. The latter is a stripped down setjmp and longjmp
|
||||
used to implement stack switching in the thread library.
|
||||
Also, src/libthread/$OBJTYPE.c needs to know how to set up a stack
|
||||
frame for the given object type.
|
||||
|
||||
If you're only interested in mk and sam, you don't need to
|
||||
write any assembly to do a port. Samterm requires everything
|
||||
though, since it uses libthread.
|
||||
|
4
TODO
4
TODO
|
@ -45,7 +45,9 @@
|
|||
but need to put it together.
|
||||
|
||||
* Dump
|
||||
- have a dump file system that sits on the side of ffs.
|
||||
- have a dump file system that sits on the side of ffs,
|
||||
backing up disk images to venti. a loopback NFS server
|
||||
serves the backed-up images.
|
||||
needs cleanup and release. should be easy to add ext2,
|
||||
fat. ntfs harder but possible.
|
||||
|
||||
|
|
Loading…
Reference in a new issue