This directory includes the source for the UCLink menu system.
This distribution was made up due to several requests, but is
basically a copy of the source used on our system.  As such,
you will probably have to change a few paths, etc. to install it.

This software is provided "As Is".  It is still being developed and
modified.

To compile and test: go into the menu2.0/src directory and do a make:
	cd menu2.0/src
	make
To test:
	cd menu2.0
	setenv MENU_DIR .
	./bin/newmenu

If you have any question, comments, suggestions, fixes etc, send them
to Jerry Berkman, jerry@uclink.berkeley.edu.  You can also call me at
(510)642-4804.  However, that this is "As Is", and I have
limited time if any to continue improving this code.

There is no commitment by the author or UC Berkeley to support this
menu system.

(On the other hand, we might put in some minor improvements before
installing the menu on our new alpha in early 1995).

=====================================================================
Reliability & Acceptance:

Version 2.0 of the menu system has been running at Berkeley on the
UCLink systems since about Sep. 1, 1994.  We have had no reported
problems from users.  (Even the bugs I know exist have not been
reported by users :-) ).  The system has had good acceptance.  Version
1.0 did not have short cuts and had much less functionality available
through the menus, and was not well accepted.  With version 1.0, people
would mail to consult asking how to get rid of the menu system from
their accounts.  With version 2.0, people mail to consult with comments
such as:

	"My roommate got rid of the menu system; how do I get it back?"

Usage currently is about 7500 menu sessions per day, by about 3800
different users.  Users have the option of using the shell or the
menu system.

=====================================================================
Portability:

The following comments reflect portability of the main driver program,
and ignore whether the invoked binaries and scripts work.
E.g. in several cases below, the driver worked fine and tried to
invoke the Pine mailer, but that hadn't been ported yet.
Also, the scripts will probably need some modifications for different
operating systems, but you may not want to use our menus and scripts
anyway.  All tests were with the default C compiler on these systems
except for Solaris where I used gcc.

Ultrix:

This is our current production system, using Ultrix V4.3A.

Alpha/OSF:

I once copied an older version to a DEC Alpha running OSF and
and only had to change one line to compile it successfully,
and run it.

Sun OS:

I compiled & ran this version with no problems in the driver,
although it appears "mktemp" which is heavily used in the scripts
to create temporary files does not exist in Sun OS.

Solaris:

I had to add:
#include <unistd.h>
#include <sys/ttold.h>
to get it to compile under gcc.  However, when running, the
line "Press any key to Return to the UCLink Menu System", which
should appear after every command execution, did not appear.
Maybe the Solaris curses or Gcc curses starts with a clear?
I leave this for someone else to figure out.

=====================================================================

Bugs:

The =i= in menu.config to turn on interrupts does not seem to work
for the entry for BSD mail.  This means there is no way to abort
a letter once you start composing in BSD mail.

The file entries don't do well with files with blanks in their names,
as you may get from Gopher, etc.  Probably need ":q" to be added in
the scripts.

The logging of parity errors didn't work right.   Twice in the month
and a half we had logging turned on, it went into an infinite loop
logging millions of parity errors and filling up a file system.
I have changed it to only log the first 6 parity errors; hopefully
that fixes it.

	- Jerry Berkman, Workstation Software Support Group, UC Berkeley
