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 and CVSup.
The OpenBSD Project currently has six main source repositories:
- src - Houses all source code for the OpenBSD Operating System.
- ports - Houses the OpenBSD Ports.
- www - Houses all OpenBSD web pages (including this one).
- xenocara - Houses OpenBSD's active X.org v7 source tree.
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.
However, don't build your own copy from unmodified upstream source -
the port/package has been modified to support commitid which is now
used in the OpenBSD repository.
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
Using CVS to Work With Your Repository
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.c
More details on CVS operation can be found in
FAQ5, Fetching appropriate source
code and in the
cvs(1)
man page.
Available CVSync Servers
The following CVSync servers are available:
- ftp5.eu.openbsd.org
Host also known as anga.funkfeuer.at.
Location: Vienna, Austria.
Maintained by Martin Reindl.
Updated hourly.
- anoncvs.comstyle.com
Location: Toronto, Canada.
Maintained by Brad Smith.
Updated hourly.
- openbsd.cs.toronto.edu
Location: University of Toronto, Toronto, ON, Canada.
Maintained by Nick Holland.
Updated every 2 hours.
- anoncvs.fr.openbsd.org
Location: Paris, France.
Maintained by Landry Breuil, Antoine Jacoutot.
Updated every 2 hours from anoncvs1.ca.openbsd.org.
- mirror.osn.de
Location: Nürnberg, Germany.
Maintained by Armin Wolfermann.
Updated every 3 hours.
- ftp.hostserver.de
Location: Frankfurt, Germany.
Maintained by Sebastian Benoit, Florian Obser.
Updated hourly from anoncvs1.ca.openbsd.org.
- cvsync.allbsd.org
Location: Tokyo, Japan.
Maintained by Hiroki Sato.
- anoncvs.eu.openbsd.org
Location: Stockholm University, Stockholm, Sweden.
Maintained by Janne Johansson.
Updated every 2 hours.
- anoncvs.spacehopper.org
Location: London, United Kingdom.
Maintained by Stuart Henderson.
Updated hourly from anoncvs.ca.openbsd.org.
- anoncvs3.usa.openbsd.org
Location: National Center for Atmospheric Research, Boulder, CO, USA.
Maintained by Todd C. Miller.
Updated hourly.
- anoncvs4.usa.openbsd.org
Host also known as anoncvs4.usa.openbsd.org.
Location: New York Internet, New York, NY, USA.
Maintained by Todd C. Miller.
Updated hourly.
- anoncvs2.usa.openbsd.org
Host also known as anoncvs2.usa.openbsd.org.
Location: Rochester Institute of Technology, Rochester, NY, USA.
Maintained by Todd C. Miller.
Updated hourly.
- anoncvs1.usa.openbsd.org
Host also known as anoncvs.usa.openbsd.org, anoncvs1.usa.openbsd.org.
Location: Network Media, LLC, Bend, OR, USA.
Maintained by Todd C. Miller.
Updated hourly.
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 March 2016, the CVS repository sizes are
|
openbsd-ports |
- 857MB |
|
openbsd-src |
- 2201MB |
|
openbsd-www |
- 598MB |
|
openbsd-xenocara |
- 1426MB |
|
openbsd-cvsroot |
- 1248MB |
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...
- src/kerberosIV/*
- src/kerberosV/*
- src/lib/libdes/*
- src/lib/libc/crypt/crypt.c
- src/lib/libc/crypt/morecrypt.c
- src/sys/crypto
- src/sys/netinet
- src/usr.sbin/afs/src/rxkad/*
Because of the USA ITAR munitions list,
crypto software may only be exported to Canada from the USA.