GNU-Savannah Users Guide (Concise)

back
Introduction

The project, being hosted at savannah.gnu.org, requires some preparations and a certain set of skills to enable you to participate in the development. This is not only for you, the novice, but to serve as a reminder notes to me as well for I needed to prepare my environment couple of times from scratch. Reconstructing the steps this time, I decided to prepare this page for the public.

IMPORTANT: For you to participate in a project you should ask the project administrator to add you to the list of the developers!

--petar marinov (jun-2002)

savannah.gnu.org

Go to http://savannah.gnu.org/ and register as an user (follow the link "New User via SSL").

Cygwin

The initial work on the editor started with VisualC. While now it is partially developed on GNU/Linux, I still prefer the debugger of VisualC for the development of the platform independent portions. savannah.gnu.org requires the secure shell (ssh) and CVS in order for the developers to connect and operate their projects on the server. Luckily the Cygwin project provides a complete set of the Unix tools.

Cygwin website: http://sources.redhat.com/cygwin/

Prior downloading and installing Cygwin, I recomend you to create a new user account in Windows (NT, 2000 or XP) with the exact login name you selected to register on savannah.gnu.org. Under this login install the Cygwin package.

When you install Cygwin, select the secure shell (ssh) and CVS as part of the setup (they are not part of the default installation).

The sections bellow are valid for Cygwin as well as any Unix shell.

How to make DEL work in Bash under Cygwin
By default the DEL keys doesn't work as expected. To fix this edit your ~/.inputrc file to look like this:
lotzmana@safe$ cat ~/.inputrc
"\M-[3~":       delete-char
Restart bash after this.
Secure shell (ssh)

The secure shell is used by CVS in order to connect and commit any data to the server.

The secure shell should be configured to operate exclusively with protocol 2. Edit your configuration file:

lotzmana@safe$ cat ~/.ssh/config
Protocol 2

You need to generate the keys first, so execute "ssh-keygen -t dsa". An example session will look like this:

lotzmana@safe$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/lotzmana/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_dsa.
Your public key has been saved in id_dsa.pub.
The key fingerprint is:
4d:76:... lotzmana@safe

Your public keys should be uploaded to the server. You need to open the "id_dsa.pub" file with an editor (preferably WW), select the entire file and copy it into the clipboard.

Go and login on the savannah server ("Login via SSL"). Then select "Account Maintanance". At the bottom is the section "Shell Account Information" where via the "[Edit Keys]" link we get to the "CVS/SSH Shared Keys" page. You should paste the content of the clipboard (which should be the identity.pub file) into the edit box on this page and by pressing "Update" you are set with the secure keys which the server will use to chalange your authentication when you try to login via ssh.

Using ssh

Your public key is already on the server. CVS uses ssh for all the transport, where the secure shell is not directly executed by you. It is instead executed every time you invoke CVS.

To make your private keys available to ssh, we run a resident program ssh-agent. ssh-agent becomes resident by executing another program and it remains active until the spawned program is running. This program is usually the shell, in my case bash or the contents of the $SHELL variable.

Once having the agent running, we execute sh-add to add keys to the list of resident ssh-agent.

My session looks like this:

lotzmana@safe$ ssh-agent $SHELL

lotzmana@safe$ ssh-add
Enter passphrase for /home/lotzmana/.ssh/id_dsa:
Identity added: /home/lotzmana/.ssh/id_dsa (/home/lotzmana/.ssh/id_dsa)

lotzmana@safe$ ssh-add -l
1024 5a:c6:... /home/lotzmana/.ssh/id_dsa (DSA)
Start using CVS

Configure the CVS to use ssh instead of the default rsh.

lotzmana@safe$ export CVS_RSH=ssh

Now we are ready to issue CVScommands. On a new machine it is a good start to extract the entire source tree from the server. An example session is shown below.

lotzmana@safe$ mkdir test
lotzmana@safe$ cd test
lotzmana@safe$ cvs -z3 -d lotzmana@subversions.gnu.org:/cvsroot/ww-tedit co ww-tedit
The authenticity of host 'subversions.gnu.org (199.232.41.3)' can't be established.
RSA key fingerprint is 80:5a:b0:0c:ec:93:66:29:49:7e:04:2b:fd:ba:2c:d5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'subversions.gnu.org,199.232.41.3' (RSA) to the list of known hosts.
cvs server: Updating ww-tedit
U ww-tedit/COPYING
U ww-tedit/ChangeLog
U ww-tedit/Makefile
U ww-tedit/NEWS
U ww-tedit/README
....
To avoid typing the long -d option we may specity the CVSROOT environment variable like this:
lotzmana@safe$ export CVSROOT="lotzmana@subversions.gnu.org:/cvsroot/ww-tedit"
CVS documentation

For understanding CVS I bought myself "Open Source Development With CVS", by Karl Fogel and Mosche Bar (ISBN 1-58880-173-X). Part of the book is available under the GPL license and is accessible from the web.

Find the books here: http://cvsbook.red-bean.com/cvsbook.html. Unfortunately, the whole book appears in a single HTML page, so be patient on a slow internet connection.

Notes about "ww.dsw" -- the VisualC project file

If extracted in cygwin-bash the project file will be in the Unix EOL format (LF). VisualC IDE fails to properly load such project files. You have to make sure the file is converted to DOS EOL (CR/LF) format.

last updated: jan-2004 | first version: jun-2002 | back