Skip to content

Cvsweb

$ doas pkg_add cvsweb

After installation, make sure to read /usr/local/share/doc/pkg-readmes/cvsweb

Then we need to set up a chroot for CVSweb in /var/www. You will

first need to install perl inside the chroot. Afterwards,

we run:

cp -p /usr/bin/{co,cvs,diff,perl,rcsdiff,rlog,uname} /var/www/usr/bin/
mkdir -p /var/www/cvs
chown $USER:commit /var/www/cvs

Sync the repos

$ openrsync -a --delete --rsync-path=/usr/bin/openrsync /CVS/ /var/www/cvs/

In crontab -e:

@daily  -s /usr/bin/openrsync -a --delete --rsync-path=/usr/bin/openrsync /CVS/ /var/www/cvs/

Configuration

cvsweb assumes it is running chrooted and the configuration file is

hard-coded to use /conf/cvsweb/cvsweb.conf. /var/www/conf/cvsweb/cvsweb.conf

will serve the repository /var/www/cvs/, which should contain CVSROOT

and the module directories.

Other repositories, each containing CVSROOT and modules, can

be added to the @CVSrepositories array.

Add this to the end of /etc/httpd.conf:

server "example.com" {

listen on * port 80

location "/cgi-bin/*" {

    fastcgi

    root "/"

}

location match "/" {

    request rewrite "/cgi-bin/cvsweb"

}

location "/.well-known/acme-challenge/*" {

    root "/acme"

    request strip 2

}

}