                 user-setup INSTALLATION NOTES
                       February 15, 1993
                         Version 2.16

user-setup is a shell script which provides an easy to use, menu
driven interface to the Modules package.  The primary goal of 
user-setup is to provide a mechanism for users to create correct
C-shell initialization files: .cshrc and .login.  These files are
customized by the user such that any applications the user wants 
are easily available.

user-setup uses a number of other programs which may or may not
be available on your system.  These are:

    Modules-v2.0	user-setup is a front-end to the Modules
			package, so you need to have it installed.

    Tcl6.3 or later	Modules-v2.0 uses TCL as it's interpreter.

    ckitem      	ckitem is part of the FMLI/FACE portion of
                 	UNIX SVR4.  It is used to handle the menu
                  	interface.

    ckyorn       	ckyorn is also part of FMLI/FACE.  It is
                  	used to handle yes/no questions.

The Modules package and Tcl should be available at the same place
you got this distribution.  The latest version of Modules should
also be available for anonymous ftp from ftp.cme.nist.gov [129.6.32.4]
and ftp.eng.auburn.edu [131.204.10.91]  The latest and greatest
Tcl release is available from sprite.berkeley.edu [128.32.150.27] 

If you are not running SVR4, you probably won't have ckyorn or
ckitem available from your OS vendor.  The source code for clones
of these programs is included in this distribution.  These clones
are not as full featured as the SVR4 versions, but they are freely
available.

In addition to the above, user-setup uses a number of UNIX commands
which should be available on most UNIX machines.

Other items included in this release:

    make-olwm-menu	script to create a custom OL[V]WM menu for
                  	a user based on selected applications.

    doc           	included here are PostScript copies of the
                  	Usenix LISA-VI paper on user-setup.

    man            	man pages for the included programs.

    modulefiles  	sample modulefiles for SunOS 5.1 taken as a
                  	snapshot of what is in use at the Auburn
                    	University College of Engineering.  These are
                  	not very fancy, but they do work well.

    user-setup    	The user-setup script for SunOS 5.1 as well
                    	as some sample configuration files.

INSTALLATION:
-------------

1. Install the Modules package.  See the instructions included in
the package.  It is suggested that the modulefile heirarchy be
constructed such that the topmost level contains only directories.
These directories are considered application classes and are rather
abstract.  For instance, "office" may include office automation
applications, "math" may include math oriented programs, etc.
A snapshot of the modulefile heirarchy used in the Auburn University
College of Engineering is included in this distribution as an
example.  See the file modulefiles/.help for a brief description
of the classes.

2. Configure user-setup.  When a user is running user-setup it is
possible to trash the path.  This could affect the operation of the
script.  To alleviate this problem, all programs called from the
script are explicitly defined at the beginning of the script.  Note
that these are very likely to change for various UNIX implementations.
You will likely need to change a few of the paths.  Here is the list
along with some notes:

	AWK	/usr/bin/awk for SunOS 4.1.x, for SunOS 5.x it needs
		to be /usr/bin/nawk.  This is used only for extracting
		the personal customization area from an old .cshrc file.
		So, if your customization area is emptied, this is
		probably the culprit.

	CAT	/usr/bin/cat, just used for concatenation.

	CKITEM	/usr/bin/ckitem for SVR4 machines.  Wherever you put the
		ckitem clone for other machines.

	CKYORN	/usr/bin/ckyorn for SVR4 machines.  Wherever you put the
		ckyorn clone for other machines.

	CLEAR	"/usr/bin/tput clear" for SunOS 5.x.  You might also use
		/usr/bin/clear, but under SunOS 5.x that is a shell script
		which does a tput clear and will fail if the path is trashed.
		We just use it to clear the screen.

	CP	/usr/bin/cp, used for copying files.

	CUT	/usr/bin/cut, used for dissecting strings.

	DATE	/usr/bin/date, used to include the date as a comment at the
		top of the .cshrc file.

	ECHO 	/usr/ucb/echo, used for various things.  Note that we do 
		require the "-n" option, so make sure you get the right one.

	GREP	/usr/bin/grep, used for grepping.  We do use the -s, -w, and
		positional regular expression options.

	FGREP	/usr/bin/fgrep, used when we can for faster grepping.  We use
		the -v and -e flags.

	MKDIR	/usr/bin/mkdir, used for making a temporary directory.

	MORE	/usr/ucb/more, used for the human interface sometimes.  You
		might want to add the -d option.

	MV	/usr/bin/mv, used for renaming files.  You may wish to add
		the -f flag to avoid any embarrassing permissions problems.

	RM	/usr/bin/rm, for deleting temporary files.

	SORT	/usr/bin/sort, for sorting lists.  We also highly recommend
		having the -u option so that the output is unique.

	TR	/usr/bin/tr, for translating characters.  We use this for
		converting spaces to newlines, colons to spaces, and upper
		case words to lower case words.

	UNIQ	/usr/bin/uniq, for making unique lists.

3. user-setup also references some files which are expected to be on the
system where everyone can get to them.  Obviously, the Modules package
and modulefiles need to be installed first.  You should also install a
directory referred to by user-setup as USER_SETUP_HOME.  This directory
contains:

	Login	The prototype .login file.  This will be copied verbatim
		over the user's existing .login file.

	default.customization	This file contains a default set of
		personal customizations.  This will be the file used when
		the "-nc" option is passed to user-setup.

	prologue.cshrc	This is the beginning of the .cshrc file and 
		includes everything the site desires up to the personal
		customization area.

	epilogue.cshrc	This is the end of the .cshrc file and is added
		after the personal customization area.

	us2.order	This file contains a list of modulefile classes
		which must be added in order.  These classes should only
		contain mutually exclusive modulefiles.  This feature 
		allows us to guarantee that a user has selected a base
		configuration.  For instance, at Auburn we require users
		to select a UNIX flavor (BSD or SYSV) and a windowing
		system (OpenWindows, X11R?, or None).  This allows us to
		more easily construct modulefile prerequisites.  It also
		provides a good base setup on which applications can be
		layered.  You could, of course, hardwire this into user-
		setup rather than reading it out of a file.

	.help	This file contains a brief description of the classes
		and how to use the user-setup main menu.

4. If needed, compile ckitem and ckyorn.  Place them somewhere where everyone
can get them such as /usr/local/bin.

5. If you use the OpenLook Window Manager, olwm, or even better, the 
OpenLook Virtual Window Manager, olvwm, you may wish to install the
make-olwm-script.  This script may also need some adjustment.  In
particular, the FULLNAME variable may need to come from a name service
other than NIS.

5. Copy user-setup and make-olwm-menu to a place where everyone can get them
such as /usr/local/bin.

6. If desired, the man pages can be installed in your man page directory.

7. Try it out.  We strongly encourage you to make backups of your .cshrc,
.login, and .openwin-menu files.  Name them something besides .cshrc.bak,
.login.bak, and .openwin-menu.bak since these names are used to store
backup copies when user-setup is finished.  Take a good look at what the
files contain before and after running user-setup and make-olwm-menu.  Make
any adjustments necessary in the configuration files or modulefiles.


INFORMATION:
------------

We have started a modules-interest mail list for persons interested in
the Modules package and associated programs.  To subscribe, send an
e-mail message to "listserv@eng.auburn.edu" and include the following
line in the message body:
	ADD modules-interest
This is handled by a simple LISTSERV style robot (majordomo one of these
days :-).  If you goof up, don't worry, the robot will send back a HELP
message showing you how to use itself.

For other information or bug reports contact:
	Richard Elling, Manager of Network Support
	Engineering Network Services
	103 L-Building
	Auburn University, AL, USA 36849
	(205)844-2280
	Richard.Elling@eng.auburn.edu
