SML/NJ Project Howto

This is a collection of hints and pointers to help new users of SourceForge and CVS to use the facilities of the SML/NJ project. For general information on using SourceForge, see the SourceForge Documentation Manager and the "Getting Started with SourcForge" link on that page under the heading "General Documentation".

Note: loginname stands for the SourceForge user login name.

Project directory

The SML/NJ project directory path is:
   /home/groups/s/sm/smlnj/
This directory contains subdirectories htdocs and cgi-bin.

Login to sourceforge user account

   ssh -l loginname smlnj.sourceforge.net
Your home directory will look something like: /home/users/m/ma/macqueen.

Setting up CVS access

  1. In your user Account Maintenance page, go to "Shell Account Information" and click [Edit Keys] next to "CVS/SSH Shared Keys". Insert contents of ~/.ssh/identity.pub file on your local machine into the text box. Make sure that when you cut and paste your key that it remains a single line of text! Sometimes spurious line breaks are added when your key is printed, and these will prevent CVS from working. You can verify that it worked by checking the contents of the .ssh/authorized_keys file in your SourceForge home directory.

  2. Set CVS_RSH:
         export CVS_RSH=ssh
    
  3. Run ssh-agent and ssh-add for convenience, to avoid having to repeatedly type in your ssh passphrase or SourceForge password:
         eval `ssh-agent`
         ssh-add -p <<EOF
         your pass phrase
         EOF
    
    These last three commands can be, and probably should be, added to your .profile or .login file. "your pass phrase" refers to the pass phrase that you gave when you created your ssh identity files with ssh-keygen. Note that some versions of ssh do not support the -p flag, in which case you will have to run ssh-add interactively and type in your pass phrase. Unfortunately, the version of ssh available on the SourceForge shell servers is one of these.
  4. Set CVSROOT:
         export CVSROOT=@cvs.smlnj.sourceforge.net:/cvsroot/smlnj
    
  5. Execute cvs commands (without needing -d arguments, passwords, or pass phrases), e.g.:
         cvs update bugs
    

Updating web pages

You can copy an individual html source file (localfile) to the smlnj sourceforge site by executing a command like:
   scp localfile loginname@smlnj.sourceforge.net:/home/groups/s/sm/smlnj/htdocs/
However, updating the site web pages should be done by working on a checked-out copy of the web pages (module "pages" in the project CVS repository).

Then to actually update the pages, you login to your SourceForge account and do

   cd /home/groups/s/sm/smlnj/htdocs
   ... set up cvs ...
   export CVSROOT=@cvs.smlnj.sourceforge.net:/cvsroot/smlnj
   cvs update pages
In order to do the cvs operations on your SourceForge shell server, it is a good idea to run ssh-keygen there to generate a new ssh key, and then add that key to the end of your .ssh/authorized_keys file. You can also define CVS_RSH and run ssh-agent in your .profile at SourceForge to make things simpler. Since the ssh at SourceForge does not appear to accept a pass phrase on standard input, you'll have to run ssh-add interactively after you log in.


Dave MacQueen
Last modified: Wed Feb 21 14:10:48 EST 2001