Before you use any of the files in this directory,
study the scripts and the contents of the files very
hard.

Basically, the system works like this:

There are configuration files under install/*.conf
Each installation file directory has several files:

	- common		config used for all hosts
	- <hostname>		config used for specific host
	- <class>.domainname	config for class in specific domainname
	- <class>		config for specific class
	- <domainname>		config used for hosts in domain that don't
				have their own <hostname> file
	- default		config used for hosts w/o host and domain file

The installed files (installed through copy.conf/append.conf) are searched
in the same manner, though there's only a default file, not a common file.
If a directory <filename> would contain only a common or default file,
you can replace the directory <filename> with a plain file
containing the default value.

When a file is installed, the first match from the above search order
is used.  When looking for a configuration file, *all* matching config
files are used, except that default isn't used if a there are other
matching files (except common) and that for each class only one of
CLASS.`domainname` and CLASS is used, where the first has preference
over the second.

E.g., our link.conf directory looks like this:

    ATALKAD
    LICENSEMGR
    MULTICASTROUTER
    NAMESERVER
    NEWS
    chart.fwi.uva.nl
    common
    fred.fwi.uva.nl
    info.fwi.uva.nl
    mail.fwi.uva.nl
    thomas.fwi.uva.nl
    turing.fwi.uva.nl

All hosts will use "common", the host "mail.fwi.uva.nl" which is in classes
ATALKAD, NAMESERVER and NEWS will use common, ATALKAD, NAMESERVER, NEWS
and mail.fwi.uva.nl.  The host fred.fwi.uva.nl only gets its own file + common.
Host not in any of the classes get only common.

Install classes can be dynamic.  Just make a script called S[0-9]*.sh,
make it executable and dump it in the install/class directory.
The scripts must be able to do there work both during the installation
process and during the install process.
We use it for the `uname -p` class and the DATALESS/CACHEFS classes.

Do not install any file onto your systems that you haven't checked the
contents of.

The rootpassword can be installed by putting the encrypted root password
in a file 'rootpw' in install/files (or make install/files/rootpw
a directory and install a different rootpw for clients/domains
there)

All references to our hosts and domains have been replaced by
either hostname (reference was a host) or domainname (reference
was a domainname).  Not only the files in the install tree
have been renamed, but also some scripts have been edited.
(e.g., install/scripts/etc.hostname.le0 and etc.nodename.le0)


Config file names are relative to install
Files are relative to install/files
Scripts are relative to install/scripts

Directory layout (should be directly under /export/install_info):

    bin				- directory for install-time executables
    bin/newfs			- newfs with changed parameters
    bin/mount			- ufs mount that switches on "fast" fs.
    bin/fastfs			- the fastfs program. (provided as source)

    install			- root of the installation
    install/files		- where all the files live (for copy conf)
    install/scripts		- where the scripts for scripts.conf live

The class definition file.  This directory contains a file with the
name of the host containing a list of classes for each that host, it
can also contain a "default" file with the default CLASS.
Classes should be in capitals to disinguish them from hostnames/domainnames
and "default"/"common".

Another use for classes is to alias hosts.  By using the name of
another host as the first class of a host, a host will be installed
execatly like that other host, provided it is in the rest of the same
set of classes.

   install/class		- list of class definitions

The class definition for a host is copied to /etc/INSTALL_CLASS.

Configuration files go here and are executed in the order specified
here (and the order specified in the files)
File marked with * are also used by install_check.

    install/rm.conf		- list of files to remove
   *install/mkdir.conf		- list of directories to make
    install/mv.conf		- list of files to move (not used by us)
   *install/touch.conf		- list of files to create empty
   *install/copy.conf		- list of files to be installed
   *install/slink.conf		- list of symlinks
   *install/link.conf		- list of hardlinks
    install/append.conf		- append to files 
    install/scripts.conf	- list of scripts to execute

    packages			- directory of package lists
    scripts			- contains the start&finish scripts.
    support/instdir		- script to convert a <file>
				  to <file>/default or vv.

The following are only used by the update process (install-check):

    bin/version			- tells version of currentinstall tree.
    updates			- directory for update scripts
				  are executed by install_check
				  when the scripts are newer
				  then last_update
    updates/gen-vfstab		- touch when you want to recreate
				  the /etc/vfstab files on clients.

Casper Dik (casper@fwi.uva.nl)
