/*
 * README -- gpm-Linux 1.0x
 *
 * Copyright 1995   rubini@ipvvis.unipv.it (Alessandro Rubini)
 *
 *******/

This package has finally got mature (version 1, after years).

Then gpm (general purpose mouse) daemon tries to be a useful mouse
server for applications running on the Linux console.  Its roots are
in the "selection" package, by Andrew Haylett, and the original code
comes from selection itself. This package is intended as a replacement
for "selection", to provide additional facilities.  From 0.18 onward
gpm supports xterm as well, so you can run mouse-sensitive
applications under X, and you can easily write curses applications
which support the mouse on both the Linux console and xterm. The xterm
code is portable to any U*x flavour (look at sample/README).

The first clients have been "The Midnight Commander", by Miguel de
Icaza and an emacs library included in this release. Recent dialog
distributions and the Jed editor use gpm as well, and the same do
several custom applications.


=========== COMPILING AND INSTALLING

To compile the package just type "make" to your shell.

To install "make install". This installs binaries in /usr/bin,
libraries in /usr/lib, man pages in /usr/man, the lisp library in
/usr/lib/emacs/site-lisp and the info file in /usr/info.

If any error occur, please report them to me. Something like this
could be an easy (though brutal) way to do it:
 make clean; (uname -a; make) |& elm -s "gpm compile err." rubini@systemy.it

To install under /usr/local or /usr/tools or wherever you want,
you can tell "make install PREFIX=/usr/local" to your shell. Files
will go to $PREFIX/bin $PREFIX/lib and so on.

What remains to do after installation  is a little configuration

=========== CONFIGURING

Configuration is optional...

* You would like to tell emacs to use t-mouse.el when appropriate. Add the
following lines to your own .emacs (in your home directory), or in the
/usr/lib/emacs/site-lisp/default

	(if (and (string-match ".*-linux" system-configuration)
	         (or (string-match "linux" (getenv "TERM"))
	             (string-match "con.*" (getenv "TERM"))))
	    (load-library "t-mouse"))

* If you want to use gpm-root, copy gpm-root.conf to your /etc directory,
test it out and then edit it to suit your feels.

* You'd like to name the gpm info file inside /usr/info/dir. Just insert
the line
	* gpm-Linux: (gpm.info).           A mouse server for the Linux console
at the proper place.
	
* To invoke gpm (and gpm-root) at system boot, add something like this to your
/etc/rc.d/rc.local

	/usr/bin/gpm -t msc &
	/usr/bin/gpm-root &

You may want to put the mouse server at a higher priority: in this case
invoke instead "/usr/bin/nice -n -20 /usr/bin/gpm -t msc &"

Actually, the program goes to the background by itself, unless it is compiled
with debuging enabled: the "&" above is just in case you install a debugging
version of the daemon.

=========== DOCS

The directory "./doc" holds the documentation. The release embeds a
postscript file, slightly reduced to save paper (doc/gpm2.ps), an info
one (doc/gpm.info) and a text-only version (doc/gpmdoc.txt -- but
without table of contents, by now).  Man pages are automatically
extracted from the info file, and are installed with "make install"

=========== BUG REPORTS

Before sending bug reports, please look at the file "FAQ",
which outlines some known problems, and how to deal with them.

If your bug isn't fixed by reading there, please report it to me,
without getting angry with me if things don't work at first trial
(but they usually work).

Bug reports are best sent to me via email, including the string "gpm"
somewhere in the subject line. This will help deliver in sorting things out.

* When compilation fails I need your kernel version ("uname -a"), the
compiler version ("gcc -v") and the library version ("ls -l /lib").
And the compiler messages, obviously.

* When a program hangs or segfaults, please reinvoke the program under strace:
	strace -tf -o /tmp/trace.gpm gpm -t msc
                                     ^^^^^^^^^^ put your true cmdline here.
Then send me /tmp/trace.gpm* (they may be one or two files, according
to the strace version), and a description of how you reproduce the problem.

The last resort is a core dump, but I'll ask it personally if I have real
difficulties in tracing out your problem.

=========== AVAILABILITY 

The latest release is available by ftp from iride.unipv.it:/pub/gpm
Feel free to call me to report/fix bugs.  If you are willing to write
a client I'd like to know as well.

=========== CREDITS

The following people contributed to gpm, in chronological order. This
list used to reside in a different file, but it's better for it to stand
out in the README

Andrew Haylett (ajh@gec-mrc.co.uk)
		donated "selection" to the linux community, so I could get
		the idea and the code. A few others contributed to selection,
		but I lost track of their contributions and names.

Steven S. Dick (ssd@nevets.oau.org)
		fixed a pair of bugs in early gpm versions.

Miguel de Icaza (miguel@roxanne.nuclecu.unam.mx)
		helped fixing some bugs and provided a good client to test
		my server. He helped a lot in testing the various pre-releases.

Olav Woelfelschneider (wosch@rbg.informatik.th-darmstadt.de)
		fixed 0.10 with MouseSystems compatible mice.

Janne Kukonlehto (jtklehto@stekt.oulu.fi)
		provided xterm mouse decoding to be stolen by me.

Rick Lyons (rick@razorback.brisnet.org.au)
		fixed a bug in gpm-0.9.

Reuben Sumner (rasumner@undergrad.math.uwaterloo.ca)
		helped fixing behaviour with "-t bm".

Larry Bartholdi (lbartho@scsun.unige.ch)
		pinpointed an error in t-mouse-suspend
		and provided good suggestions for 0.97.

Mark Lord (mlord@bnr.ca)
		ported to Dexxa/Logitech mice and gave feedback several times.

Stefan Giessler (stg@gandalf.han.de)
		fixed some problems with gpm-root and
		suggested to put gpm in the background (0.97).

Roman Shapiro and Stephen Lee
		helped with the Logitech MouseMan.

Andries Brouwer (aeb@cwi.nl)
		Provided a Latin-1 LUT for chars, and enhanced
		lut-loading code (0.98).

Adrian Johnson (ajohnson@apanix.apana.org.au)
		Gave good feedback and ideas for the 0.98's

Stephen Lee (sl14@crux1.cit.cornell.edu)
		Helped a lot with the damned MouseMan protocol (0.98 and 1.0)

John van Leeuwen (johnvl@einstein.et.tudelft.nl)
		Outlined and fixed a pair of bugs in gpm-root 0.98

Alvar Bray (alvar@meiko.co.uk)
		Pointed out an error with awk (0.99)
 
David A. van Leeuwen (david@tm.tno.nl)
		Helped with chord-middle protocols (1.0)

Ian T Zimmerman (itz@rahul.net)
		Greatly enhanced t-mouse.el (1.0)

Pavel Kankovsky (KAN@frode.dcit.cz)
		Open /dev/ttyxx instead of /dev/console in the lib (1.01)

Mark Shadley (shadcat@catcher.com) 
		Helped in turning to ELF (1.01 and 1.02) and in fixing
		horrible bugs of mine. Without his help 1.03 wouldn't be there.

Lou Sortman (lou@lounix4.conc.tdsnet.com)
		Added support for glidepoint mice within "-t mman". (1.05)

Marc Meis (100334.1426@compuserve.com)
		Provided support for absolute pointing devices, and in
		particular for the ncr3125 pen. (1.05)

Michael Plass (Michael_Plass.PARC@xerox.com)
		Fixed a damned bug in middle button decoding (M_ms) (1.07)

Markus Gutschke (gutschk@uni-muenster.de)
		Provided a better re-encoding for "-R" (1.10)

Karsten Ballueder (Karsten@piobelix.physik.uni-karlsruhe.de)
		Suggested the reboot compile-time option (1.10)

John Davis (davis@space.mit.edu)
		Found and fixed a buglet in liblow.c for some jed users (1.10)

Julian Thompson (jrt@miel.demon.co.uk)
		Fixed a buglet in gpm-root (1.10)
