This is the directory where you configure, compile, test, and install UNIX versions of the scotty extension for Tcl/Tk and the tkined network editor. This directory also contains source files specific to UNIX. The rest of this file contains instructions on how to do this. The release should compile and run either "out of the box" or with trivial changes on many UNIX-like systems. We know that it runs on workstations from Sun, H-P, DEC, IBM, and SGI, as well as PCs running Linux, BSDI, and SCO UNIX. 1. How To Compile And Install Scotty And Tkined: ------------------------------------------------ (a) Make sure you have Tcl7.5 and Tk4.1 installed on your system. This release will not work with earlier versions of Tcl/Tk. (b) Type "./configure". This runs a configuration script created by GNU autoconf, which configures scotty and tkined for your system and creates a Makefile. The configure script allows you to customize the scotty and tkined configuration for your site; for details on how you can do this, type "./configure -help" (c) Type "make". This will create dynamic loadable modules called "tnm.so" and "tkined.so" and a new Tcl interpreter called "scotty". (Note, the loadable modules may have different extensions on some UNIX systems.) (d) Type "make install" to install scotty and tkined binaries, modules and script files in standard places. You'll need write permission on the installation directories to do this. The installation directories are determined by the "configure" script and may be specified with the --prefix and --exec-prefix options to "configure". See the Makefile for information on what directories were chosen; you can override these choices by modifying the "prefix" and "exec-prefix" variables in the Makefile. (e) Type "make sinstall" to install the utility programs that require root privileges. Please consult your system administrator on how to do this. Root permissions are needed because these little programs need to open privileged sockets. The programs that need special permissions are very short so it is easy to verify that they do not cause security problems regarding your security policy. (f) Scotty and tkined installs as a dynamic loadable module. You have to make sure that the Tcl interpreter is able to find the modules on your system. There are two ways to achieve this goal: 1. You can use the Tcl environment variable TCLLIBPATH by setting it to the installation directories of the scotty and the tkined extension. If you use a sh compatible shell, just type: TCLLIBPATH="/usr/local/lib/tnm2.1.5 /usr/local/lib/tkined1.4.5" export TCLLIBPATH Users of a csh compatible shell have to type: setenv TCLLIBPATH "/usr/local/lib/tnm2.1.5 /usr/local/lib/tkined1.4.5" 2. You can edit the Tcl initialization file init.tcl usually found as /usr/local/lib/tcl7.5/init.tcl and append the scotty and tkined directories to the Tcl auto_path variable, e.g. if [file exists /usr/local/lib/tnm2.1.5] { lappend auto_path /usr/local/lib/tnm2.1.5 } if [file exists /usr/local/lib/tkined1.4.5] { lappend auto_path /usr/local/lib/tkined1.4.5 } The first solution is useful for testing and playing with the scotty extension. If you are going to use scotty regularly and if there are multiple users who will be using scotty, the second version might be easier to use and administrate. (g) At this point you can play with scotty and tkined by invoking the "scotty" or the "tkined" program and typing Tcl commands. If you have trouble compiling Tcl, read through the file" porting.notes". It contains information that people have provided about changes they had to make to compile Tcl in various environments. If you get Tcl running on a new configuration, we would be happy to receive new information to add to "porting.notes". We're also interested in hearing how to change the configuration setup so that Tcl compiles out of the box on more platforms. 2. Optional features: --------------------- This distribution also contains some optional features that not used on every site. (1) MULTICAST This version of the Tnm extension supports SNMP multicasts on operating systems that support UDP multicasts in the kernel. The configure script will automatically check whether your system supports multicasts. However, sometimes this test fails or you are not running your system on a multicast network all the time. It is therefore possible to disable multicast support by using the --disable-multicast configure option. (2) BONES This version can be configured to interact with a network configuration management database called bones. Starting with the 2.0 release, we implement the bones database on SQL server. The primary target is the freely available mini SQL (msql) backend written by David J. Hughes (Bambi@Bond.edu.au). It is available from Bond.edu.au [131.244.1.1] in /pub/Minerva/msql. The README in the bones directory contains further notes on how to setup the database. Note, it is possible to replace the msql backend by an oracle or sybase backend by using the appropriate Tcl SQL interface instead of msqltcl. To configure scotty to include msql support, you should use the --enable-msql configure option. The msql header file and the msql library are expected in the standard location (/usr/local/Minerva). You can specify different paths by using the --with-msql-include and --with-msql-library options. (3) CMIP This version contains a Tcl interface to the cmip protocol based on the OSIMIS implementation. It is based on the last public OSIMIS version 3.0p1 available from bells.cs.ucl.ac.uk. OSIMIS is based on ISODE and is very big (both source and the resulting binary). If someone knows about a smarter public cmip implementation, please let me know. To configure scotty for OSIMIS, you should use the --enable-cmip option. Note that you will have to edit cmip/Makefile since it will most likely contain paths that do not match you osimis installation. (4) GDMO This version contains a Tcl interface to access GDMO definition of OSI managed objects. An integrated parser can be used to load GDMO files and a Tcl command named gdmo provides access much the same way as the mib command of the SNMP extension. To configure scotty for GDMO support, you should use the --enable-gdmo option. The parser is build with flex and bison, but lex and yacc may also work.