head	1.1;
access;
symbols
	TIGRIS_1_1_0RC2:1.1
	TIGRIS_1_1_0RC1:1.1
	TIGRIS_1_1:1.1.0.14
	TIGRIS_1_0_8:1.1
	TIGRIS_1_0_8RC3:1.1
	TIGRIS_1_0_8RC2:1.1
	TIGRIS_1_0_8RC1:1.1
	TIGRIS_1_0_7:1.1
	TIGRIS_1_0_7RC3:1.1
	TIGRIS_1_0_7RC2:1.1
	TIGRIS_1_0_7RC1:1.1
	TIGRIS_1_0_6:1.1
	TIGRIS_1_0_6RC5:1.1
	TIGRIS_1_0_6RC4:1.1
	TIGRIS_1_0_6RC3:1.1
	TIGRIS_1_0_6RC2:1.1
	TIGRIS_1_0_6RC1:1.1
	TIGRIS_1_0_5:1.1
	TIGRIS_1_0_5RC6:1.1
	TIGRIS_1_0_5RC5:1.1
	TIGRIS_1_0_5RC4:1.1
	TIGRIS_1_0_5RC3:1.1
	TIGRIS_1_0_5RC2:1.1
	TIGRIS_1_0_5RC1:1.1
	TIGRIS_1_0_4:1.1
	TIGRIS_1_0_3:1.1
	TIGRIS_1_0_2:1.1
	TIGRIS_1_0_1:1.1
	TIGRIS_1_0:1.1.0.16
	TIGRIS_1_0_0:1.1
	TIGRIS_1_0_0_RC1:1.1.0.12
	dlr:1.1.1
	TIGRIS_0_9_2_4:1.1
	TIGRIS_0_9_2_3:1.1
	HELM_PEER_PORT_BRANCH:1.1.1.1
	TURBINE_PEER:1.1
	TIGRIS_0_9_2_1:1.1
	TIGRIS_0_9_2:1.1.0.10
	TIGRIS_0_9_0:1.1.0.8
	TIGRIS_0_8_4:1.1.0.6
	TIGRIS_NOV_12_2000:1.1
	OLDHELM:1.1.0.4
	TIGRIS_NOV_11_2000:1.1
	TIGRIS_SEP_13_2000:1.1.0.2
	TIGRIS_BASELINE:1.1;
locks; strict;
comment	@# @;


1.1
date	2000.05.25.02.07.13;	author jrobbins;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2001.02.21.00.37.08;	author dlr;	state Exp;
branches;
next	;


desc
@@


1.1
log
@initial checkin
@
text
@Before installing Tigris, the following software must also be installed
on the Tigris host system. These should all be easily locatable and
downloadable from the Internet. If you can't find them, you shouldn't be
running Tigris at this point in its development.

These packages may have other dependencies; please follow the installation
instructions of each package closely. Install the software in locations
that are convenient for you; all file paths that Tigris uses are fully
customizable.

Note that the versions identified here are the ones for which Tigris was
developed. Earlier or later versions of the same software may also work,
but use at your own risk.

* MySQL 3.22.23b
* qmail 1.03
* ezmlm 0.53
* ezmlm-idx 0.322 (be sure and install with MySQL support)
* Perl 5.005_03
* DBI-1.12 (CPAN)
* Msql-Mysql-modules-1.2200 (CPAN)
* Rcs-0.09 (CPAN) (and RCS too, if not installed)
* JDK 1.2 (see note below)
* JSDK 2.0
* mod_jserv 1.0
* mm.mysql JDBC 1.1i
* mod_auth_mysql 2.2.0 (there are at least three Apache modules by
  this name - be sure and get the one by Zeev Suraski)
* Apache 1.3.6 (compile with mod_jserv and mod_auth_mysql modules)
* CVS 1.10.6 (with Tigris patch -- see below)
* WebMacro 0.89.1 (see note below)

Notes:

* JDK: If Java2 (JDK 1.2) is not available for your platform, it is
  possible to use Java 1.1 instead: Download the current JDK 1.1
  version, and also some version of JDK 1.2 (not necessarily one for
  your platform). You will need to extract a number of classes from
  the JDK 1.2 classes jarfile (in the Linux port, at least, this is
  found in jre/lib/rt.jar) and repackage them into a jarfile that the
  JDK 1.1 tools can access. Namely, the Collections API, or the
  following classes from java.util: AbstractCollection, AbstractList,
  AbstractMap, AbstractSequentialList, AbstractSet, ArrayList, Arrays,
  Collection, Collections, Comparator,
  ConcurrentModificationException, HashMap, HashSet, Hahstable,
  Iterator, LinkedList, List, ListIterator, Map,
  NoSuchElementException, Random, Set, SortedMap, SortedSet, TreeMap,
  TreeSet, Vector. Also java.lang.Comparable and
  java.lang.UnsupportedOperationException.

  (Sun does provide a "1.1 Collections" package which contains these
  classes. Unfortunately, they have been renamed, and are designed for
  use by Java 1.1 browsers, not for servlets. So you will have to do
  the above yourself.)

* WebMacro: The Java classes that ship with WebMacro need to be
  recompiled for Java 2, or 1.1 + the Java 2 Collections API as
  described above (WebMacro also uses the Collections API, and by
  default ships with its own version that is not compatible with
  Sun's). The README file included mentions this, although currently
  does not provide directions on how to do so. I was able to do it
  like this:

  1. Enter the webmacro source directory. Delete webmacro.jar. Unzip
     src.zip to create the org directory.
  2. Remove org/webmacro/util/java2/*. Do not delete the directory
     itself.
  3. Run 'javac org/*/*/*.java' (with -O or -g flags if desired)
  4. Now recreate the jarfile: jar cvf webmacro.jar org/*/*/*.class

Tigris Patches

Some of the software needs to be patched from the standard
distributions to work with Tigris. These patches are noted as follows:

* CVS: cd /path/to/source/of/cvs-1.10.6; patch -p1 <cvs/cvs.patch
  This patch enables CVS password files to work using MySQL databases
  instead of a flat file and enables Tigris acls for access
  control. Commit this patch before compiling CVS;
  you will need to use the --enable-mysql and --enable-tigris
  options to configure.

  Also contains other patches that enable acls and all sorts of extra
  stuff that Tigris uses.

Configuring the Software

Note that these notes presume the software is properly installed and
configured for your system. They only provide Tigris-specific
installation instructions, or differences that are relevant for the
Tigris system.

* Host system:

The Tigris system needs three users for each domain; one for Apache
(note that the Apache httpd need not run as this user, one for CVS and
one for Qmail. They should all also be members of a group specific to
the domain. I use usernames tigrisa, tigrisc, tigrisq, with group
tigris.

* MySQL:

Set up a database for the Tigris domain, along with a username (with
password) that has full privileges for the domain (see the MySQL
documentation). I use a database named tigris, with username
tigris. e.g., :

	$ mysqladmin create tigris
	$ mysql -u root mysql
	mysql> GRANT ALL PRIVILEGES ON tigris.* TO tigris@@localhost
	           IDENTIFIED BY 'password';

To create the proper tables, run the SQL commands in
db-tables.sql. e.g.,:

	$ mysql -u tigris -p tigris <db-tables.sql

Edit db-config.sql to reflect your configuration, and then run it as
well.

Note that in order to bootstrap Tigris, you will need an initial user
with full privileges. It goes something like this:

     $ mysql -u tigris -p tigris
     mysql> INSERT INTO domain_users VALUES ('username',
	         PASSWORD('password'), 'email@@address', 'Real Name',
		 NULL);
     mysql> INSERT INTO domain_privs VALUES ('username', 'Y', 'Y',
		 'Y', 'Y', 'Y', 'Y');

* Tigris configuration files (and other stuff):

You will need to edit the following files to represent your setup. The
necessary lines to be edited are all marked with CONFIG and
instructions, so search for it:

apache/tigris.conf
perl/cgi/update.cgi
perl/Tigris/Config.pm
java/conf/WebMacro.properties
java/conf/jserv.conf
java/conf/jserv.properties
java/conf/tigris.properties
cvs/root/log_accum

In addition, the Perl script perl/cgi/update.cgi must be given special
permissions: It must be setuid root and setgid to your Tigris
group.

* Apache:

Add the line "Include /path/to/tigris/apache/tigris.conf" to your
httpd.conf. This file contains all necessary configuration information
for Apache and for JServ.

The htdocs directory, as specified in the config table, should be
owned and writable by the Tigris CVS user (not the Tigris Apache
user). Note that this need not necessarily be the same directory
actually listed in the DocumentRoot directive in httpd.conf.

(NB that this sets up the servlets to be available under /tigris - to
log in, go to http://hostname/tigris/org.tigris.Login)

* CVS:
(in addition to the patch above)
The CVS root should be set up a directory owned by the Tigris CVS
user, and all files within it should be owned by that user.

The CVSROOT module must be set up in a very specific way in order for
Tigris to work properly:

1. The files in tigris/cvs/root should be added to CVSROOT, and to the
   checkoutlist file (so that they can be properly used)

2. CVSROOT/loginfo,v should be removed, and loginfo made writeable
   (chmod +w) by the Tigris CVS user (which should already own the
   file).  For some reason, keeping this file under RCS management
   doesn't work with the way Tigris udpates the file right now. This
   will be fixed in a future release.

3. CVSROOT/history must be made world-writable. For some reason, this
   seems to be necessary, although it shouldn't be. I believe it is a
   bug in CVS related to the problem referenced in item 2 above.

4. Make the directory CVSROOT/commitlogs

5. So that the files are used by CVS, the following entries need to be
   made in the following CVSROOT module files:

commitinfo:
ALL $CVSROOT/CVSROOT/commit_prep

editinfo:
DEFAULT $CVSROOT/CVSROOT/cvsedit

rcsinfo:
ALL $CVSROOT/CVSROOT/rcstemplate

config:
MysqlUser=<tigris db user>
MysqlPasswd=<tigris db passwd>
MysqlDB=<tigris db>
MysqlDefaultUser=<tigris CVS user>
MysqlPasswdTable=domain_users
MysqlUsernameCol=username
MysqlPasswdCol=password
MysqlEncrypt=mysql

Further, when setting up the pserver entry in inetd.conf, you must add
the -L option. And run it as the domain CVS user, not as root (this helps
with security).

* Qmail

You will need to set up several of the control files in qmail for the
domain and project hosts.

* Add each domain name (domain.org, project1.domain.org,
project2.domain.org, etc...) to control/rcpthosts.
* Add "domain.org:<tigris-qmail-user>" to control/virtualhosts
* Add "project.domain.org:<tigris-qmail-user>-project" to
control/virtuahosts for each project

The project domains part should be automated at some point. At this
time they are not. But since you'll have to set up DNS anyway, this
extra step shouldn't be too much of a problem.@


1.1.1.1
log
@Replacing the HEAD with the HELM_PEER_PORT_BRANCH.
@
text
@@

