Arthur de Jong

Open Source / Free Software developer

Installation instructions

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.

Setting up a read-only public pserver repository

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:

  • modify the passwd file
    add the users that should have access to the repository: users like 'anonymous' or 'anoncvs' probably without a password (you can use cvsd-passwd for that)
  • add an empty writers file
    if there is an empty writers file no users will have write access
  • remove the history file (optional)
    if you want to keep a log of all the transfers (checkouts, updates, etc) of your repository, you should leave this file and make sure it is writable by the cvsd user, otherwise remove it
  • modify config file
    add the line 'LockDir=/tmp/whatevername' to the config file so locks (even used for read-only access) will be written there (be sure to create a directory there that is writable by the cvsd user since locks and directories will be created there)

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.

My cvsd setup

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 original (working) repository is on my home machine
  • the read-only pserver repository is on tiefighter (remote machine)
  • I use rsync to update the repository on tiefighter

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.