Net2/usr/src/contrib/isode/isode-gen.8

.TH ISODE-GEN 8 "09 Mar 1991"
.ds VD isode\-interim
.ds VN 6.8
.\" $Header: /f/osi/RCS/isode-gen.8,v 7.33 91/03/09 11:54:14 mrose Exp $
.\"
.\"
.\" $Log:	isode-gen.8,v $
.\" Revision 7.33  91/03/09  11:54:14  mrose
.\" update
.\" 
.\" Revision 7.32  91/02/22  09:13:50  mrose
.\" Interim 6.8
.\" 
.\" Revision 7.30  91/02/12  18:28:11  mrose
.\" update
.\" 
.\" Revision 7.29  91/01/15  09:30:07  mrose
.\" update
.\" 
.\" Revision 7.28  90/12/11  10:32:45  mrose
.\" sync
.\" 
.\" Revision 7.27  90/11/21  11:29:24  mrose
.\" sun
.\" 
.\" Revision 7.26  90/11/11  10:48:00  mrose
.\" touch-up
.\" 
.\" Revision 7.25  90/10/31  12:53:33  mrose
.\" update
.\" 
.\" Revision 7.24  90/10/30  14:32:48  mrose
.\" iae
.\" 
.\" Revision 7.23  90/10/23  20:38:37  mrose
.\" update
.\" 
.\" Revision 7.22  90/09/10  09:57:47  mrose
.\" touch-up
.\" 
.\" Revision 7.21  90/07/27  08:52:25  mrose
.\" 6.6
.\" 
.\" Revision 7.20  90/07/27  08:49:45  mrose
.\" update
.\" 
.\" Revision 7.19  90/07/09  14:42:51  mrose
.\" 6.5
.\" 
.\" Revision 7.18  90/07/09  14:30:14  mrose
.\" sync
.\" 
.\" Revision 7.17  90/04/18  10:23:25  mrose
.\" 6.2
.\" 
.\" Revision 7.16  90/04/18  08:52:33  mrose
.\" MANDIR
.\" 
.\" Revision 7.15  90/04/09  08:49:53  mrose
.\" update
.\" 
.\" Revision 7.14  90/03/05  23:04:15  mrose
.\" touch-up
.\" 
.\" Revision 7.13  90/02/19  13:07:36  mrose
.\" update
.\" 
.\" Revision 7.12  90/01/27  10:27:48  mrose
.\" touch-up
.\" 
.\" Revision 7.11  90/01/11  19:35:47  mrose
.\" again
.\" 
.\" Revision 7.10  90/01/11  18:33:48  mrose
.\" real-sync
.\" 
.\" Revision 7.9  89/12/19  23:40:40  mrose
.\" again
.\" 
.\" Revision 7.8  89/12/19  23:37:41  mrose
.\" again
.\" 
.\" Revision 7.7  89/12/19  23:36:12  mrose
.\" again
.\" 
.\" Revision 7.6  89/12/19  23:34:33  mrose
.\" again
.\" 
.\" Revision 7.5  89/12/19  23:32:22  mrose
.\" again
.\" 
.\" Revision 7.4  89/12/19  09:52:43  mrose
.\" 5.9
.\" 
.\" Revision 7.3  89/12/04  18:18:09  mrose
.\" 5.8b
.\" 
.\" Revision 7.2  89/11/30  23:50:49  mrose
.\" typos
.\" 
.\" Revision 7.1  89/11/24  13:33:10  mrose
.\" sync
.\" 
.\" Revision 7.0  89/11/23  21:21:30  mrose
.\" Release 6.0
.\" 
.SH NAME
isode\-gen \- generating the ISO Development Environment
.SH "READ THIS"
This documentation describes how to configure, generate, and install the
ISO Development Environment.
.PP
Acquisition, use, and distribution of this module and related
materials are subject to the restrictions of a license agreement.
Consult the Preface in the \fIUser's Manual\fR for the full terms of this
agreement.
.PP
You will probably want to read over this entire document first,
before typing any commands;
e.g., there are optional components described later on that require
additional settings in the configuration file.
.PP
Comments concerning this release should be directed to the mailbox
\*(lqBug\-ISODE@NISC.PSI.NET\*(rq. 
Do \fBnot\fR send bug reports to the ISODE discussion group.
If you want to subscribe to the ISODE discussion group,
drop a note to \*(lqISODE-Request@NIC.DDN.MIL\*(rq.
.SH SYNOPSIS
.sp
.in +.5i
.nf
% cd \*(VD
% cp config/\fIsystem\fR.h h/config.h
% cp config/\fIsystem\fR.make config/CONFIG.make
% cp config/*.local support/
% ./make everything
# ./make inst\-everything
.fi
.in -.5i
.sp
.SH DESCRIPTION
This is a description of how one can bring up the ISODE.
It is assumed that you have super\-user privileges in order to (re\-)install
the software.
Super\-user privileges are not required to configure or generate this
software.
.PP
The distribution tape contains the hierarchy for the \fB\*(VD\fR directory.
Bring the sources on\-line by changing to a directory for local sources and
running tar, e.g.,
.sp
.in +.5i
.nf
% cd /usr/src/local/
% tar x
% cd \*(VD
.fi
.in -.5i
.sp
.SH CONFIGURATION
First, go to the \fBconfig/\fR directory.
.sp
.in +.5i
.nf
% cd config
.fi
.in -.5i
.sp
.PP
Select the Makefile and include-file skeletons which most closely match
your system.
The current choices are:
.sp
.in +.5i
.nf
.ta \w'sys52-exos  'u
.ne 4
\fIfile\fR	\fIconfiguration\fR
apollo	Apollo
aux	A/UX release 1.1
bsd42	generic 4.2BSD UNIX
bsd43	generic 4.3BSD UNIX
bsd43\-rt	RT/PC with 4.3BSD
bsd44	4.4BSD UNIX with OSI
hpux	HP\-UX
mips	MIPS RISC/OS
osx	Olivetti LSX 30xx
ros	Ridge Operating System
sunlink3	SunOS release 3 with SunLink OSI/X.25 release 5.2
sunlink4	SunOS release 4 with SunLink OSI/X.25 release 6.0
sunlink7	SunOS release 4 with SunNet OSI/X.25 release 7.0
sunos3	SunOS release 3
sunos4	SunOS release 4
sys52\-exos	SVR2 UNIX with EXOS
sys52\-rt	RT/PC with AIX
sys52\-sun	SVR2 UNIX emulation on SunOS release 3
sys52\-win	SVR2 UNIX with WIN/TCP
sys53	generic SVR3
ultrix	Ultrix 3.1
.re
.fi
.in -.5i
.sp
The makefile skeleton has the extension \fB.make\fR,
whereas the include\-file skeleton has the extension \fB.h\fR.
.SS MAKEFILE
Copy the makefile skeleton of your choice to \fBpickle.make\fR,
where \*(lqpickle\*(rq is the name of your system.
Now edit this file to set the following \fImake\fR variables:
.sp
.in +.5i
.nf
.ta \w'MANOPTS  'u +\w'/usr/include/isode/  'u
.ne 8
\fIvariable\fR	\fIdefault\fR	\fIspecifies\fR
OPTIONS		options to \fIcc\fR and \fIlint\fR (e.g., -I../h)
LSOCKET		libraries to link in (e.g., -lcci)
BINDIR	/usr/local/bin/	where to install user programs
SBINDIR	/usr/etc/	where to install administrator
		programs
ETCDIR	/usr/etc/	where to install administrator files
LOGDIR	/usr/tmp/	where to install log files
INCDIR	/usr/include/isode/	where to install include files
LIBDIR	/usr/lib/	where to install object libraries
LINTDIR	/usr/lib/lint/	where to install lint libraries
SYSTEM		directs how to create loader libraries
MANDIR	/usr/man/	where to install man pages
MANOPTS		see compat/inst-man.sh for details
.re
.fi
.in -.5i
.sp
\fBNOTE THAT ALL THESE DIRECTORIES MUST BE ABSOLUTE PATH NAMES
(i.e., start and end with a `/')\fR.
.PP
Finally, 
.sp
.in +.5i
.nf
ln pickle.make CONFIG.make
.fi
.in -.5i
.sp
(yes, that's \*(lqCONFIG\*(rq in uppercase and \*(lqmake\*(rq in lowercase).
Both of these files are in the \fB\*(VDconfig/\fR directory.
This latter file is the one which the software uses to configure itself
during generation.
.SS INCLUDE\-FILE
Copy the include\-file skeleton of your choice to \fBpickle.h\fR,
where \*(lqpickle\*(rq is the name of your system.
Now add any additional definitions you like (usually none).
Consult the file \fBconfig/OPTIONS\fR for a list.
.PP
Now:
.sp
.in +.5i
.nf
ln pickle.h ../h/config.h
.fi
.in -.5i
.sp
This latter file is the one which the software uses to configure itself
during generation.
.SS "ALIASES DATABASE"
Typically,
sites run with the default aliases database used
by the OSI directory.
In this case,
simply copy the default local configuration file to the \fBsupport/\fR
directory:
.sp
.in +.5i
.nf
% cp aliases.local ../support/
.fi
.in -.4i
.sp
If you have local modifications you wish to make,
either copy in your own file or edit the file
\fBsupport/aliases.local\fR as appropriate.
.SS "SERVICES DATABASE"
Typically,
sites run with the default services database.
In this case,
simply copy the default local configuration file to the \fBsupport/\fR
directory:
.sp
.in +.5i
.nf
% cp services.local ../support/
.fi
.in -.4i
.sp
If you have local modifications you wish to make,
either copy in your own file or edit the file
\fBsupport/services.local\fR as appropriate.
.SS "ENTITIES DATABASE"
Typically,
sites run with the default application entity database used
by the stub\-directory service.
However,
once things are running,
sites should use the OSI Directory to keep track of application entities.
So,
to begin,
simply copy the default local configuration file to the \fBsupport/\fR
directory:
.sp
.in +.5i
.nf
% cp entities.local ../support/
.fi
.in -.5i
.sp
If you have local modifications you wish to make,
either copy in your own file or edit the file
\fBsupport/entities.local\fR as appropriate.
.PP
In particular,
if you are using SunNet OSI,
it will be necessary to put an entry in your
\fBsupport/entities.local\fR file of the form:
.sp
.in +.5i
myhost\0default\0\01.17.4.1.0\0\0#1/NS+mynsap
.in -.5i
.sp
where \*(lqmyhost\*(rq is the name of the local machine,
and \*(lqmynsap\*(rq is the NSAP of the local machine.
For SunNet OSI 7.0 the NSAP is most easily determined by running
.sp
.in +.5i
.nf
% /usr/sunlink/osi/etc/osirstat -n | grep ^DA
.fi
.in -.5i
.sp
provided that the SunNet OSI osi.routed program is running. For
earlier SunLink OSI releases you can run
.sp
.in +.5i
.nf
% cd others/osilookup
% ./make
% xosilookup localhost CLIENT
.fi
.in -.5i
.sp
providing that the SunLink OSI file \fB/etc/sunlink/osi/hosts\fR 
has an entry defining the service for \*(lqlocalhost\*(rq called
\*(lqCLIENT\*(rq.
(Note that in releases earlier than SunLink OSI 6.0,
the file is called \fB/usr/etc/osi.hosts\fR)
Note that this entry is mandatory if you are running SunLink OSI
release 5.2 or greater.
.PP
One further note for users of a release earlier then 7.0 of SunLink OSI:
if you intend to run the standard SunLink OSI listener (osi.netd),
then you must change the TSEL used by \fItsapd\fR when it listens.
This is done in two steps:
First,
in \fBsupport/entities.local\fR,
change your entry to read as:
.sp
.in +.5i
myhost\0default\0\01.17.4.1.0\0\0#2/NS+mynsap
.in -.5i
.sp
Second,
in \fBsupport/services.local\fR,
add a line that reads as:
.sp
.in +.5i
tsap/session\0\0#2\0\0tsapd-bootstrap
.in -.5i
.sp
which overrides the default TSEL in the \fBsupport/services.db\fR file.
.SS "MACROS DATABASE"
Typically, sites run with the default macros database.
In this case,
simply copy the default local configuration file to the \fBsupport/\fR
directory:
.sp
.in +.5i
.nf
% cp macros.local ../support/
.fi
.in -.5i
.sp
If you have local modifications you wish to make,
either copy in your own file or edit the file
\fBsupport/macros.local\fR as appropriate.
.SS "OBJECTS DATABASE"
Typically, sites run with the default objects database.
In this case,
simply copy the default local configuration file to the \fBsupport/\fR
directory:
.sp
.in +.5i
.nf
% cp objects.local ../support/
.fi
.in -.4i
.sp
If you have local modifications you wish to make,
either copy in your own file or edit the file
\fBsupport/objects.local\fR as appropriate.
.SH GENERATION
Go to the \fB\*(VD\fR directory
.sp
.in +.5i
.nf
% cd ..
.fi
.in -.5i
.sp
Now reset the dates of the
configuration files for the system.
This is done only once per source-tree:
.sp
.in +.5i
.nf
% ./make once-only
.fi
.in -.5i
.sp
then generate the basic system.
.sp
.in +.5i
.nf
% ./make
.fi
.in -.5i
.sp
If you are using SunOS,
do not use the \fImake\fR program supplied with the SunPro package.
It is not, contrary to any claims, compatible with the standard
\fImake\fR facility.
Further,
note that if you are running a version of SunOS 4.0 prior to release 4.0.3,
then you may need to use the \fImake\fR program found in \fB/usr/old/\fR,
if the standard \fImake\fR your are using is the SunPro \fImake\fR.
In this case,
you will need to put the old, standard \fImake\fR in \fB/usr/bin/\fR,
and you can keep the SunPro \fImake\fR in \fB/bin/\fR.
.PP
If you are using SVR3,
then you will probably have to type this command before starting the
compilation:
.sp
.in +.5i
.nf
% ulimit 32768
.fi
.in -.5i
.sp
Similarly,
you may need to increase the stacksize limitation on other systems.
For example,
some users of the RT, report needing to use
.sp
.in +.5i
.nf
% limit stacksize 16m
.fi
.in -.5i
.sp
in order to get FTAM to fully compile.
.PP
The \fImake\fR command from the top-level directory
will cause a complete generation of the system.
If all goes well, proceed with the installation.
If not, complain, as there \*(lqshould be no problems\*(rq at this step.
Some files while compiling may produce a
.sp
.in +.5i
.nf
warning: statement not reached
.fi
.in -.5i
.sp
or a
.sp
.in +.5i
.nf
type ObjectDescriptor: Warning: Can't find file DSE.ph failed
.fi
.in -.5i
.sp
message.
This is normal.
Sometimes when building a loader library, you might see several
.sp
.in +.5i
.nf
ranlib: warning: ../libisode.a(aetdbm.o): no symbol table
.fi
.in -.5i
.sp
messages.
This is also normal.
You might also see a few messages like:
.sp
.in +.5i
.nf
*** Error code 1 (ignored)
.fi
.in -.5i
.sp
This is also normal.
As a rule, unless \fImake\fR says something like
.sp
.in +.5i
.nf
*** Error code 1
.fi
.in -.5i
.sp
or perhaps
.sp
.in +.5i
.nf
Exit
.fi
.in -.5i
.sp
then everything is going just fine!
.SH TESTING
Some directories may have a resident test program,
e.g., in the \fBpsap/\fR directory, there is a program called \fIpsaptest\fR.
These programs are for internal testing only,
and are not for use by \*(lqmere mortals\*(rq.
If you want to test things,
after installation run \fIisode\-test\fR (see the \fBUSER PROGRAMS\fR section).
.SH INSTALLATION
You will need to be the super\-user to install the software.
Note that installing the software from an NFS-mounted partition
requires that you perform the installation as the super-user on the
\fItarget\fR system after changing to the source directory on the
\fIsource\fR system.
.PP
In the directions that follow,
reference is made to some of the directories defined in the
\fBCONFIG.make\fR file.
You should substitute in the correct value,
for example,
if the expression
.sp
.in +.5i
.nf
$(SBINDIR)tsapd
.fi
.in -.5i
.sp
and if SBINDIR is defined as \fB/usr/etc/\fR in the \fBCONFIG.make\fR
file,
then you should type
.sp
.in +.5i
.nf
/usr/etc/tsapd
.fi
.in -.5i
.sp
instead.
.PP
There are two kinds of activities:
once\-only activities that you perform the first time the software is 
installed;
and each\-time activities that you perform every time the software is
installed.
.PP
The first once\-only activity is to verify that the \fItsapd\fR daemon will be
run when the machine goes multi\-user.
On Berkeley UNIX systems, add these lines to the \fB/etc/rc.local\fR file:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)tsapd ]; then
    $(SBINDIR)tsapd & (echo \-n ' tsap') > /dev/console
fi
.fi
.in -.5i
.sp
On other systems, a similar procedure is followed.
For example,
on systems derived from AT&T UNIX,
the file \fB/etc/rc2\fR script might be edited.
.PP
Once you are familiar with the system,
you will likely want to run the OSI Directory and use another program,
\fIiaed\fR to invoke local services.
The section \fBDIRECTORY SERVICES\fR discusses this in greater detail.
(However,
if this is your first time,
don't skip ahead.)
.PP
The next once\-only activity is to verify that systems with a native
\fB/etc/services\fR file contain an entry for the tsap service
(if you have configured the ISODE to run over TCP).
If not,
add the line:
.sp
.in +.5i
.nf
tsap		102/tcp
.fi
.in -.5i
.sp
to the \fB/etc/services\fR file.
If your system does not have such a file,
the software automatically compensates for this.
.PP
Next,
on Berkeley UNIX systems,
add a line to the \fB/usr/lib/crontab\fR file to invoke a
shell-script that will re-cycle the log files.
Usually, the line you add looks something like this:
.sp
.in +.5i
.nf
0 4 * * * su daemon < $(SBINDIR)isologs
.fi
.in -.5i
.sp
which says that the shell-script $(SBINDIR)isologs should be invoked at 4am
each morning.
On other systems, a similar procedure is fllowed.
For example,
on systems derived from AT&T UNIX,
the file \fB/usr/spool/cron/crontabs/root\fR might be edited followed
by the command
.sp
.in +.5i
.nf
% crontab root
.fi
.in -.5i
.sp
.PP
There are two each\-time activities:
.sp
.in +.5i
.nf
# ./make inst\-all
.fi
.in -.5i
.sp
which does the installation.
.PP
The second each\-time activity,
is that if you are already running the ISODE,
then you will need to kill and restart the \fItsapd\fR\0(8c) daemon,
otherwise incoming connections will not be initialized correctly.
Otherwise, start the daemon now.
From the \fICShell\fR, the command might be:
.sp
.in +.5i
.nf
# $(SBINDIR)tsapd >& /dev/null
.fi
.in -.5i
.sp
The daemon will automatically detach.
If you do not redirect the daemon's standard\-error,
then it will not detach, instead printing messages as to what actions it
is taking.
.PP
That's about it.  This will install everything.
To clean-up the source tree as well,
then use:
.sp
.in +.5i
.nf
% ./make clean
.fi
.in -.5i
.sp
at this point.
Note that if you are planning on generating or installing FTAM or VT
or QUIPU (described below),
then you should not clean-up the source tree until after you are
finished dealing with these.
.PP
If your system is configured for TCP/IP,
and you are not already running an SNMP agent,
then you are \fBURGED\fR to immediately install the SNMP agent
distributed with the ISODE.
Consult the \fBNETWORK MANAGEMENT\fR section below.
.PP
Finally,
if you are interested in discussing the ISODE with others running the software,
drop a note to the Internet mailbox
\*(lqISODE\-Request@NIC.DDN.MIL\*(rq,
and ask to be added to the \*(lqISODE@NIC.DDN.MIL\*(rq list.
.SH TAILORING
If you create a file called \fB$(ETCDIR)isotailor\fR,
then you can customize the behavior of the programs which use the
ISODE when they start.
Consult the \fBsupport/isotailor.5\fR file for further information.
.SH "USER PROGRAMS"
By default,
two services are installed.
.PP
The first service,
having programs \fIisoc\fR and \fIisod\fR,
is used to test out the installation of the ISODE on your system:
.sp
.in +.5i
.nf
% ./make test
.fi
.in -.5i
.sp
which runs the \fIisode\-test\fR script.
.PP
The second service,
having programs \fIimisc\fR and \fIros.imisc\fR,
is a small demo service supporting things like \fIfinger\fR, \fIwho\fR and
so forth.
.PP
There are additional programs in the \fBothers/\fR directory.
These aren't integral parts of the system and assume that the ISODE is already
installed.
Use at your own discretion.
.SH "REGISTERING OSI APPLICATION SERVICES"
.PP
Earlier releases of the ISODE relied on static tables to keep track of
the OSI application services offered on an end-system.
This is a problematic exercise in keeping local and remote tables synchronized.
In this release of the ISODE,
the OSI Directory can be used to manage this information,
thereby automating the synchronization process.
.SS "Preparation"
.PP
Once you have installed the ISODE, you must bring up a DSA.
The procedures for doing this varies, depending on your location;
consult the section "Setting up an Initial DSA" in Volume 5 of the
\fIUser's Manual\fR.
.PP
Once your DSA is running,
you should build the DMD for your organization.
Underneath the entry for your organization,
you should select an area where your end-system's application entities
will reside in the DIT.
For example,
the OSI application services available in PSI's Santa Clara office
reside somewhere under: 
.sp
.in +.5i
.nf
c=US
    @o=Performance Systems International	
    @ou=Research and Development
    @ou=Santa Clara
.fi
.in -.5i
.sp
Note that this area may very well be different than the value of the
\*(lqlocal_DIT\*(rq in your dsaptailor file.
In general,
all the end-systems at a site will have the same "local_DIT" value,
but each of those end-systems offering OSI application services will
place those services at a different portion in the DIT
(usually somewhere underneath the \*(lqlocal_DIT\*(rq value).
.PP
By convention, all the OSI application services offered by a given
end-system are placed in the same location in the DIT, under an
applicationProcess entry with the short name of the end-system,
e.g., \*(lqcn=cheetah\*(rq.
So, using the example above, the entry 
.sp
.in +.5i
.nf
c=US
    @o=Performance Systems International	
    @ou=Research and Development
    @ou=Santa Clara
    @cn=cheetah
.fi
.in -.5i
.sp
would contain all the entries of interest.
.SS "Once-only Installation"
.PP
The \fIbootsvc\fR script will generate a shell script that will create
an applicationProcess entry and then an entry for each of the OSI
services provided by the ISODE.
So,
you must first select the RDN for the applicationProcess entry.
.PP
Run \fIbootsvc\fR to create a script:
.sp
.in +.5i
.nf
% support/bootsvc <<aP-name>> > run.sh
.fi
.in -.5i
.sp
e.g.,
.sp
.in +.5i
.nf
% support/bootsvc cheetah > run.sh
.fi
.in -.5i
.PP
Note that the first line of this script is used to define the network
address where \fIiaed\fR listens for incoming connections.
By default,
only the address for the Internet community (RFC1006) is set.
If the end-system is configured for other OSI communities,
then this line should be changed accordingly, e.g.,
.sp
.in +.5i
.nf
A="Internet=`hostname`|NS+aabbcc"
.fi
.in -.5i
.PP
Next,
start \fIdish\fR in the background,
bound as the manager,
move to the location in the DIT where the services are to be
registered and run the script,
e.g.,
.sp
.in +.5i
.nf
% setenv DISHPROC "127.0.0.1 `expr $$ + 32768`"
% bind -u <<DN of DSA Manager>>
% moveto "ou=Research and Development@ou=Santa Clara"
% sh run.sh
.fi
.in -.5i
.sp
.PP
Following this,
you need to arrange for \fIiaed\fR rather than \fItsapd\fR to run when
the machine goes multi\-user.
On Berkeley UNIX systems, replace these lines to the \fB/etc/rc.local\fR file:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)tsapd ]; then
    $(SBINDIR)tsapd & (echo \-n ' tsap') > /dev/console
fi
.fi
.in -.5i
.sp
with:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)iaed ]; then
    $(SBINDIR)iaed -D 'ou=Research and ...@cn=services' &
    (echo \-n ' iae') > /dev/console
fi
.fi
.in -.5i
.sp
On other systems, a similar procedure is followed.
.PP
When \fIiaed\fR starts,
it will connect to the Directory,
find the services contained therein,
and start listening as appropriate.
.PP
Finally,
when the Directory software was installed,
this included a program called \fIdased\fR.
If you have not already done so,
edit the \fB$(ETCDIR)isotailor\fR file to have these two lines:
.sp
.in +.5i
.nf
ns_enable: on
ns_address: Internet=domain-name+17006
.fi
.in -.5i
.sp
where \*(lqdomain-name\*(rq is the DNS name or IP-address of the
machine which is running \fIdased\fR.
This can be a different machine than the one running the DSA,
but it's probably best to have the local DSA and \fIdased\fR running
on the same machine.
.PP
Next,
arrange for \fIdased\fR to be started when the machine goes multi-user.
On Berkeley UNIX systems, add these lines to the \fB/etc/rc.local\fR file:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)dased ]; then
    $(SBINDIR)dased & (echo \-n ' dase') > /dev/console
fi
.fi
.in -.5i
.sp
On other systems, a similar procedure is followed.
.PP
When \fIdased\fR starts,
it will listen for incoming connections from initiator ISODE programs.
(By default,
the initiator programs aren't loaded with the user-friendly
nameservice and the DAP, owing to the code size--instead, they talk to
\fIdased\fR.) 
.PP
For your other systems,
edit the \fB$(ETCDIR)isotailor\fR file to have these two lines:
.sp
.in +.5i
.nf
ns_enable: on
ns_address: Internet=domain-name+17006
.fi
.in -.5i
.sp
where \*(lqdomain-name\*(rq is the DNS name or IP-address of the
machine which is running \fIdased\fR.
.PP
To test the system:
.sp
.in +.5i
.nf
% isode-test -iaed
.fi
.in -.5i
.sp
If all goes well,
users should be able to type things such as
.sp
.in +.5i
.nf
% ftam cheetah,sc,psi,us
.fi
.in -.5i
.sp
and \*(lqthe right thing\*(rq will happen
(i.e.,
local users can access remote services,
even if they have not been entered into the entities database).
.SS "Adding New Services"
.PP
The installation procedures need be performed only once.
If you decide to disable a service,
simply remove the corresponding entry from the Directory.
To add a new service,
see the Section \*(lqDefining New Services\*(rq in the \fIUser's Manual\fR.
.SH "FTAM/FTP gateway"
.PP
Because the FTAM/FTP gateway is meant to appear as an FTAM entity,
the entry for this service must be placed in a different portion of
the DIT than the regular FTAM service.
As such, the \fIbootsvc\fR script will not install this service.
.PP
Hence,
if you wish to run such a service, you will have to install it manually.
The entry might be something like this:
.sp
.in +.5i
.nf
objectClass= top & quipuObject &\
            applicationEntity & iSODEApplicationEntity
cn= <<whatever you want>>
presentationAddress= <<unique transport selector>>/<<end-system's NSAP>>
supportedApplicationContext= iso ftam
acl=
execVector= iso.ftam-ftp
.fi
.in -.5i
.sp
Look in your part of the Directory to see some examples of what these
entries look like.
.SH "FILE TRANSER, ACCESS AND MANAGEMENT"
In addition,
if you are running the ISODE on a Berkeley or AT&T System V UNIX system,
then there is also an implementation of the ISO FTAM.
FTAM, which stands for File Transfer, Access and Management,
is the OSI file service.
The implementation provided is fairly complete in the context of
the particular file services it offers.
It is a minimal implementation in as much as it offers only four core
services: transfer of text files,
transfer of binary files,
directory listings,
and file management.
.PP
To generate FTAM, go to the \fB\*(VD\fR directory and type:
.sp
.in +.5i
.nf
% ./make all-ftam
.fi
.in -.5i
.sp
.PP
This will cause a complete generation of the FTAM libraries and programs.
If all goes well, proceed with the installation.
If not, complain as there \*(lqshould be no problems\*(rq at this step.
.PP
You will need to be the super-user to install FTAM:
.sp
.in +.5i
.nf
# ./make install\-ftam
.fi
.in -.5i
.sp
That's about it.
This will install everything and then clean\-up the source tree.
Note that if you are planning on generating or installing the FTAM/FTP
gateway (described below),
then you should not clean-up the source tree until after you are
finished dealing with the gateway.
In this case,
or if you just want an installation and no clean\-up, then use:
.sp
.in +.5i
.nf
# ./make inst\-ftam
.fi
.in -.5i
.sp
instead.
.SH "FTAM/FTP GATEWAY"
In addition,
if you are running the ISODE on a Berkeley or AT&T System V UNIX system,
there is also an implementation of an FTAM/FTP application gateway.
The gateway is actually two programs:
one which acts as an ftam responder and an ftp client,
and the other which acts as an ftp server and an ftam initiator.
Note that the gateway currently resides at a different location
than the standard FTAM responder and FTP server.
(This may be corrected in a future release.)
Read the manual entries for \fIftamd-ftp\fR\0(8c) and
\fIftpd-ftam\fR\0(8c) for the details.
.PP
To generate the FTAM/FTAP gateway, go to the \fB\*(VD\fR directory and type:
.sp
.in +.5i
.nf
% ./make all-ftam-ftp
.fi
.in -.5i
.sp
.PP
This will cause a complete generation of the gateway.
If all goes well, proceed with the installation.
If not, complain as there \*(lqshould be no problems\*(rq at this step.
.PP
You will need to be the super-user to install the FTAM/FTP gateway:
.sp
.in +.5i
.nf
# ./make install\-ftam-ftp
.fi
.in -.5i
.sp
This will install everything and then clean\-up the source tree.
If you just want an installation and no clean\-up, then use:
.sp
.in +.5i
.nf
# ./make inst\-ftam-ftp
.fi
.in -.5i
.sp
instead.
.PP
Regardless of the command you use,
on 4.2BSD-derived systems, add this line to your \fB/etc/servers\fR file:
.sp
.in +.5i
.nf
ftp-ftam\0\0tcp\0\0$(SBINDIR)in.ftpd-ftam
.fi
.in -.5i
.sp
On 4.3BSD-derived systems, add this line to your \fB/etc/inetd.conf\fR file:
.sp
.in +.5i
.nf
ftp-ftam\0\0stream\0\0tcp\0\0nowait\0\0root\0\0$(SBINDIR)in.ftpd-ftam\0\0in.ftpd-ftam
.fi
.in -.5i
.sp
.PP
Finally,
add this line to your \fB/etc/services\fR file:
.sp
.in +.5i
.nf
ftp-ftam		531/tcp
.fi
.in -.5i
.SH "VIRTUAL TERMINAL"
In addition,
if you are running the ISODE on a Berkeley UNIX system,
there is also an implementation of the ISO VT.
VT is the OSI terminal service.
The implementation provided is roughly comparable to an average telnet
implementation.
.PP
To generate the VT system, go to the \fB\*(VD\fR directory and type:
.sp
.in +.5i
.nf
% ./make all-vt
.fi
.in -.5i
.sp
.PP
This will cause a complete generation of the VT initiator and
responder programs.
If all goes well, proceed with the installation.
If not, complain as there \*(lqshould be no problems\*(rq at this step.
.PP
You will need to be the super-user to install VT:
.sp
.in +.5i
.nf
# ./make install\-vt
.fi
.in -.5i
.sp
That's about it.
This will install everything and then clean\-up the source tree.
If you just want an installation and no clean\-up, then use:
.sp
.in +.5i
.nf
# ./make inst\-vt
.fi
.in -.5i
.sp
instead.
.SH "DIRECTORY SERVICES"
In addition,
if you are running the ISODE on a Berkeley UNIX or AT&T System V UNIX system,
there is also an implementation of the OSI Directory, called QUIPU.
If you're not interested in running a Directory,
skip this text and go to the section entitled \fBGENERATING
DOCUMENTATION\fR.
.PP
Each host using the OSI directory implicitly runs a 
Directory User Agent (DUA).
Additionally,
you may wish to run a Directory System Agent (DSA) on some hosts.
As such,
the instructions which follow indicate which activities are necessary
in both instances, as appropriate.
.SS "QUIPU GENERATION"
To generate QUIPU, go to the \fB\*(VD\fR directory and type:
.sp
.in +.5i
.nf
% ./make all-quipu
.fi
.in -.5i
.sp
.PP
This will cause a complete generation of the DSAP library and the DSA.
If all goes well, proceed with the installation.
If not, complain as there \*(lqshould be no problems\*(rq at this step.
.SS "QUIPU INSTALLATION"
You will need to be the super-user to install QUIPU:
.sp
.in +.5i
.nf
# ./make install\-quipu
.fi
.in -.5i
.sp
This will install everything and then clean\-up the source tree.
If you just want an installation and no clean\-up, then use:
.sp
.in +.5i
.nf
# ./make inst\-quipu
.fi
.in -.5i
.sp
instead.
After either command,
there is one once-only activity.
.PP
The QUIPU DSA is a \*(lqstatic responder\*(rq.
This means that it accepts new associations and managing old ones as necessary.
Hence,
if you intend to run a local DSA,
it is necessary to start the \fIros.quipu\fR daemon when the
machine goes multi-user.
On Berkeley UNIX systems, add these lines to the \fB/etc/rc.local\fR file:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)ros.quipu ]; then
    (cd /usr/etc/quipu-db; $(SBINDIR)ros.quipu) &
    (echo \-n ' quipu') > /dev/console
fi
.fi
.in -.5i
.sp
(This assumes your database is in the directory \fB/usr/etc/quipu-db\fR - 
it need not be)
On other systems, a similar procedure is followed.
.SS "QUIPU DATABASE"
If you intend to run a local DSA,
then you will need to build a Directory database.
(If you are already running QUIPU 5.0 or later,
then you've done this before and so you can skip to the next section
on \fBQUIPU TAILORING\fR.)
The database directory, by default, lives in the ETCDIR area
(usually \fB/usr/etc/\fR) under the name of \fBquipu-db/\fR.
Three prototype databases can be found in the directory
\fBothers/quipu/quipu-db/\fR.
These database files should be protected as they contain Directory passwords and
other sensitive information.  The DSA needs to be able to read this
information, and so performs a setuid on execution to the UID of the owner
of the database directory.
.PP
Now customize the chosen prototype database under \fB/usr/etc/quipu-db/\fR.  The
details of this database are explained in Volume 5 of the users manual.
However you should be able to derive a minimal database by following
the example structure defined for University College London in
the GB branch of the Directory tree.
Then delete the example structure for O=University College London.
.SS "QUIPU TAILORING"
If you choose to run a local DSA, now configure it.
The DSA tailors itself at runtime by reading the file \fB$(ETCDIR)quiputailor\fR.
A prototype of this file will be installed during the normal ISODE
installation process.
Only one entry in the file usually needs to be changed:
.sp
.in +.5i
.nf
mydsaname          CN=toucan
.fi
.in -.5i
.sp
Substitute the name of the DSA as it occurs in the Directory for
\*(lqCN=toucan\*(rq.
See \fIquiputailor\fR\0(5) for a description of the full range of
tailoring options in the \fB$(ETCDIR)quiputailor\fR file.
.PP
Now configure the various DUA programs.
These tailor themselves at runtime by reading the file
\fB$(ETCDIR)dsaptailor\fR.
A prototype of this file will be installed during the normal ISODE
installation process.
Only one entry in the file usually needs to be changed:
.sp
.in +.5i
.nf
dsa_address     toucan  localHost=17003
.fi
.in -.5i
.sp
Substitute the name of your \*(lqprimary\*(rq DSA for \*(lqtoucan\*(rq
and its corresponding presentation address for the
\*(lq'0101'H/Internet+...\*(rq string.
This information can be found in the Directory on the host which is
running the DSA.
.PP
Do not confuse the \fIdsa_address\fR used in this file with the
\fIns_address\fR used in the \fB$(ETCDIR)isotailor\fR file.
These are separate services and must live at different addresses.
See \fIquiputailor\fR\0(5) for a description of the full range of
tailoring options in the \fB$(ETCDIR)dsaptailor\fR file.
.SS "QUIPU ONCE-ONLY"
Having tailored QUIPU,
you can now start the DSA.
However, if you are already running QUIPU,
then you will need to kill and restart the QUIPU DSA.
.PP
Start the DSA now.
From the \fICShell\fR, the command might be:
.sp
.in +.5i
.nf
# $(SBINDIR)ros.quipu >& /dev/null
.fi
.in -.5i
.sp
The daemon will automatically detach.
If you do not redirect the daemon's standard\-error,
then it will not detach, instead printing messages as to what actions it
is taking.
.SH "NETWORK MANAGEMENT"
In addition,
if you are running the ISODE on a Berkeley UNIX system,
there is also an implementation of the SNMP.
Although this is not the OSI network management service,
Inasmuch as the continued survival of the Internet hinges on all nodes
becoming network manageable,
this package was developed using the ISODE and is being freely
distributed with releases of Berkeley UNIX.
.PP
It must be stressed that this package is not a complete network management
system.
In particular,
whilst \fIsnmpd\fR provides a minimal agent functionality,
there are no Network Operation Center (NOC) tools--\fIsnmpi\fR is a
debugging aid only.
.PP
To generate the SNMP system, go to the \fB\*(VD\fR directory and type:
.sp
.in +.5i
.nf
% ./make all-snmp
.fi
.in -.5i
.sp
.PP
This will cause a complete generation of the SNMP agent and the
minimal SNMP initiator program.
If all goes well, proceed with the installation.
If not, complain as there \*(lqshould be no problems\*(rq at this step.
.PP
There are two once\-only activities which must be performed prior to installation.
First,
check your \fB/etc/services\fR file,
and verify that these three lines are present:
.sp
.in +.5i
.nf
snmp			161/udp
snmp-trap		162/udp
smux			199/tcp
.fi
.in -.5i
.sp
If not, add them.
.PP
Second,
add these lines to the \fB/etc/rc.local\fR file:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)snmpd ]; then
    $(SBINDIR)snmpd & (echo \-n ' snmp') > /dev/console
fi
if [ \-f $(SBINDIR)smux.unixd \-a \-f $(SBINDIR)snmpd ]; then
    $(SBINDIR)smux.unixd & (echo \-n ' smux-unix') > /dev/console
fi
.fi
.in -.5i
.sp
.PP
You will need to be the super-user to install SNMP:
.sp
.in +.5i
.nf
# ./make install\-snmp
.fi
.in -.5i
.sp
This will install everything and then clean\-up the source tree.
If you just want an installation and no clean\-up, then use:
.sp
.in +.5i
.nf
# ./make inst\-snmp
.fi
.in -.5i
.sp
instead.
.PP
Regardless of the command you use,
read the comments in the \fB$(ETCDIR)snmpd.rc\fR file which will tell
you how to tailor the agent for your installation.
.PP
Finally,
if you are already running the SNMP,
then you will need to kill and restart the \fIsnmpd\fR\0(8c) and SMUX
UNIX daemons.
(It is best to kill \fIsmux.unixd\fR first, and then \fIsnmpd\fR.)
Otherwise, start the daemons now.
From the \fICShell\fR, the command might be:
.sp
.in +.5i
.nf
# $(SBINDIR)snmpd >& /dev/null
# $(SBINDIR)smux.unixd >& /dev/null
.fi
.in -.5i
.sp
The daemon will automatically detach.
If you do not redirect the daemon's standard\-error,
then it will not detach, instead printing messages as to what actions it
is taking.
.SH "LIGHTWEIGHT PRESENTATION PROTOCOL"
In addition,
if you are running the ISODE on a Berkeley UNIX system,
there is also an implementation of RFC1085,
the lightweight presentation protocol for TCP/IP-based internets.
.PP
To generate the LPP system, go to the \fB\*(VD\fR directory and type:
.sp
.in +.5i
.nf
% ./make all\-lpp
.fi
.in -.5i
.sp
.PP
This will cause a complete generation of the LPP library and support programs.
If all goes well, proceed with the installation.
If not, complain as there \*(lqshould be no problems\*(rq at this step.
.PP
You will need to be the super-user to install the LPP system.
There are two kinds of activities:
once\-only activities that you perform the first time the software is 
installed;
and each\-time activities that you perform every time the software is
installed.
.PP
The first once\-only activity is to verify that the \fIlppd\fR daemon will be
run when the machine goes multi\-user.
On Berkeley UNIX systems, add these lines to the \fB/etc/rc.local\fR file:
.sp
.in +.5i
.nf
if [ \-f $(SBINDIR)lppd ]; then
    $(SBINDIR)lppd & (echo \-n ' lpp') > /dev/console
fi
.fi
.in -.5i
.sp
On other systems, a similar procedure is followed.
.PP
The next once\-only activity is to verify that systems with a native
\fB/etc/services\fR file contain an entry for the miscellany service.
This is used when the ISODE miscellaneous services is run using the LPP.
If not,
add the line:
.sp
.in +.5i
.nf
miscellany	17002/lpp
.fi
.in -.5i
.sp
to the \fB/etc/services\fR file.
If your system does not have such a file,
the software automatically compensates for this.
.PP
There are two each\-time activities:
.sp
.in +.5i
.nf
# ./make install\-lpp
.fi
.in -.5i
.sp
This will install everything and then clean\-up the source tree.
If you just want an installation and no clean\-up, then use:
.sp
.in +.5i
.nf
# ./make inst\-lpp
.fi
.in -.5i
.sp
instead.
.PP
Regardless of the command you use,
the second each\-time activity,
is that if you are already running the LPP system,
then you will need to kill and restart the \fIlppd\fR\0(8c) daemon,
otherwise incoming connections will not be initialized correctly.
Otherwise, start the daemon now.
From the \fICShell\fR, the command might be:
.sp
.in +.5i
.nf
# $(SBINDIR)lppd >& /dev/null
.fi
.in -.5i
.sp
The daemon will automatically detach.
If you do not redirect the daemon's standard\-error,
then it will not detach, instead printing messages as to what actions it
is taking.
.PP
That's about it.
.SH "GENERATING DOCUMENTATION"
The directory \fBdoc/\fR contains the documentation set for this release.
Consult the file \fBdoc/READ\-ME\fR for a description of each document.
The directory \fBdoc/ps/\fR contains PostScript versions of each document.
Usually it is easier to print the files in this directory than
generate the documentation from scratch as
the sources to these documents are in either LaTeX (for papers)
or SLiTeX (for presentations).
.PP
If you received this distribution from the network,
then the directory \fBdoc/ps/\fR does not contain any PostScript files.
There should be a separate compressed \fItar\fR file,
containing only PostScript files,
available on the machine where you retrieved this distribution.
.SH FILES
Too numerous to mention.
Honest.
.SH "SEE ALSO"
\fIThe ISO Development Environment: User's Manual\fR
.SH AUTHOR
Marshall T. Rose
.br
with assistance from a cast of thousands
(read the \fBPreface\fR in the \fIUser's Manual\fR)