CVSup is a software package for distributing and updating source trees from a master CVS 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 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, CVSup's predecessor.
The OpenBSD Project currently has four main source repositories:
CVS is the source code control system used to manage the OpenBSD source tree. It is described in more detail here.
The latest version of CVSup is available at http://www.polstra.com/projects/freeware/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
This directs cvsup to refresh all OpenBSD distributions from cvsup.uk.OpenBSD.org with a umask that permits group write permission to the local repository.
Assuming this file is saved as cvs-supfile, the following command would be used to envoke the cvsup GUI:
cvsup cvs-supfilewhereas 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_6 src
Or OPENBSD_2_5 for 2.5, 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 x11 repository | |
OpenBSD-all | - All OpenBSD repositories |
located near Frankfurt am Main, Germany;
maintained by Wolfram Schneider.
updated by CTM.
Available collections:
openbsd-src-all | - The src repository | |
openbsd-ports-all | - The ports repository | |
openbsd-www-all | - The www repository | |
openbsd-cvs-all | - All OpenBSD repositories except for x11 |
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 x11 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 |
Note:, If your server is listed on here with inaccurate or unknown information, please contact beck@openbsd.org
You may want to use "traceroute" 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 June 1, 2000), the cvs repository sizes are
ports | - 31MB | |
src | - 648MB | |
www | - 23MB | |
x11 | - 192MB |
There is an additional overhead of 25MB for the CVSROOT and sup directories
IMPORTANT NOTE: There are a few issues relating to cryptographic software that everyone should be aware of:
The OpenBSD project is looking for more CVSup servers -- if you are interested, please contact Brian Somers for configuration details.