Developer Instructions for installing of the Rover Toolkit

Note:The developer installation process requires login access to the Rover source CVS repository. If you do not have such access, you should follow these installation instructions.

Note: Make sure your system meets the Rover system requirements.


Rover source CVS repository

The Rover source CVS repository uses CVS for source code version control. You will need at least version 1.7 (available from ftp://prep.ai.mit.edu:/pub/gnu). Here is a local quick start guide to CVS commands.

The CVS syntax for checking out modules is:
cvs checkout module names

Note: A checkout will fail if the target directory already exists and is not a CVS directory. This will happen if you checkout and build the server source code before checking out the server RDOs, since building the source code will create the cgi-bin/rover directory. Thus, it is important to carefully follow the installation order listed below.

The CVSROOT environment variable specifies the location of the primary CVS repository, currently pdos.lcs.mit.edu . The source repository supports three access methods: ssh, Kerberos rsh, and NFS access. The most desired access method ssh. NFS access is not recommended.

ssh: On a remote machine (i.e., outside LCS or connected via dialup), do the following:

  1. Install the appropriate .shosts file on pdos (optional). If you don't install the file, you will have to type your password each time you use a CVS command (not a bad idea, in general).
  2. Acquire and add the pdos public host key (optional). The first time you use a CVS command, ssh will acquire the host key, however if you are paranoid about spoofing, you can acquire and add the host key manually.
  3. Set the CVS_RSH and CVSROOT environment variables:
    setenv CVS_RSH ssh
    setenv CVSROOT pdos.lcs.mit.edu:/home/am3/Rover/CVS
For more information about ssh, see the ssh home page.

Kerberos Rsh: On a remote machine (i.e., outside LCS or connected via dialup), do the following:

  1. Get valid LCS Kerberos tickets.
  2. Set the CVS_RSH and CVSROOT environment variables:
    setenv CVS_RSH KerberosRsh
    setenv CVSROOT pdos.lcs.mit.edu:/home/am3/Rover/CVS
For more information about Kerberos, see the LCS Kerberos page.

NFS: This is the least desirable option. NFS relies upon UDP and not all UDP implementations use UDP checksums. We have had problems with corruption of the repository when checking in changes over NFS. Do not use this alternative unless you are using a local Ethernet connection.

On a PDOS machine or a machine that can mount pdos.lcs.mit.edu, set the CVSROOT environment variable:
setenv CVSROOT /home/am3/Rover/CVS


Step-by-step instructions:

  1. Rover documentation (Optional).
  2. Rover server RDOs and libraries (Server).
  3. Rover server source code (Server).
  4. Rover common code (Server and Client).
  5. Rover access manager and client applications (Client).

The server files are the files that are required to install a Rover server. The client files are the files that are required to install a Rover client.

Note: It is very important that the installation directions are followed in the order listed above.

Note: Client applications may be built on the client architecture and then stored on the server.


Rover documentation

The Rover documentation should be installed under the httpd server's html directory (usually specified by the httpd server's DocumentRoot variable).

  1. Change into the the server's html directory:
    cd DocumentRoot
  2. Type cvs checkout RoverDoc
    This will create a rover directory containing
    this Rover documentation.
  3. Create an index link in the rover directory: cd rover
    ln -s rover.html index.html
  4. Create an index link in the LCS-ONLY directory:
    cd LCS-ONLY
    ln -s info.html index.html

    Note: For some Web servers (e.g., Apache), the FollowSymLinks option must be set.
  5. For MIT Rover use: Update the .htaccess file in the LCS-ONLY directory, if necessary.
    You should verify that the .htaccess file is correctly restricting access to the documentation to LCS machines. You can do this by trying to access the documentation from Athena using lynx (add infoagents)

Rover server RDOs

  1. Change into the the httpd/cgi-bin directory.
  2. Type: cvs checkout Objects
    This will create a rover directory containing the Rover server RDOs.
  3. Create the Rover library: cd rover; mkdir lib; cd lib
  4. Create links for the Tcl and Tk libraries:
    ln -s /usr/lib/tcl .
    ln -s /usr/lib/tk .

    The libraries may be located in other directories (e.g., /usr/uns/lib) or under version names (e.g., /usr/lib/tcl7.5 or /usr/lib/tk4.1). In the latter case, you should create links from the versioned names to the names without versions (i.e., ln -s /usr/lib/tcl7.5 tcl). Mail can be a link
  5. Checkout copies of the exmh, rexmh, and Webcal script libraries and link the libraries into the directory:
    cvs checkout exmh1.6.1 Mail Webcal
    ln -s Mail/Implementation rexmh
    ln -s Webcal ical
    cd Webcal
    ./configure --without-roverlib

    Note: The Webcal library must be configured, as the configuration process generates system specific Tcl scripts from general templates.

Rover server source code

  1. To build the Rover Server and server applications you will need a copy of the WWW LineMode browser. The browser is needed during the compilation of the Rover version of the WWW Common Library. A precompiled compressed Linux binary is here. Download the link as the file www_3.0pre2.gz, uncompress it in the /usr/local/bin directory, and make a link from the binary to www.
  2. Change into the the httpd/cgi-src directory. The directory may be different for other servers (e.g., Apache uses httpd/cgi-scripts).
  3. Type cvs checkout Sources
    This will create a rover directory containing the source code for the Rover server.
  4. Change into the new directory: cd rover
  5. Type cvs checkout zlib Common RoverFS
    This will create directories containing the source code for the Zlib compression library, the Common server and client code, and the RoverFS code..
  6. Set the server's unique identifier:
    echo "ServerID = x;" > RoverServerID.h ,
    where x is an identifier that is unique to this server with respect to all other Rover servers.
  7. Configure the server: ./configure
  8. Compile the server: make
  9. As root, install the executables: make install
  10. To use the SMTP proxy (needed by the Web browser proxy), you need to add the following lines to your /etc/aliases file:
    webcache: |<httpd directory>/cgi-bin/rover/rmcacheshell
    webserv: |<httpd directory>/cgi-bin/rover/rmgateshell
    
    On some platforms, it may be necessary to execute newaliases to rebuild the aliases database.
  11. To use the server in forked or standalone mode, follow the server usage instructions.

Rover access manager and client applications (rexmh, webcal, irolo, and WWW and NNTP browser proxies)

  1. To build the Rover Access Manager or Rover client applications you will need a copy of the WWW LineMode browser. The browser is needed during the compilation of the Rover version of the WWW Common Library. A precompiled compressed Linux binary is here. Download the link as the file www_3.0pre2.gz, uncompress it in the /usr/local/bin directory, and make a link from the binary to www.
  2. If the client machine's operating system supports shared libraries (e.g., Linux), you will need Tcl and Tk shared libraries. To reduce transmission time, cache size, and memory usage, Rover client applications are compiled with dynamic linking on those operating systems that support it.
    Note: Rover currently supports Tcl 7.3 and Tk 3.6 or later versions.
  3. Change into the the directory where the build directory will be located. Note: Applications may be built on the client architecture and then stored on the server.
  4. Type: cvs checkout WWW
    This will create a WWW directory containing the code for the Rover access manager and client applications.
  5. Change into the new directory: cd WWW
  6. Type cvs checkout zlib Common RoverFS
    This will create directories containing the source code for the Zlib compression library, the Common server and client code, and the RoverFS code.
  7. Compile the access manager and client applications: ./BUILD
  8. Compile Webcal: cd Webcal; ./configure; make; cd ..
  9. Create a ~/.rover-session-init default mappings file for Service to Server mappings in the access manager.
  10. Copy the client executables from the appropriate directories to the server and place them int the ~mosaic directory. Here is a list of the locations of the client executables when compiled and the desired target server directories: where arch is the name of the client machine architecture.
  11. Run Rover, starting the chooser: rover
  12. Note: The only build directory files needed on the client to run (as opposed to build) rover are the script WWW/rover and the access manager executable WWW/LineMode/arch/www. All other files may be deleted from the client to save disk space.
    Last updated by $Author: adj $ on $Date: 1997/12/01 23:41:32 $.
    Copyright © 1995-1998 Anthony D. Joseph and Massachusetts Institute of Technology