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