[OpenBSD]

CVSup


Table of Contents


What Is CVSup?

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 (or its alternative implementation csup) 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 six 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 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.

Getting Started Using CVSup

Building CVSup from the sources can prove cumbersome since it is written in Modula-3. The lang/ezm3 port provides a smaller distribution of the Modula-3 compiler and runtime system for people whose only need for Modula-3 is to build CVSup. Nevertheless, if you only care about running CVSup, it is recommended that you download the cvsup package from the ftp mirror sites instead of building your own from the net/cvsup port. Currently the OpenBSD ports of Ezm3 and consequently CVSup are only available on the i386 platform.

Alternatively, the csup package is written in C and provides a drop-in compatible client.

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
        #OpenBSD-xenocara

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

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 src -P
        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.

Running CVSup in Checkout Mode

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 20 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.

Available CVSup Servers

The following CVSup servers are available:

cvsup.uk.openbsd.org

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
cvsup.usa.openbsd.org

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
cvsup.no.openbsd.org

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
cvsup.pt.openbsd.org

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
rt.fm

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-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories
skeleton.phys.spbu.ru

located in St. Petersburg State University, St. Petersburg, Russia; maintained by Dima Veselov.
Updated every 4 hours.

Available collections:

OpenBSD-ports - The ports repository
cvsup.jp.OpenBSD.org

located at Otemachi, Tokyo, Japan; maintained by CVSup Administrator.
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
cvsup.tw.OpenBSD.org

located at National Chiao-Tung University, Taiwan; maintained by Ying-Chieh Liao.
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
wiretapped.net

located in Sydney Australia; maintained by Grant Bayley.
Updated every 6 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-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories
mirror.osn.de

located in Germany maintained by Armin Wolfermann.
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-xf4 - The XFree86-4 repository
OpenBSD-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories
cvsup.bg.openbsd.org

located in Plovdiv, Bulgaria, maintained by Ventsislav Velkov.
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
cvsup.open.bsd.lv

located in Riga, Latvia; maintained by Peter Dunaskin.
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
rudy.mif.pg.gda.pl

located at the Gdansk University of Technology, Poland; maintained by Lukasz Sztachanski.
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
mirror.public-internet.co.uk

located at London, UK; maintained by Tom Beard.
Updated every 2 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
cvsup.openbsd.nu

located in Stockholm, Sweden; maintained by Kent Riboe.
Updated every 3 hours from cvsync.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
anoncvs.estpak.ee

located in Tallinn, Estonia; maintained by Rivo Nurges.
Updated every 2 hours from cvsync.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-xenocara - The Xenocara repository
OpenBSD-all - All OpenBSD repositories

Note: If your server is listed on here with inaccurate or unknown information, please contact www@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 January, 2008, the CVS repository sizes are

OpenBSD-ports - 310MB
OpenBSD-src - 1500MB
OpenBSD-www - 350MB
OpenBSD-xenocara - 600MB
OpenBSD-x11 - 200MB
OpenBSD-xf4 - 564MB

There is an additional overhead of 408MB for the CVSROOT directory. 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 CVSup servers -- if you are interested, please contact www@openbsd.org for configuration details.


OpenBSD www@openbsd.org
$OpenBSD: cvsup.html,v 1.120 2009/09/02 13:23:15 millert Exp $