Open Source / Free Software developer
Installation should be as simple as to download the .tar.gz file, unpack it, run './configure' (probably with something like '--prefix') do 'make' and 'make install'.
After that you should set up user and group ids for cvsd, create a chrooted filesystem and create repositories.
The complete installation instructions with extensive help for setting up users, the chroot jail and repositories are in the README.
For making a debian package run fakeroot debian/rules binary from the unpacked source directory.
The first step is of course to setup the cvsd tool. Very important step. Create the chroot jail, setup the cvsd user, etc (all in the README).
Next step is to create or copy a repository. If you want to create a new repository do 'cvs -d <directory> init', if you have an existing repository, you can copy it or use something like rsync to update it. If you copy the repository from a working repository you should take care not to overwrite the files in CVSROOT that you change below.
The cvsd user should have read access to the repository you made, but no write access. These modifications should be made to the files in the CVSROOT directory:
Add the name of the repository (relative to the RootJail) to the /etc/cvsd/cvsd.conf configuration file, (re)fire up the cvsd daemon and try it out.
You can have read-only access to the cvsd source through cvs pserver access as described in the download section. This is done (of course) by using cvsd. This section is meant as an example of setting up a relatively secure cvs pserver.
The commands I use to copy part of my local (/home/arthur/repos) repository to the remote repository are:
rsync --recursive --times --verbose --rsh=ssh --delete \
/home/arthur/repos/cvsd \
tiefighter:/var/lib/cvsd/arthur/
ssh tiefighter chmod -R a+rX,go-w /var/lib/cvsd/arthur/cvsd
Note that I do not update the remote CVSROOT directory since it contains config, passwd, writers and history files as described above and my local repository may include cvswrappers or other files not needed in the read-only repository.