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