AlloyMUSH-1.1/conf/
AlloyMUSH-1.1/misc/
AlloyMUSH-1.1/scripts/
AlloyMUSH-1.1/vms/
This is the README file for TinyMUSH 2.2.

It is divided into several sections: Introduction, Compatibility,
and Installation.

--------------------------------------------------------------------------

INTRODUCTION

TinyMUSH 2.2 is an enhanced version of the TinyMUSH 2.0 server. It is
derived from TinyMUSH 2.0.10p5.  Many bugs have been fixed; in particular,
all of the memory leaks should be gone, and the server should be in highly 
stable condition. A number of features have been added, as well.

When you are finished reading this file, you will also want to read
the README-2.0 file, which contains setup information. Recent changes
can be found in the CHANGES file; a changes history for TinyMUSH 2.0
can be found in CHANGES-2.0.

TinyMUSH 2.2 is currently still in beta test. The code is being
distributed via "snapshots", rather than real "releases". If you
use a snapshot version, you should to have the technical competence
to be able to fix your own problems. Official support will not be
given for this code version until a real release is made public.

--------------------------------------------------------------------------

COMPATIBILITY

TinyMUSH 2.2 has been successfully compiled and run in the following
environments: SunOS 4.1.1, 4.1.2, 4.1.3; Solaris 5.2, 5.3, 5.4; 
Ultrix 4.2; Irix 4.0.5, 5.2; Dynix/PTX 2.0.4, AIX 3.2; HP-UX A.09.01; 
Linux 1.1.90. If you use it in another environment, please let us 
know (and also note any changes that you had to make). An ANSI-compliant
compiler is not required, but is strongly recommended.

autoconf does still seem to have a few problems, and there are few things
which we recommend, but are not strictly necessary. After running 
'configure',  you will need to manually edit the Makefile and autoconf.h 
on certain systems, in the following manner:

Dynix/PTX:    Add '-DTLI' to the DEFS line in the Makefile. TLI networking
  is somewhat more stable, on the Sequent, which has a buggy implementation
  of BSD sockets. Also, the system-default number of file descriptors is
  usually something ridiculously low, such as 32. You will probably want to 
  raise this, since it limits the maximum number of users which can be 
  simultaneously connected. Add '-DNUMFDS_LIMIT=256' to the DEFS line in
  the Makefile. (You may also want to change the "netmush:" rule to
  "netmush:&" and do a "make -p X", where X is the number of processors,
  in order to do a parallel make.)

FreeBSD:      FreeBSD's ndbm implementation is broken. Comment out the
  '#define HAVE_NDBM 1' line in autoconf.h.

Irix 5.2:     Comment out '#define HAVE_SYS_SIGLIST 1' in autoconf.h.

Solaris:      In the Makefile, add to the DEFS, '-I/usr/ucbinclude'.
  Also in the Makefile, add, to the MORELIBS, '-L/usr/ucblib -lucb'.
  Finally, add, to the top of mush.config, the follwing line:
  LD_LIBRARY_PATH=/usr/ucblib:/usr/lib; export LD_LIBRARY_PATH

SunOS 4.1.2:  You may need to comment out '#define HAVE_NDBM 1' in autoconf.h.


The 2.2 distribution splits files up over multiple directories as follows:

conf            MUSH runtime configuration files.
misc            Assorted extras that don't fit anywhere else.
obj             The directory to configure and compile in.
scripts         Shell scripts.
src             C source to the server.
text            MUSH runtime text files.
vms             Support for a VMS port (not tested).

--------------------------------------------------------------------------

INSTALLATION

Setting up 2.2 is done in approximately the same way as the 2.0 setup
described in the README-2.0 file. There are, however, some changes,
so the process is summarized here.

1. cd to the 'obj' directory.

2. Run 'configure' (by typing './configure'). This will customize 
   autoconf.h and the Makefile for your system. If you have gcc (the
   GNU C compiler) installed on your system, it will automatically
   be selected as the compiler of choice.

3. TinyMUSH 2.2 is set up to use some features only found in GNU make
   and other newer versions of make, such as VPATH. If you do not have
   GNU make, you have two options.

   a)  Get and install GNU make. It's small, trivial to install, and very
       worthwhile. Both it and gcc are available via anonymous ftp from
       prep.ai.mit.edu, in /pub/gnu.

   b)  Type 'make patrules'. Then, edit your Makefile. Go down to where
       it says "EXTRA CONFIGURATION STUFF HERE". Follow the directions
       (which basically amount to commenting out a few lines and 
       uncommenting one line).

4. Edit the Makefile and make any changes that might be necessary.
   You might need to change any C flags needed by your particular C
   compiler (in particular, -fpcc-struct-return), add whatever esoteric
   libraries are needed by your system, and change the location of the
   game files (the value of the GAME directory).

5. Type 'make'. This should produce netmush, mkindx, and dbconvert.

6. Briefly, if you are starting from scratch, type 'make new-install'.
   Otherwise, type 'make install'. For more detail on starting from
   scratch, or converting from PennMUSH, TinyMUD, or TinyMUSE, please 
   refer to section 4 in the README-2.0 file. If you are starting from
   an existing 2.0 or 2.2 database, please see below.

                        *****

If you are converting from a version of TinyMUSH 2.0, do the following:

1. Shut down your game. Flatfile by running a db_unload (using your 
   TinyMUSH 2.0 dbconvert!), and put a copy of this flatfile someplace safe.

2. Compile TinyMUSH 2.2. Move the netmush, dbconvert, and mkindx files
   into the directory where you normally keep those files.

3. Remove the .db* and .gdbm* files (some operating systems seem to be
   confused by the presence of an existing gdbm file, in particular).
   Run a db_load on the flatfile that you made in Step 1 (using the
   2.2 dbconvert).

4. Do a Startmush. The game should now be operational under 2.2. 
   You _must_ follow this sequence of steps; if you do not do the
   db_unload and db_load, the game will probably still start, but
   there will be database damage resulting from screwed-up quotas.

                        *****

If you are converting from a Beta Snapshot of TinyMUSH 2.2 prior to 1/16:

1. Shut down your game. Flatfile by running a db_unload, and put a copy
   of this flatfile someplace safe.

2. Compile this version of TinyMUSH 2.2, adding -DBETA_QUOTAS to the
   compile defines. (If you have typed quotas split up into QuotaRoom,
   RQuotaroom, etc., you have Beta Quotas.)  Move the netmush, dbconvert,
   and mkindx files into the directory where you normally keep these files.

3. Remove the .db* and .gdbm* files (some operating systems seem to be
   confused by the presence of an existing gdbm file, in particular).
   Run a db_load on the flatfile that you made in Step 1.

4. Do a Startmush. The game should now be operational. It is imperative
   that you follow these sequence of steps; doing otherwise will result
   in database damage from screwed-up quotas.

5. At some future point in time, you will want to recompile without
   the BETA_QUOTAS define.

                        *****

If you are upgrading from a post-early-beta version of TinyMUSH 2.2,
you do not need to do anything special. We highly recommend, however,
that you flatfile by running a db_unload, prior to upgrading your code
version; it's always useful to have backups, in case something goes
wrong.

                        *****

Be advised that you will need, at minimum, a machine with 16 MB
of physical RAM, and at least 10 MB of disk space just for the game,
in order to grow to any reasonable size. Also, we strongly advise
you to obtain the consent of your systems administrator, before
running a MUSH on your system.

Other MUSH stuff is available on caisr2.caisr.cwru.edu, in /pub/mush.
The archive includes the MUSH Manual, various MUSHcode packages, server
patches, and other bits of useful documentation.

There are also two major mailing lists, tinymush-programmers@cesium.clock.org
and mushhacks@caisr2.caisr.cwru.edu, for the discussion of softcode and
hardcode issues, respectively. If you want to subscribe to the lists, send
email to tinymush-programmers-request@cesium.clock.org, or to
mushhacks-request@caisr2.caisr.cwru.edu, respectively. Do NOT send
"Please subscribe me" messages to the list themselves.

TinyMUSH 2.2 is currently supported by a group of people who can be
reached via email to 'hogs@cesium.clock.org'.  When reporting bugs,
please be as specific as possible; in particular, note your TinyMUSH
revision number, the release date, your machine type, OS, and
compiler.  This is not a public mailing list; it is for the
development team only.


		-- The TinyMUSH 2.2 Development Team