CVSup 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 CVSup, OpenBSD users can easily keep their own source trees up to date.
CVSup 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 CVSup 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 CVSup, capitalized just so, refers to the entire software package. Its main components are the client cvsup which runs on each user's machine, and the server cvsupd which runs at each of the OpenBSD CVSup mirror sites.
CVSup is intended to be both faster and more flexible than sup(1), CVSup's predecessor.
The OpenBSD Project currently has five 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 CVSup 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 CVSup can be easily an order of magnitude more efficient for this task.
Building CVSup from the sources is not for the fainthearted since it is written in Modula-3. Currently an OpenBSD port of Modula-3 (lang/pm3) is only available for the i386 platform, and it is a fairly large package. If you only care about running CVSup, it is recommended that you download the statically linked cvsup package from the ftp mirror sites instead of building your own from the net/cvsup port.
For further information about CVSup, see the author's project homepage.
In order to mirror the OpenBSD repository with CVSup, the following configuration file might be used:
# Defaults that apply to all the collections *default release=cvs *default delete use-rel-suffix *default umask=002 *default host=cvsup.uk.openbsd.org *default base=/cvs *default prefix=/cvs # If your network link is a T1 or faster, comment out the following line. *default compress OpenBSD-all #OpenBSD-src #OpenBSD-www #OpenBSD-ports #OpenBSD-x11 #OpenBSD-xf4
This directs cvsup to refresh all OpenBSD distributions from cvsup.uk.openbsd.org with a umask(2) that permits group write permission to the local repository.
Assuming this file is saved as cvs-supfile, the following command would be used to invoke the cvsup GUI:
cvsup cvs-supfile
whereas for batch mode, the following might be used:
cvsup -g -L 2 cvs-supfile
It is now simple to check out any one of the CVSup'ed repositories. For Korn/Bourne shells:
# cd /usr # CVSROOT=/cvs cvs checkout src
For csh and its derivatives:
# cd /usr # setenv CVSROOT /cvs # 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 checkout -rOPENBSD_2_9 src
Or OPENBSD_2_8 for 2.8, etc.
As an alternative to getting the repository and using CVS, you can run CVSup in checkout mode by adding a tag or date keyword to your supfile, either as a *default or as an option to a collection. In particular, you can use this to efficiently update the source and ports trees shipped on the CDROMs.
The following supfile could be used to update your ports tree:
# Defaults that apply to all the collections *default host=cvsup.uk.openbsd.org *default base=/var *default prefix=/usr *default release=cvs *default delete use-rel-suffix compress # Ports Collection. OpenBSD-ports tag=.
Any CVS symbolic tag can be used. A single period "." means HEAD, i.e. the newest revision of all files in the main branch. Take care to specify an existing tag, as CVSup cannot distinguish valid from invalid tags, and an attempt to synchronize an existing source tree to an invalid tag will remove all files.
Alternatively, use the keyword date=[cc.]yy.mm.dd.hh.mm.ss to select a revision by date. All 17 or 19 characters must be given as shown. For the years 2000 and beyond, specify the century cc. For earlier years, specify only the last two digits yy. You may also combine the tag and date keywords.
The following CVSup servers are available:
located in Brighton, UK;
maintained by Brian Somers.
Updated every 2 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located near Frankfurt am Main, Germany;
maintained by Wolfram Schneider.
Updated every 12 hours from cvsup.uk.openbsd.org.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in Munich, Germany;
maintained by Daniel Lang.
Updated every 24 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in Hungary;
maintained by Mohacsi Janos.
Updated every 4 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in France;
maintained by Jean-Claude Christophe.
Updated every 12 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-all | - All OpenBSD repositories |
located in Toronto, Ontario, Canada;
maintained by Brad Smith.
Updated every 2 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in West Lafayette, Indiana, USA;
maintained by Will Andrews.
Updated every 2 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in Seoul, Korea;
maintained by Kim Kyung-Hwan.
Updated every 2 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in Oslo, Norway;
maintained by Anders Nordby.
Updated every 3 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located at the University of Coimbra, Portugal;
maintained by João Pedras.
Updated every 3 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located at the University of Kaiserslautern, Germany;
maintained by Hans-Günter Weigand
and Christian Weisgerber.
Updated every 6 hours from cvsup2.de.openbsd.org.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located at Lake in the Hills, Illinois, USA;
maintained by Joshua Stein.
Updated every 2 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
located in St. Petersburg State University, St. Petersburg, Russia;
maintained by Dima Veselov.
Updated every 4 hours.
Available collections:
OpenBSD-ports | - The ports repository |
located at Otemachi, Tokyo, Japan;
maintained by Hiroki Sato.
Updated every 3 hours.
Available collections:
OpenBSD-src | - The src repository | |
OpenBSD-ports | - The ports repository | |
OpenBSD-www | - The www repository | |
OpenBSD-x11 | - The XFree86-3 repository | |
OpenBSD-xf4 | - The XFree86-4 repository | |
OpenBSD-all | - All OpenBSD repositories |
Note:, If your server is listed on here with inaccurate or unknown information, please contact beck@openbsd.org or brian@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.
Currently (as of October 16, 2001), the CVS repository sizes are
OpenBSD-ports | - 67MB | |
OpenBSD-src | - 783MB | |
OpenBSD-www | - 46MB | |
OpenBSD-x11 | - 193MB | |
OpenBSD-xf4 | - 340MB |
There is an additional overhead of 34MB for the CVSROOT and sup directories. The overall repository size currently increases at a rate of about 170MB per annum.
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 an AnonCVS 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.
The OpenBSD project is looking for more CVSup servers -- if you are interested, please contact Brian Somers for configuration details.