[OpenBSD]

CVSync


Table of Contents


What Is CVSync?

CVSync is a software package for distributing and updating source trees from a master cvs(1) repository on a remote server host. The OpenBSD sources are maintained in a CVS repository on a central development machine in Canada. With CVSync, OpenBSD users can easily keep their own source trees up to date.

CVSync uses the so-called pull model of updating. Under the pull model, each client asks the server for updates, if and when they are wanted. The server waits passively for update requests from its clients. Thus all updates are instigated by the client. The server never sends unsolicited updates. Users must either run the CVSync client manually to get an update, or they must set up a cron(8) job to run it automatically on a regular basis.

The term CVSync, capitalized just so, refers to the entire software package. Its main components are the client cvsync which runs on each user's machine, and the server cvsyncd which runs at each of the OpenBSD CVSync mirror sites.

CVSync is intended to be both faster and more flexible than sup(1) and CVSup.

The OpenBSD Project currently has five main source repositories:

What Is CVS?

CVS is the source code control system used to manage the OpenBSD source tree. It is described in more detail here. Note that CVS and CVSync are entirely different programs. Although CVS can be used for remote file access, it is not optimized for wholesale source tree distribution over the net, and CVSync can be easily an order of magnitude more efficient for this task.

Getting Started Using CVSync

If you only care about running CVSync, it is recommended that you download the cvsync package from the ftp mirror sites instead of building your own from the net/cvsync port.

For further information about CVSync, see the project homepage.

In order to mirror the OpenBSD repository with CVSync, the following configuration file might be used:

	config {
	    hostname anoncvs.de.openbsd.org
	    # If your network link is a T1 or faster, comment out the following line.
	    compress
	    collection {
		name openbsd release rcs
		prefix /cvs
		umask 002
	    }
	}

This directs cvsync to refresh all OpenBSD distributions from anoncvs.de.openbsd.org with a umask(2) that permits group write permission to the local repository.

Assuming this file is saved as cvs-syncfile, the following command would be used to invoke cvsync

        cvsync -c cvs-syncfile

Using CVS to Update Your Source Tree

It is now simple to check out any one of the CVSync'ed repositories:

        # cd /usr
        # cvs -d /cvs checkout src

The above will check out the most current sources. Many of you will only want the release sources, especially if you are patching your system. To checkout release sources you must specify a tag along with your command. For example:

        # cd /usr
        # cvs -d /cvs checkout -rOPENBSD_3_5 src

Or OPENBSD_3_4 for 3.4, etc.

Available CVSync Servers

The following CVSync servers are available:

Note: If your server is listed on here with inaccurate or unknown information, please contact beck@openbsd.org or naddy@openbsd.org

You may want to use traceroute(8) to find out which server is nearest you. Problems with a server should be reported to the maintainer of the server in question.

As of August 21, 2006, the CVS repository sizes are

openbsd-ports - 222MB
openbsd-src - 1396MB
openbsd-www - 247MB
openbsd-x11 - 200MB
openbsd-xf4 - 562MB
openbsd-cvsroot - 408MB

The overall repository size currently increases at a rate of about 400MB per annum.

IMPORTANT NOTE: There are a few issues relating to cryptographic software that everyone should be aware of:

The OpenBSD project is looking for more CVSync servers -- if you are interested, please contact Christian Weisgerber for configuration details.


OpenBSD www@openbsd.org
$OpenBSD: cvsync.html,v 1.38 2006/09/04 15:15:01 grunk Exp $