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 and CVSup.
The OpenBSD Project currently has six main source repositories:
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.
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.eu.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.eu.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
Now that you have a local copy of the CVS repository, it is now simple to check out, update, or do any of the other CVS operations you would normally do against a remote repository, locally. For example:
cvs -d/cvs checkout -P src cvs -d/cvs up -Pd cvs -d/cvs diff -u file.cMore details on CVS operation can be found in FAQ5, Fetching appropriate source code and in the cvs(1) man page.
The following CVSync servers are available:
Note: If your server is listed on here with inaccurate or unknown information, please contact beck@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 2013, the CVS repository sizes are
openbsd-ports | - 679MB | |
openbsd-src | - 2044MB | |
openbsd-www | - 467MB | |
openbsd-xenocara | - 1140MB | |
openbsd-x11 | - 200MB | |
openbsd-xf4 | - 564MB | |
openbsd-cvsroot | - 1027MB |
The overall repository size currently increases at a rate of about 400MB per annum. The src repository increases by about 150MB.
IMPORTANT NOTE: There are a few issues relating to cryptographic software that everyone should be aware of:
The OpenBSD sources are from Canada. As researched by a Canadian individual and as described in the Export Control list of Canada, it is legal to export crypto software from Canada to the world.
However, if you are outside the USA or Canada, you should not fetch the cryptographic sections of the OpenBSD sources from a CVSync server located in the USA. The files in question are...
Because of the USA ITAR munitions list, crypto software may only be exported to Canada from the USA.