/
2.0.4beta/doc/
2.0.4beta/gnu/
2.0.4beta/sha/
RELEASE NOTES (BETA)
------- ----- ------

This is release 2.0 of TeenyMUD, also known as TeenyMUD II.  This release
has been drastically rewritten, and redesigned.  It is meant as an example of
how a TinyMUD-like system should be implemented, from the ground up; it also
reflects many of the features found in MUCK and MUSH-like servers.

Version 2.0.4beta is a much bug-fixed and expanded version of the initial
2.0 release; the changes are many and some times very major, so there are
no diffs.  See the file `NEWS' for details.

This is a BETA release.  It does not include all of the documentation, but
is otherwise a complete release.  Most bugs should be gone.

**************************************************************************
** The documentation has been converted to raw ASCII, and is nearly     **
** finished.  It will be included in a future full release.             **
**                                                                      **
** NOTE:                                                                **
** `help.txt' has been moved into the `doc/' subdirectory, and a        **
** version of `database.txt' (a portion of the technical documentation) **
** has been included.                                                   **
**************************************************************************

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! IMPORTANT NOTE:  A bug in the initial 2.0 release (which was         !!
!! addressed in a released patch) causes player passwords to fail       !!
!! with the new code on BIG ENDIAN machines!  There is no (published)   !!
!! fix for this.                                                        !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


PLATFORMS

The primary development platforms for TeenyMUD II (in sequential order) have
been:

	SunOS 4.1.3 w/ GNU cc (2.4.5 and 2.5.8), sun4
	SunOS 4.1.3 w/ GNU cc (2.5.8) and the GNU C library, sun4
	NetBSD 1.0 w/ GNU cc (2.4.5, 2.5.8 and 2.6.2), hp300
	AIX 2.2.1 w/ GNU cc (2.5.8, 2.6.3) and AIX cc, IBM PC/RT
	Linux 1.2.x w/ GNU cc (2.6.3, 2.7.0), i386

It has also been known to compile under, at various times:

+	SunOS 4.1.1 w/ GNU cc (2.5.8) and Sun cc, sun3
	SunOS 4.1.3 w/ Sun cc, sun4
	Solaris 2.3 (SunOS 5.3) w/ GNU cc (2.6.3), sun4
+	HP-UX 9.03 w/ GNU cc (2.4.5), and HP-UX professional cc, hp9000/735
+	Sequent DYNIX/ptx 3.2.0 w/ GNU cc (2.4.5), symmetry
+	Sequent DYNIX 3.1.2 w/ GNU cc (2.4.5), balance
	AIX(1) 3.2.5 w/ xlc, powerpc
	Ultrix(2) 4.3 w/ GNU cc (2.5.7), pmax
	4.2BSD UNIX w/ pcc, mc68k
	SCO SysVR3.2 version 4.2 w/ Open Desktop, i486

(+) Not recently tried by the author.
($) Contributed port.
(1) GDBM does not work properly when used on NFS filesystems under AIX3,
    or, rather, AIX3 does not work properly.  Additionaly, TeenyMUD must
    be compiled with the `cc' alias for `xlc'.
(2) The strftime(3) routine found by autoconf is broken; the compat lib
    knows this if `ultrix' is defined.


REQUIREMENTS

	* Any C compiler that supports basic `void' declarations, and basic
	  `enum' types.  Full ANSI support is not required.  void pointer
	  support is also not required.  GNU cc is recommended.
	  Most C++ compilers will NOT work.
	* BSD-style TCP/IP and UDP networking(3).
	* GNU dbm (GDBM), version 1.7.1 or later, or the Berkeley 4.4BSD db
	  library.  GDBM 1.7.3 is recommended.
	* GNU make or another modern make package.  GNU make is recommended,
	  but many others makes will work ok.
	* At least 1meg of free memory.
	* At least 5megs of disk space. (Less if source if removed/compressed
	  after compilation.)

(3) Please drop me a line if you'd like to work on modules for other
    networking systems.  (I have a `sort of working' TLI/STREAMS driver
    hanging around in my attic.)


LICENSE

	Most of TeenyMUD 2.0 is Copyright(C) 1993 - 1995 by Jason Downs, and
licensed under the GNU General Public License, version 2 (`GPL').  Please see
the file `COPYING' for more information.
	A couple of other files and libraries distributed within this
release are not under the GPL.  These include the boolexp module, the
Sprite Hash Library, and much of the compat library.  Please see the relevant
source code for details on its license.


COMPILATION

	This release of TeenyMUD uses GNU Autoconf.  The configure script
will detect most aspects of the target system needed to compile the package.
To configure it in the source directory, simply type `./configure'.  To
configure and build in another directory, run the `configure' script from
that directory; this will create all the needed subdirectories and files.
	If you're using GDBM, you should give `configure' the `--with-gdbm'
option.  If you're using the 4.4BSD db library, use `--with-bsddbm'.  The
package will then try to find the specified database library, using
reasonable defaults if it can't.  If it fails to find the library you wish
to use (due to it being installed in a non-standard place, etc.), you need
to edit the top level `Makefile' and fix the DBM* definations, after the
configuration has finished.
	`configure' will try to find gcc and use that, if not it will use
cc.  If the compiler you wish to use is named something else, you should
set the environmental variable `CC' to the name of the compiler, before you
run `configure'.
	After `configure' is done, you may want to take a look at the top
level Makefile, and make changes by hand.  Especially make sure `configure'
found the correct libraries for your system; sometimes it misses them,
and other times it finds ones you don't really want to use.
	You can now type `make' (or the name of the make program you wish
to use) in order to build the base programs.  The Makefile may have other
targets that are not supported in this release (such as `teenydbm'); these
will not be built automatically.  If you are using GNU make, feel free to
use the `--jobs' argument; `--jobs=5' works well on a machine that can
handle it.


CREDITS

	* `boolexp.c' is based upon the original TinyMUD code.
	* `wild.c' is based upon the original TinyMUSH 2.0 code.
	* Kudos to the Sprite Project for the Hash and List libraries.
	* Much of the `compat' library is taken from the 4.4BSD/NetBSD
	  C library.
	* Kudos to the BASH folks for the `readline' library.

	Over the years this code has been developed on machines at the
University of Arizona Economics Department, Portland State University 
Computer Science Department, and Oregon State University Department of
Computer Science.  Much of the later support came from Computer Science
Outreach Services, Oregon State University.

	TeenyMUD is, however, independent from any of the above.


E-MAIL

	There is a mailing-list for general discussion of things regarding
TeenyMUD; send email to <majordomo@teeny.org> in order to join.  The
list name is <teeny-list>.

	There is also a list for only announcements, on the same server.
It's name is <teeny-announce>.


FTP

	The latest release of TeenyMUD, as well as anything of related
interest my be retrieved via FTP from: ftp.teleport.com:/pub/vendors/downsj.
GNU dbm can be retrieved from any GNU archive/mirror site, such as
gatekeeper.dec.com:/pub/GNU or prep.ai.mit.edu:/pub/gnu.


LEGAL STUFF

	* This software is provided "AS IS", and without warranty of any
	  kind.  If this software causes your machine to fall into a
	  cosmic time warp, or anything else for that matter, it is noone's
	  fault but your own.  See the appropriate license agreements for
	  specific details.


THE FUTURE
--- ------

	The future has not yet been written, but I think it involves C++.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


BETA
----

	This is a BETA release.  It is nearly complete.

	If you use this software, please be sure to drop me a line, at
<downsj@teeny.org>.

	You are *strongly* encouraged to subscribe to the teeny-list
mailing list, as that is the best way to get patches and announcements
of new releases (of which there will be many).


RUNNING THE SERVER
------- --- ------

	Since this release does NOT include any of the documentation,
I will go over the basic aspects of running the system.  For starters, you
really should have had prior experience running either an old version of
TeenyMUD, or another TinyM* derivative.  (That will change when the
documentation is released.)  You should also expect to be bitten by
a bug that has not yet been found.
	Assuming that you've successfully built the `teenymud' and
`convertdb' binaries, you should pick a directory from which the server
is going to run.  You should copy the binaries into that directory,
along with the file `sample.conf', which is a sample server configuration
file.
	The configuration directives contained in the file are fairly
self explanatory, and you should either experiment with them, read the
source code to find out exactly what they do, or simply use the defaults
in the sample.  You should, however, rename the file to the name of your
MUD (with the `.conf' extension), and change the name setting in the file.
	The default directory layout uses the following directories, which
you should create:
		database        -- Where the running database is kept.
		text            -- Where the text files and messages are
				   kept.
		logs            -- Where the server logs are kept.
		files           -- Where server accessible files are kept.
	The only directory you need to worry about initially is the
`text' directory.  The files in here determine what the server sends
to new connections, when it goes down, etc.  The default files are:
		help.txt        -- The help file.  The one distributed
				   in the source directory should be used.
		news.txt        -- The news file.  This is a per-server
				   file for keeping local notices and the
				   like; it is in the same format as the
				   help file.
		motd.txt        -- Displayed to players after logging in.
		wiznews.txt     -- Displayed to wizards after logging in.
		greet.txt       -- Displayed to all new network connections.
		welcome.txt     -- Displayed to new players.
		register.txt    -- Displayed when a player creation from
				   the greet screen is rejected because
				   `registration' is required.
		goodbye.txt     -- Displayed as a player disconnects.
		shutdown.txt    -- Displayed as the server shuts down.
		guest.txt       -- Displayed when GUESTs log in.
		timeout.txt     -- Displayed when a player idles out.
		badconnect.txt  -- Displayed when a login attempt fails.
		badcreate.txt   -- Displayed when a creation attempt fails.
	A new database is created by giving `convertdb' the `--initialize-db'
argument.  Since both `teenymud' and `convertdb' always require a
configuration file, the command would be:
		"convertdb --initialize-db --configuration mudname.conf"
	It should complete in a few seconds, and you should be able to
then start up the server.  The most common way of doing that is:
		"teenymud --configuration mudconf.conf --detach"
That causes the server to read your configuration file, and then detach
from the tty as it starts up.
	The initial player name is "Wizard", with a password of
"potrzebie".  YOU SHOULD CHANGE THAT PASSWORD.  The initial room is
"Limbo", which is the root room in the default configuration.  If you're
using the sample configuration, room #2 is the starting location of all
new players, and should be the first object you create (using @dig).

	From here on out, you're on your own.  Read the help file for
more information, or post to teeny-list.


UPGRADING AND OTHER USES OF CONVERTDB
--------- --- ----- ---- -- ---------

	If you're upgrading from a previous release of TeenyMUD, you must
dump your database out in plain text format using the old software.
Then you should have a file that `convertdb' will parse.  For loading
in a text database, you should use the `--input-file' command line
argument, following by the name of the text file.  So, an example command
line would be:
	"convertdb --input-file textdb.file --configuration mudname.conf"
It will then automatically attempt to determine the format of the database,
read it in, and make any needed changes in order to get it to work with
TeenyMUD II.  There are couple of special exceptions, though.

	For TeenyMUD 1.3, you should either give the `--xibo-compat'
command line option, or answer the question the program asks.  If, for
some odd reason, you have a TeenyMUD 1.1-C database file, use the
`--nonstandard' command line option.

	Special note: if you're upgrading from a pre-1.4 database format,
the `convertdb' program will ask if you'd like for it to create a Root
Room.  Answering yes will cause it to create one, and then use it when
it sets the Room Location while upgrading the database.  If you answer
no, it will use whatever the root room setting in the configuration is.

	With some exceptions, this release can read any text database
produced by any version of TeenyMUD ever done by Jason Downs.  If the
database uses UNIX-style crypt(3) for passwords, though, your passwords
won't work.  (Compile with UNIX_CRYPT defined in order to invisibly
support old fashioned passwords.)

	Post 1.4 databases should load in fine, except perhaps for some
flags.  (I no longer have source code for database format version 201,
and I know 300 reused some of its flag values.)

	Version 2.0.4 includes minimal support for reading in _vanilla_
TinyMUD databases directly with the `convertdb' program.  It can _not_
read in TinyMUSH, MUSE, MUCK, or any other sundry non-TeenyMUD format.

	To dump a TeenyMUD II database into a text file, use the
`--output-file' command line option, instead of `--input-file'.  The
text database will then be written to the specified file.

	Do note that if you're moving between different machines that are of
different architectures, you should always write your database out to text,
and then read it back in on the new machine.  Working database files will
usually not work between different architectures and operating systems.
It's also a good idea to simply back your database up to text periodically,
in case the database files get corrupted somehow.