how to submit on an opensource project hosted at sourceforge ( cvs )

On of the great deals on sourceforge is its capabilities. It provides to the opensource developer 100mbyte of web space and unlimited cvs and file release data storage. It is simply an unbeatable offer. Of course you have to create opensource project in order to use its services.

I am working with sf for the wifiadmin project a project that some farseeing members of my wifi community started long ago. Wifiadmin is an open source GPLed piece of software that allows its user to do basic configuration to its interfaces. My vision is to integrate it with the pfsense another great piece of work based on FreeBSD as a wifi router. Before integrating these applications much development has to be done, and in source forge is being done with cvs (or svn) but in this article I will cover cvs. I gained much experience while contributing to an opensource project so it is quite an event and I insist that everyone should involve with something they like and give back some work hours to the community to help out everyone.

Enough with mumbling, lets get to business (note that we are referring to project wifiadmin. Replace it with the suitable project name that you are dealing with!)

In order to checkout the cvs sf tree the following operations are needed in your working console;

  1. export CVSROOT=:ext:user@wifiadmin.cvs.sourceforge.net:/cvsroot/wifiadmin
  2. export CVS_RSH=ssh
  3. ssh user@wifiadmin.cvs.sourceforge.net
  • login with your password
  • The cvs.sf server after your login should kick you out immediatly
  1. cvs -z3 -d:ext:ssh:user@wifiadmin.cvs.sourceforge.net:/cvsroot/wifiadmin co -P wifiadmin

Explanation of the steps; 1-2 steps make your life easier by using the env variables in order to type less the cvs commands. With 2 a simple cvs commit (instead of a cvs blablabla commit) should be sufficient later! With step number 3 you get the latest version as a local copy. STEPS 1-3 are one timers. Never do them again (except if you are interested in downloading again the cvs tree). We login @ cvs.sf server in order to create some important account files in order to be able to use our shell. Also one intresting part of the process is the ssh key authentication (to avoid the necessity to use passwords @ ssh) you can create an ssh key following these simple steps;

  1. First log in on A as user a and generate a pair of authentication keys. Do not enter a passphrase:
  2. a@A:~> ssh-keygen -t rsa
    1. Generating public/private rsa key pair.
    2. Enter file in which to save the key (/home/a/.ssh/id_rsa):
    3. Created directory ‘/home/a/.ssh’.
    4. Enter passphrase (empty for no passphrase):
    5. Enter same passphrase again:
    6. Your identification has been saved in /home/a/.ssh/id_rsa.
    7. Your public key has been saved in /home/a/.ssh/id_rsa.pub.
    8. The key fingerprint is:
      1. 3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A
  3. Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist, which is fine):
  4. a@A:~> ssh b@B mkdir -p .ssh
  5. b@B’s password:
  6. Finally append a’s new public key to b@B:.ssh/authorized_keys and enter b’s password one last time:
  7. a@A:~> cat .ssh/id_rsa.pub | ssh b@B ‘cat >> .ssh/authorized_keys’
  8. b@B’s password:
  9. From now on you can log into B as b from A as a without password:
  10. a@A:~> ssh b@B hostname

Edit the code at your files the submit the edited one with the call; cvs submit -m “blabla” where blabla denotes the reason for your actions (you may not use -m switch but things will roll smoother if you indicate with a simple comment why you did what!)

In order to remove an existing file you should do a cvs rm relative_path_from_cvs_root/filename and then do a cvs commit

In order to add a new file you can do a cvs add relative_path_from_cvs_root/filename and then do a cvs commit

In order to check if there are updates you have to do a cvs update

Hope it helps!

Leave a Comment

Name (required)

Mail (will not be published) (required)

Website

Comment