[ note... this is the original README that was included 
  with this package.  Some aspects of this file are not
  correct for instalation under Linux.  Please do _not_
  mail the original author with questions regarding any
  changes that I have made... see the ChangeLog for info
  on my changes ]

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

			   Getty Kit, Version 2.0

		  Copyright (c) 1989,1990, Paul Sutcliffe Jr.

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

	Permission is hereby granted to copy, reproduce, redistribute,
	or otherwise use this software as long as: there is no monetary
	profit gained specifically from the use or reproduction or this
	software, it is not sold, rented, traded or otherwise marketed,
	and this copyright notice is included prominently in any copy
	made.

	The author make no claims as to the fitness or correctness of
	this software for any use whatsoever, and it is provided as is. 
	Any use of this software is at the user's own risk.

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


WHY THIS GETTY:

As most people have seen, the stock getty provided on Unix/Xenix
systems lacks many features that can be useful.  The getty included in
this distribution adds several features that I needed on my own system,
plus includes several "Wouldn't it be nice if ..." features I've heard
mentioned around UseNet.

Getty 2.0 trys to emulate a "standard" System V getty in every way it
can.  For instance, it uses the SysV /etc/gettydefs file (although you
may give it a different name).  It also uses an /etc/issue file, if one
is present.

Added features include:

    +	Can be used as a normal getty, or as "uugetty" to allow
	bi-directional usage of modem lines.

    +	Reads a "defaults" file at runtime, so that a single binary
	can be configured differently on individual lines.  This also
	allows you to change getty's behavior without recompiling.

    +	Let's you specify default erase and kill characters, instead
	of the ancient '#' and '@' convention still used in some
	"modern" gettys.

    +	Extensive debugging (to a log file) can be enabled at compile-
	time.  The command line argument to envoke debugging is an
	octal number -- the bit pattern determines which aspects of
	getty's behavior are logged.

    +	Let's you specify a program other than "login" to be executed
	after the user name is entered.

    +	(and the best for last:)  The line can be "initialized"
	before sending the login banner (/etc/issue) and prompt with
	the use of an expect/send sequence not unlike that used by the
	UUCP L.sys (or Systems) file.

    +	(and new in version 2.0:)  The CONNECT message from the modem
	can be used to set the line speed; no more having to toggle
	the speed by sending <break>'s or CR's.


REQUIREMENTS:

Getty 2.0 should drop right in to any AT&T (System III or V) Unix
or derivitive.  It has already been successfully installed on:

	Tandy 6000		Tandy Xenix 3.2  (Microsoft Xenix 3.0)
	NCR Tower 32/400	Unix SVR[23]
	80386 clone		SCO Xenix V/386 2.2
	Everex STEP 386is	ESIX SVR3.2 Rev C


INSTALLATION:

Please read all the directions below before you proceed any further, and
then follow them carefully.  Failure to do so may void your warranty. :-)

After you have unpacked your kit(s), you should have all the files listed
in MANIFEST.

1)  Run Configure.  This will figure out various things about your system.
    Some things Configure will figure out for itself, other things it will
    ask you about.  It will then proceed to make config.h, config.sh, and
    Makefile.

    You might possibly have to trim # comments from the front of Configure
    if your sh doesn't handle them, but all other # comments will be taken
    care of.

2)  Glance through config.h to make sure system dependencies are correct.
    Most of them should have been taken care of by running the Configure
    script.

    If you have any additional changes to make to the C definitions, they
    can be done in the Makefile, or in config.h.  Bear in mind that they
    will get undone next time you run Configure.

3)  Copy the sample file tune.H to tune.h and edit tune.h to reflect the
    special needs of your system and your desired features.  Use the
    following as a guide:

    boolean	If your compiler supports a (boolean) type, you may
		remove this definition.

    DEF_CFL	Define this to the <termio.h> parameters that will
		identify your system's normal word length and parity.
		Possible values are:

			(CS8)			/* 8-bit, no parity */
			(CS7|PARENB)		/* 7-bit, even parity */
			(CS7|PARENB|PARODD)	/* 7-bit, odd parity */

		Be sure to use only symbols defined in <termio.h> on
		your system.

    DEF_CONNECT	Define this to the default CONNECT string for your
		modem(s).

    DEBUG	Define this if you want the runtime debugging code
		included in the executables.  See the section on
		DEBUGGING in this readme for instructions in usage.

    LOGUTMP	Define this if your utmp file (/etc/utmp) records
		getty processes as a LOGIN_PROCESS.  This is true
		for all SYS V sites that I'm aware of.

    MY_CANON	Define this if you want to define your own ERASE and
		KILL characters.  You may wish to do this if you are a
		SYS V site whose defaults are the ancient '#' and '@'
		characters.  See MY_ERASE and MY_KILL below.

    RCSID	Define this if you want RCS version strings compiled
		into the executables.  These can later be found with
		the what (SCCS) or ident (RCS) commands.

    SETTERM	Define this if you want getty to export the TERM
		environment variable before calling login.  This will
		only be done if getty knows what kind of terminal is
		attached to the line it's running on.

    TELEBIT	Define this if you will be using the autobauding
		feature with Telebit modems.

    TRYMAIL	Define this if you want getty to send email if it has
		and error and cannot access the CONSOLE device.

    WARNCASE	Define this to allow getty to warn a user if he/she has
		used only upper-case letters in their login id.  If the
		user re-enters his/her id a second time in upper-case,
		that value is accepted and process accordingly.

    MY_ERASE	If you've defined MY_CANON, use these to define the values
    MY_KILL	you want for erase and kill characters.

    TB_FAST	During autobauding, a Telebit will say CONNECT FAST
		if a 9600 or 19200 PEP connection is made.  Define
		this to the speed (either 9600 or 19200) you want
		getty to set when it sees FAST.

    NOTIFY	If you've defined TRYMAIL, use this to define the account
		to which the email will be sent.

    CONSOLE	Define this to the name of the console device.

    DEFAULTS	Define this to the name of the defaults file.  The %s is
		necessary, and will be replaced (via an sprintf()) by the
		name of the executable--either getty or uugetty.

    ISSUE	Define this to the name of your issue file.  If this
		is undefined, no issue file will be displayed during
		getty's startup.

    LOGIN	Define this to the name of the login program to be called.

    TRS16	Define this only if you're compiling getty on a Tandy 6000.
		This define handles the different command line required due
		to the V7 based /etc/init and also the dain-bramaged
		/etc/inittab used on Tandy Xenix-68000 3.2

    You may also wish to modify the values of {I,O,C,L}SANE in table.c,
    as my idea of "Sane conditions" may differ from yours.

4)  make depend

    This will look for all the includes and modify Makefile accordingly.
    Configure will offer to do this for you.

5)  make lint

    This step is optional, but highly recommended.

6)  make

    This will attempt to make getty and uugetty in the current directory.
    It will also go to the man sub-directory and use m4 to create
    nroff-able man pages.  It will then run nroff on the m4 output.

7)  make install

    This will put getty/uugetty into a public directory (normally /etc).
    It will also make sure the man pages have been created.  It will not
    install them.  You may need to be root to do this.  If you are not
    root, you must own the directories in question and you should ignore
    any messages about chown not working.

    Also, if you don't already have an /etc/gettydefs file, you'll need
    to create one.  This goes for the /etc/default files (if you are
    using them) and the /etc/issue file.  There are examples of these
    in the `sample.files' file.

8)  Read the manual entries before running getty/uugetty.

9)  IMPORTANT!  Help save the world!  Communicate any problems and suggested
    patches to me, paul@devon.lns.pa.us (Paul Sutcliffe Jr.), so we can
    keep the world in sync.  If you have a problem, there's someone else
    out there who either has had or will have the same problem.

    If possible, send in patches such that the patch program will apply them.
    Context diffs are the best, then normal diffs.  Don't send ed scripts--
    I've probably changed my copy since the version you have.

    Watch for getty patches in comp.sources.bugs.  Patches will generally be
    in a form usable by the patch program.  If you are just now bringing up
    getty and aren't sure how many patches there are, write to me and I'll
    send any you don't have.  Your current patch level is shown in patchlevel.h.


DEBUGGING:

To use debugging, you must define DEBUG (in config.h) before compiling.

To envoke debugging, use the "-D onum" command line argument.  Onum is
an octal number.  To turn on all levels of debugging, use "-D 0377".
To pick specific areas to be watched, look at the defines in the "debug
levels" section of getty.h.  The value for onum will be the result of
OR-ing the values you want.  For instance, to debug the defaults file
and gettytab file processing, use "-D 022".


Have fun.

- paul

INTERNET:  paul@devon.LNS.PA.US         |   How many whales do you have to
UUCP:      ...!rutgers!devon!paul       |       save to get a toaster?
