03.12.2012 Views

Introduction to Free Software - SELF | Sharing Knowledge about ...

Introduction to Free Software - SELF | Sharing Knowledge about ...

Introduction to Free Software - SELF | Sharing Knowledge about ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • P07/M2101/02709 116 <strong>Free</strong> <strong>Software</strong><br />

8.5.1. CVS<br />

CVS (Concurrent Version System) is an optimistic source management system<br />

designed <strong>to</strong>wards the end of the eighties and used by the vast majority of<br />

free projects (Concurrent Version System [20], Open source code development<br />

with CVS, 2 nd edition) [113], "The Internet standards process", 3 rd revision[95]).<br />

It uses a central reposi<strong>to</strong>ry accessed through a client/server system. The site<br />

administra<strong>to</strong>r decides who has access <strong>to</strong> the reposi<strong>to</strong>ry, or <strong>to</strong> which parts of the<br />

reposi<strong>to</strong>ry, although normally, once a developer has been admitted within the<br />

circle of trust, he will have acess <strong>to</strong> all files. Anonymous access, in read-only<br />

mode, may also be allowed for anyone.<br />

The anonymous collabora<strong>to</strong>r<br />

The anonymous CVS is a vital <strong>to</strong>ol for fulfilling the "release early and often"<br />

concept advocated by Eric Raymond. Any user anxious <strong>to</strong> try the latest version<br />

of a program can extract it from the CVS, discover bugs and communicate<br />

them, even in the form of patches with the correction. And can examine the<br />

full his<strong>to</strong>ry of the development.<br />

Let's look at a bit of the mechanics. An advanced user wishes <strong>to</strong> obtain the<br />

latest version of the module mod from an anonymously accessible reposi<strong>to</strong>ry<br />

in progs.org, direc<strong>to</strong>ry /var/lib/cvs and pro<strong>to</strong>col pserver. The first<br />

time he will declare his intention <strong>to</strong> enter:<br />

cvs -d:pserver:anonymous@progs.org:/var/lib/cvs login<br />

If a password is requested, it will be anonymous user (usually the carriage<br />

return), which will be registered in a local file (this operation is not really<br />

necessary for anonymous access, but the program will complain if the file with<br />

the password does not exist). Next, the important thing is obtain the first copy<br />

of the module:<br />

cvs -d:pserver:anonymous@progs.org:/var/lib/cvs co mod<br />

This will create a direc<strong>to</strong>ry mod with all of the module's files and direc<strong>to</strong>ries<br />

and some metadata (contents in subdirec<strong>to</strong>ries called CVS), which will allow,<br />

among other things, not having <strong>to</strong> repeat the information already provided.<br />

Our advanced user will enter the created direc<strong>to</strong>ry, generate the package and<br />

test:<br />

cd mod ./configure make make install ...<br />

When he wishes <strong>to</strong> obtain a new version, he will simply update his copy wit-<br />

hin mod.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!