Differences between revisions 14 and 15
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#acl AdminGroup:read,write,delete,revert GrahamWideman:read PedroOliveira:read MorganHough:read All:
Line 4: Line 2:

== Usage ==
Line 37: Line 33:
== Maintenance ==
This section documents how the read-only CVS server was setup. It is intended for Martinos Center developers.

A VM named fsvm was setup on surfer, which implements an instance of Linux Centos to appear on the web as fsvm.nmr.mgh.harvard.edu. On this virtual machine, in the directory {{{/usr/fscvsroot}}}, there is a copy of the real (read/write) CVSROOT (which is found on the NMR NFS network). The cvs pserver functionality is used to serve this repository copy. That was setup by creating a file called {{{cvspserver}}} in the directory {{{/etc/xinetd.d}}}, where the file contains:
{{{
service cvspserver
{
 port = 2401
 socket_type = stream
 protocol = tcp
 wait = no
 user = root
 passenv = PATH
 server = /usr/bin/cvs
 server_args = -f --allow-root=/usr/fscvsroot pserver
}
}}}
If that is ever changed, you will need to type {{{service xinetd reload}}} to restart that service.

Now, how does the copy of the real CVS get from its location on the NMR network to fsvm? That is performed via two cronjobs. One is run as 'nicks', on the machine 'minerva', which runs the script {{{/space/freesurfer/build/scripts/cp_fscvs}}}, which tars the real CVSROOT, excluding the files we don't want to make public, and deposits that file in {{{/space/outgoing/fsdev/nicks/tmp}}}. This is run every night at 2:00AM (and another cronjob at 3:00AM deletes the file). Then, on fsvm, a 'nicks' cronjob, run at 2:10AM every night, runs the script {{{/usr/fscvsroot/update_fscvs}}}, which wget's the tarball from that publicly accessible temp directory to /usr/fscvsroot and untars it. Also on fsvm, the files {{{/usr/fscvsroot/CVSROOT/readers and passwd}}} specify the valid usernames. The {{{update_fscvs}}} script creates these files containing only the username 'anonymous'.
See also [[ReadOnlyCVSadmin|admin notes]].

Access the read-only CVS source-code repository

To check-out a copy of the main 'dev' (development) trunk, type this:

cvs -d :pserver:anonymous@fsvm.nmr.mgh.harvard.edu:/usr/fscvsroot login

press Enter when prompted for the password (there isn't one). Then type:

cvs -d :pserver:anonymous@fsvm.nmr.mgh.harvard.edu:/usr/fscvsroot checkout dev

This will begin the download of the source-code trunk, creating a directory named 'dev'.

To get a copy of the current 'stable' branch (the code used to build the public release), insert '-r stable4' before 'dev' in the second command, like this:

cvs -d :pserver:anonymous@fsvm.nmr.mgh.harvard.edu:/usr/fscvsroot checkout -r stable4 dev

Note that this will also create a directory named 'dev', so you should probably create a directory named 'stable4', cd to that, and then do the checkout.

Build instructions are found in the DevelopersGuide, but in any case, you will first need to type this:

cd dev
./setup_configure

which will setup the autoconf and automake files for your platform. You need only do this once (or whenever you change configure.in).

The DevelopersGuide will describe how to need to configure, make, and make install.

Remember that cvs will cache the location of CVSROOT (the 'pserver' string from above), so to perform an update, you need only type:

cvs update -d

See also admin notes.