
		Installation instructions for getty-ps		Ver 2.1.0
								27-Sep-02
	Copyright 1989,1990 by Paul Sutcliffe Jr.
	Portions copyright 2000,2002 by Christine Jamison.

	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 of this
	software; it is not sold, rented, traded or otherwise marketed;
	and this copyright notice is included prominently in any copy
	made.

	The authors 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.

This package is distributed as source code, which must be compiled in order
to provide runable program(s).

Two binaries are the product of this package: getty and uugetty.  The only
difference between getty and uugetty is that uugetty checks and creates
lockfiles.  Uugetty should be used on any bidirectional line (modems, for
example).  Getty should be used on unidirectional lines (virtual consoles,
dumb terminals).

I have also included binaries of getty and uugetty for Linux; these files
were compiled with gcc 2.95.3, and linked with libc.so.2.2.3.  If your
library is older, you will have to do the compile yourself (or grab the
new library).

This code should run on the following supported systems:

(It is reported to work on linux kernel 0.99.15 and up, but I don't have
 a 0.99.x system to test it with <smile>.)
Linux Kernel 1.x.x
Linux Kernel 2.0.x
Linux Kernel 2.2.x  (This release was tested on Slackware 4.0)
Linux Kernel 2.4.x  (This release was tested on Slackware 8.1)

If your system is not one of these, you will need to research your system
requirements, and perhaps modify the program to get it to run properly on
your system.  (*Most* systems will only need values [mostly directory names]
changed in config.h and changes due to different libraries.)

The following are pre-requisites to compiling and installing this package:
  1.    Being able to log in as "root";
  2.	Understanding how to use compress and tar;
  3.	Understanding how to use "make";
  4.	Understanding about ANSI compliant C++ compilers;
  5.	Understanding what is the standard for placing new files on your
	particular system.

Here is the installation synopsis, for those in a hurry:

  1.	Acquire and unpack the tarball containing this source code 
	(getty_ps-2.1.0.tar.gz);

  2.	Modify the compile-time configuration files to meet your system's
 	requirements (the only one you should have to change is config.h);

  3.	Type "make" to build the executables (Note that the latest compiles
	were done on gcc 2.95.3, with libc 2.2.3);

  4.	Type "make install" to install the newly made executables and
	updated man pages.  Note that with this step, your old getty and
	uugetty binaries (if present) are saved as getty- and uugetty-,
	respectively.  After everything is running smoothly, you can
	remove these backup files.  By default, these binaries are put in
	/sbin.

  5.	Create and/or modify the needed config files (/etc/ttytype,
	/etc/gettydefs, /etc/default/getty.*, /etc/default/uugetty.*,
	/etc/issue).  See examples in the "Examples" directory;

  6.	Modify /etc/inittab to use one or more of the new programs (getty
	for non-modem lines [direct VDT access] and uugetty for modem
	access, and enable the ports;

  7.	Check the installation.


Or, you may follow these detailed steps to compile and install getty-ps:

  1.	MAKE A BACKUP COPY OF YOUR EXISTING, WORKING GETTY PROGRAM!  I
	cannot stress this enough.  There is a good chance that you will
	not have things configured correctly the first time around, and
	may not be able to log into your machine.  If you are using
	getty as your primary getty program (as opposed to agetty or the
	like), it would probably be a good idea to modify /etc/inittab
	to use the backup copy you create in this step, and select just
	one or 2 ports to test the new getty.  Then, if all goes well,
	just change /etc/inittab back the way it was.  This is also
	probably a good time to make one of those bootable rootdisks.
	In any case, be sure you can boot your system in single user
	mode before you install anything.

  2.	Make sure you can log in as "root".  All system maintenance,
	including instaling this new/updated program is done thru
	this "privileged" account;

  3.	Prepare a place to unpack the tarball containing this source;
	  I created a directory "src" on a non-root filesystem, in which to
	  put the indiviual sub-directories containing all the source code
	  for each add-on package to my operating system.  The make for a
	  given package is run from that directory as well.  The make is
	  run in this directory because there can be a *lot* of work files
	  created during a make run, although getty-ps's requirements are
	  fairly small.  It is *always* a good idea to keep the original
	  tarball somewhere safe [I use a directory named "sys" in the same
	  directory as "src", mentioned above], in case you make a mistake
	  and need to re-fresh the source.  So, my directory tree looks
	  like:

src:
total 118
drwxr-x---   2 chrissy  stech        1024 Apr 11 09:10 efax-0.9
drwxr-x---   5 chrissy  stech        1024 May 30 13:37 getty_ps-2.0.8

sys:
total 47356
-r--r-----   1 root     stech       96736 Jan 16 13:38 efax-0.9.tar.gz
-r--r-----   1 root     stech      104116 Mar 18 23:14 getty_ps-2.0.8.tar.gz

  4.	Acquire and unpack the tarball containing this source code
	(getty_ps-2.1.0.tar.gz).  Note that executable binaries *are*
	included with this tarball.  They were compiled with gcc 2.7.2.3
	and libc 2.0.7, from Slackware 4.0 (originally distributed in 1996,
	or so).  The *should* run on any modern Linux system, if you are
	unsure of how to do the remaining steps.  If you do this, skip to
	step 7;

  5.	Modify the compile-time configuration files to meet your system's
 	requirements (the only one you should have to change is config.h -
	this source is distributed with several different config files,
	for various kinds of systems; pick the one that is for your
	system, or make a new one, as needed, and copy it to "config.h";
	you may need to change "tune.h", if you need to change the terminal
	interface, like the backspace key, or change the default feature
	settings.);

  6.	Type "make" to build the executables (Note that the last compiles
	were done on gcc 2.95.3, with libc 2.2.3);

  7.	Type "make install" to install the newly made executables;

  8.	Create and/or modify the needed config files (/etc/ttytype,
	/etc/gettydefs, /etc/default/getty.*, /etc/default/uugetty.*,
	/etc/issue).  See examples in the "Examples" directory;

  9.	Modify /etc/inittab to use one or more of the new programs (getty
	for non-modem lines [direct VDT access] and uugetty for modem
	access; on some systems, the installation script for the port
	hardware adds the needed entries to /etc/inittab [sometimes, it
	even does it correctly!]; othertimes, it needs to be done
	manually).  See README.linux for details on how to do
	configuration;

 10.	Type "init q", to make init reload it's configuration file
	("/etc/inittab", from the prevous step; on some systems, there
	is a script [usually called "enable"] which does this, and modifies
	some of /etc/inittab for you);

 11.	Check the installation: if the port to be tested is connected to
	a VDT, see if a login prompt appears on the screen, and if not,
	then hit the "Enter" key, and see if the login appears; if
	connected to a modem, first test dial-in (connect from another
	modem), and then test dial-out (using any program that supports
	UUCP-style lock files [cu is the standard program from the UUCP
	suite]).

 11.	Lastly, reboot the system and make sure it all still works!  I've
	had a couple of instances where everything worked fine, until the
	system was rebooted... And, it is *damnably* difficult to log into
	the system to fix the problem when getty is not working well!

