[BACK]Return to anoncvs.html CVS log [TXT][DIR] Up to [local] / www

Annotation of www/anoncvs.html, Revision 1.56

1.1       deraadt     1: <!DOCTYPE HTML PUBLIC  "-//IETF//DTD HTML Strict//EN">
                      2: <html>
                      3: <head>
1.49      ian         4:   <title>OpenBSD AnonCVS</title>
                      5:   <link rev=made href=mailto:www@openbsd.org>
                      6:   <meta name="resource-type"
                      7:        content="document">
                      8:   <meta name="description"
                      9:        content="How to get OpenBSD updates via Internet using Anonymous CVS">
                     10:   <meta name="keywords"
                     11:        content="openbsd,anoncvs,updates">
                     12:   <meta name="distribution"
                     13:        content="global">
                     14:   <meta name="copyright"
                     15:        content="This document copyright 1996-1998 by OpenBSD.">
1.1       deraadt    16: </head>
                     17:
1.14      downsj     18: <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#23238E">
1.1       deraadt    19:
1.14      downsj     20: <img alt="[OpenBSD]" SRC="images/smalltitle.gif">
                     21:
1.43      deraadt    22: <h3><font color=#0000e0>Anonymous CVS Access:</font></h3>
1.15      grr        23: <p>
                     24: Anonymous CVS is a method of keeping your local copy of the OpenBSD source
                     25: tree up to date with respect to changes made to current OpenBSD sources.
1.14      downsj     26: <p>
1.15      grr        27: The major advantage of Anonymous CVS over other source code update
                     28: techniques is that it works directly against a central source code
                     29: repository or mirror.  This means that you have the full set of CVS
                     30: commands available to control merging and updating your changes with
                     31: other source changes and for performing diff's, change histories
                     32: and other queries against the central repository.
1.36      deraadt    33: <p>
                     34: You can use anoncvs to access our three main source repositories:
                     35: <strong>src</strong>, <strong>ports</strong>, and <strong>www</strong>.
                     36: <p>
1.43      deraadt    37: <h3><font color=#0000e0>CVS:</font></h3>
1.36      deraadt    38: <a href=why-cvs.html>
                     39: CVS is the source code control system used to manage the OpenBSD source tree.</a>
1.16      deraadt    40: It implements a central repository for all officially released source code
1.15      grr        41: and changes, while permitting developers to maintain local copies of the
                     42: source code with their working changes.  Developers with "write access"
                     43: can commit changes directly to the OpenBSD source tree, while "Anonymous
                     44: CVS" users have "read access" and can keep their local copies of the source
                     45: up to date and issue queries against the central depository.
                     46: <p>
1.22      niklas     47: The major strength of CVS is that it has the ability to perform intelligent
1.15      grr        48: merges of changes to the central repository with changes that you make to
                     49: your local copy.  This means that if you make a change to a module and
                     50: perform an update, your changes are not "blown away", rather CVS makes
                     51: best efforts to merge the changes made to the central sources with changes
                     52: you've made to your local copy.
                     53: <p>
                     54: In the event that the changes can't be completely merged, CVS provides a
                     55: "soft fallback", in terms of providing you with annotated changes to your
1.39      todd       56: local copy, preserving an unmodified copy of your version and continuing
1.15      grr        57: to update any other source modules you requested.
1.22      niklas     58: <p>
1.23      mickey     59: People who own an OpenBSD CD may have seen the CVS/ dirs on it.
1.22      niklas     60: Actually there is a reason, the CD has a checkout of the OpenBSD src/ module
1.23      mickey     61: usable to continue updating from.  Using this tree will results in a much
                     62: faster initial CVS update than a fresh checkout of the full OpenBSD
                     63: source tree.  There are two ways of using the CD:
                     64: <ul>
                     65: <li>copy the tree off it, (assuming the CD is mounted on /mnt):
1.22      niklas     66: <pre>
1.23      mickey     67:        <b>#</b> cd /mnt; cp -Rp CVS Makefile bin distrib etc games gnu \
                     68:        <b>&gt;</b> include kerberosIV lib libexec lkm regress sbin share \
                     69:        <b>&gt;</b> sys usr.bin usr.sbin /usr/src
1.22      niklas     70: </pre>
1.23      mickey     71: <li>use a union mount with the CD below a writable directory.
1.22      niklas     72: <pre>
1.23      mickey     73:        <b>#</b> mount -t union -o -b /mnt /usr/src
1.22      niklas     74: </pre>
1.23      mickey     75: </ul>
1.22      niklas     76: After this, /usr/src will be a nice checkout area where all cvs(1) commands
                     77: will work OK.
1.15      grr        78: <h4>CVS COMMAND SUMMARY</h4>
1.27      todd       79: <dt> cvs [cvs args] [cvs command] [cvs command args]
                     80: <dd> below is a listing of commonly used cvs commands.
1.15      grr        81: <dl>
                     82: <DT>add
                     83: <dd>Add a new file or directory to the repository.
                     84: <dt>get
                     85: <dd>Make a working directory of source files for editing.
                     86: <dt>commit
                     87: <dd>Apply changes to the source repository (write access)
                     88: <dt>diff
                     89: <dd>Show differences between local files and the source repository.
                     90: <dt>history
                     91: <dd>Show reports on cvs commands against the source repository.
                     92: <dt>log
                     93: <dd>Display CVS log information.
                     94: <dt>rdiff
                     95: <dd>Prepare a collection of diffs reflecting changes between release.
                     96: <dt>status
                     97: <dd>Show current status of files in the repository and local copies.
                     98: <dt>update
                     99: <DD>Bring your working directory up to date with the repository.
                    100: </dl>
1.1       deraadt   101: <p>
1.39      todd      102: To summarize, the real strength of using Anonymous CVS is that it is
1.15      grr       103: a "tolerant" source code control system - it <strong>respects</strong>
                    104: changes that you have made to your local sources and makes <strong>
                    105: "best efforts"</strong> to update your entire source tree, rather than
                    106: leaving you a list of arcane problems that have to be resolved before
                    107: continuing.
1.1       deraadt   108:
1.43      deraadt   109: <h3><font color=#0000e0>Using Anonymous CVS:</font></h3>
1.1       deraadt   110: <p>
                    111: The latest version of CVS is available at
1.47      pauls     112: <a href=http://download.cyclic.com/pub/>Cyclic</a>.
1.1       deraadt   113: Versions earlier than 1.6 are not recommended, and may not work.
                    114: If you already have OpenBSD installed, CVS is included.
                    115:
                    116: <p>
                    117: There are two levels of source tree access:
                    118:
                    119: <dl>
                    120: <dt><strong>Read-write access for developers:</strong>
                    121: <dd>Developers who need to commit changes to the source tree must have
                    122: an account on the OpenBSD machines.  Getting this access will be a
                    123: natural result of working on the sources with other OpenBSD developers.
                    124: If someone does some good work and shows they can work with the team,
                    125: they will get an account.
                    126: </dl>
                    127:
                    128: <dl>
                    129: <dt><strong>Read-only access for everyone:</strong>
                    130: <dd>Anyone can access the read-only CVS repositories. These copies
                    131: of the read-write CVS repository are mirrored often. To use one,
                    132: set your <strong>CVSROOT</strong> environment variable to one of
                    133: the following values:
1.12      grr       134: <p>
                    135: <strong>Please see the note about using ssh vs. rsh below!</strong>
                    136: <p>
1.1       deraadt   137: <ul>
                    138: <p>
                    139: <li><strong>CVSROOT=anoncvs@anoncvs.usa.openbsd.org:/cvs</strong><br>
1.10      millert   140: Host also known as <strong>anoncvs.openbsd.org</strong>,
                    141: <strong>anoncvs@anoncvs1.usa.openbsd.org</strong>,
                    142: <strong>anoncvs@anoncvs4.usa.openbsd.org</strong> and
                    143: <strong>anoncvs2.isc.org</strong>.<br>
                    144: located in California, western USA.<br>
1.46      millert   145: maintained by <a href=mailto:millert@openbsd.org>Todd Miller</a>.<br>
1.10      millert   146: protocols: ssh only.<br>
1.1       deraadt   147: updated every 4 hours.<br>
                    148: <p>
                    149: <li><strong>CVSROOT=anoncvs@anoncvs3.usa.openbsd.org:/cvs</strong><br>
1.55      millert   150: Host also known as <strong>openbsd.cs.colorado.edu</strong>.<br>
1.1       deraadt   151: located at the University of Colorado, Boulder, western USA.<br>
                    152: maintained by <a href=mailto:Todd.Miller@cs.colorado.edu>Todd Miller</a>.<br>
                    153: protocols: ssh, ssh port 2022.<br>
                    154: updated every 6 hours.<br>
                    155: <p>
1.18      todd      156: <li>
                    157: <strong>CVSROOT=:pserver:anoncvs@anoncvs5.usa.openbsd.org:/cvs</strong><br>
                    158: Note <a href=#pserver>*pserver usage*</a><br>
                    159: Host also known as <strong>alpha.ctaz.com</strong>.<br>
1.19      todd      160: located in Arizona, western USA.<br>
1.18      todd      161: maintained by <a href=mailto:todd@openbsd.org>Todd Fries</a>.<br>
                    162: protocols: :pserver:.<br>
1.51      todd      163: Currently DOWN!<br>
1.18      todd      164: <p>
1.31      deraadt   165: <li><strong>CVSROOT=anoncvs@anoncvs6.usa.openbsd.org:/cvs</strong><br>
                    166: Host also known as <strong>openbsd.citi.umich.edu</strong>.<br>
                    167: located at the University of Michigan, central USA.<br>
                    168: maintained by <a href=mailto:rees@umich.edu>Jim Rees</a>.<br>
                    169: protocols: ssh, ssh port 2022.<br>
                    170: updated every 12 hours.<br>
                    171: <p>
1.24      deraadt   172: <li><strong>CVSROOT=anoncvs@anoncvs1.ca.openbsd.org:/cvs</strong><br>
1.40      beck      173: Host also known as <strong>anoncvs.ca.openbsd.org</strong>,
                    174: <strong>panopticon.ucs.ualberta.ca</strong><br>
1.24      deraadt   175: located in Edmonton, Alberta, Canada.<br>
                    176: maintained by <A HREF="mailto:beck@panopticon.ucs.ualberta.ca">Bob Beck</A><br>
1.53      beck      177: protocols: ssh, rsh, ssh port 2022, pserver<br>
1.45      beck      178: updated every 2 hours.<br>
1.24      deraadt   179: <p>
1.1       deraadt   180: <li><strong>CVSROOT=anoncvs@anoncvs.uk.openbsd.org:/cvs</strong><br>
                    181: Host also known as <strong>dumpty.wonderland.org</strong>.<br>
                    182: located in London, UK.<br>
                    183: maintained by <a href=mailto:peter@wonderland.org>Peter Galbavy</a>.<br>
                    184: protocols: rsh.<br>
                    185: updated every 12 hours.<br>
                    186: <p>
                    187: <li><strong>CVSROOT=anoncvs@anoncvs.tw.openbsd.org:/cvs</strong><br>
                    188: Host also known as <strong>hercules.secc.fju.edu.tw</strong>.<br>
                    189: located in Taipei, Taiwan.<br>
                    190: maintained by <a href=mailto:shawn@openbsd.org>Shawn Hsiao</a>.<br>
                    191: protocols: rsh, ssh, ssh port 2022.<br>
                    192: updated every 12 hours.<br>
                    193: <p>
                    194: <li><strong>CVSROOT=anoncvs@anoncvs.no.openbsd.org:/cvs</strong><br>
                    195: located in Norway.<br>
                    196: maintained by <a href=mailto:micheals@openbsd.org>Michael Shuldman</a>.<br>
                    197: protocols: rsh, ssh, ssh port 2022.<br>
                    198: updated every 4 hours.<br>
                    199: <p>
1.33      deraadt   200: <li><strong>CVSROOT=anoncvs@anoncvs.se.openbsd.org:/cvs</strong><br>
1.54      art       201: Host also known as <strong>anoncvs.stacken.kth.se</strong>.<br>
1.33      deraadt   202: located in Sweden.<br>
                    203: maintained by <a href=mailto:anoncvs@stacken.kth.se>Magnus Holmberg</a>.<br>
                    204: protocols: rsh, ssh, ssh port 2022.<br>
                    205: updated every 4 hours.<br>
                    206: </ul>
                    207: <p>
1.1       deraadt   208: You may want to use `traceroute' to find out which server is nearest you.
1.11      michaels  209: Problems with a server should be reported to the <b>maintainer</b> of the
                    210: server in question.
1.1       deraadt   211: </dl>
                    212: <p>
                    213: <strong>IMPORTANT NOTE:</strong>
                    214: There are a few issues relating to cryptographic software that everyone
                    215: should be aware of:
                    216: <ul>
                    217: <li>The OpenBSD sources are from Canada.
1.9       deraadt   218: As
                    219:        <a href=http://insight.mcmaster.ca/org/efc/pages/doc/crypto-export.html>
                    220:        researched by a Canadian individual</a>
                    221: and as
                    222:        <a href=http://axion.physics.ubc.ca/ECL.html>
                    223:        described in the Export Control list of Canada</a>
                    224: is legal to export crypto software from Canada to the world.
1.1       deraadt   225: <p>
                    226: <li>However, if you are outside the USA or Canada, you should not
                    227: fetch the cryptographic sections of the OpenBSD sources from an
                    228: anoncvs server located in the USA. The files in question are...
                    229: <ul>
                    230: <li>src/kerberosIV/*
                    231: <li>src/lib/libc/crypt/crypt.c
                    232: <li>src/lib/libc/crypt/morecrypt.c
1.36      deraadt   233: <li>src/sys/netinet
1.56    ! matthieu  234: <li>X11/xc/lib/Xdmcp/Wraphelp.c
1.1       deraadt   235: </ul>
                    236: Because of the USA ITAR munitions list,
                    237: crypto software may only be exported to Canada from the USA.
                    238: <p>
                    239: <li>The OpenBSD project is looking for more anoncvs servers -- read
                    240: on to find out how you can help.
                    241: </ul>
                    242:
                    243: <p>
                    244: A sample use of an anoncvs CVS server would be:
1.27      todd      245: <ul>
1.1       deraadt   246: <pre>
                    247: % setenv CVSROOT anoncvs@anoncvs.usa.openbsd.org:/cvs
                    248: % cd /tmp
                    249: % cvs get src/sys/arch/sparc
1.12      grr       250:     [copies the files from the repository to your machine]
1.1       deraadt   251: % cvs log src/sys/arch/sparc/sparc/locore.s
1.12      grr       252:     [shows the commit log for the chosen file ]
1.1       deraadt   253: % cvs diff -bc -r1.1 -r1.5 src/sys/arch/sparc/sparc/locore.s
1.12      grr       254:     [shows the changes between revisions 1.1 and rev 1.5]
1.1       deraadt   255: </pre>
1.27      todd      256: </ul>
1.1       deraadt   257:
                    258: <p>
1.18      todd      259: <a name=pserver>In order to use a cvs ``pserver'' (a direct tcp connection instead of using ssh or rsh) you must login once:</a>
                    260: <pre>
                    261:     [ *NOTE* You must be using cvs version 1.8 or higher to do this          ]
                    262: % setenv CVSROOT :pserver:anoncvs@anoncvs5.usa.openbsd.org:/cvs
                    263: % cvs login
                    264: (Logging in to anoncvs@anoncvs5.usa.openbsd.org)
                    265: CVS password: <type whatever you feel like, just type something!>
                    266:     [this writes a line to ~/.cvspass (filename over-ridden by CVS_PASSFILE).]
                    267:     [An example line from my ~/.cvspass after typing 'blah' for the above    ]
                    268:     [password is:                                                            ]
                    269:     [:pserver:anoncvs@anoncvs5.usa.openbsd.org:/cvs Au'yc                    ]
                    270:     [...after logging in ONCE every other use of the above CVSROOT will work ]
                    271: % cvs -z9 get ksrc-i386 ksrc-common
                    272:     [allows you to retrieve ONLY that necessary to rebuild an i386 kernel    ]
                    273:     [ -z9 allows gzip -9 compression, GOOD medicine for slow links           ]
                    274: </pre>
                    275:
                    276: <p>
1.39      todd      277: Here is how someone using anoncvs regularly would update his
1.1       deraadt   278: source tree:
1.27      todd      279: <ul><li>First, startout by `get'-ing an initial tree:
                    280:
1.1       deraadt   281: <pre>
                    282: # setenv CVSROOT anoncvs@anoncvs.usa.openbsd.org:/cvs
                    283: # cd /usr
                    284: # cvs -q get -PA src
                    285: </pre>
1.27      todd      286: </li>
1.37      todd      287:
1.27      todd      288: <li> Anytime afterwards, to `update' this tree:
1.1       deraadt   289: <pre>
1.41      deraadt   290: # cd /usr/src
                    291: # cvs -q up -PAd
1.1       deraadt   292: </pre>
1.27      todd      293:
1.39      todd      294: Everytime you ran this it would synchronize your /usr/src tree. It would
1.1       deraadt   295: not destroy any of your local changes, rather it would attempt to merge
                    296: changes in. If you use obj directories (not obj symbolic links) you may
                    297: wish to append "-I obj" to the cvs command line, this will keep cvs from
                    298: spitting out a warning about all the obj directories it is going to
                    299: encounter which are not in the repository.
1.27      todd      300: </li>
                    301: </ul>
                    302:
1.37      todd      303: <p>
                    304: To <a name=ports>use</a> <a href=ports.html>ports</a>, it is similar to src:
                    305: <ul><li>
                    306: <pre>
                    307: # setenv CVSROOT anoncvs@anoncvs.usa.openbsd.org:/cvs
                    308: # cd /usr
                    309: # cvs -q get -PA ports
1.38      deraadt   310: </pre>
1.37      todd      311: </li>
                    312: <li> Anytime afterwards, to `update' this tree:
                    313: <pre>
                    314: # cd /usr
                    315: # cvs -q up -PAd ports
                    316: </pre>
                    317: </li>
                    318: </p>
                    319: </ul>
                    320:
1.27      todd      321: In the above example, '-q' is optional, only intended to minimize
                    322: cvs's output.  For those who like to see screenfulls of output, it
                    323: can be omitted.
1.1       deraadt   324:
                    325: <p>
1.12      grr       326: or to make a diff of a locally patched module (here cd.c) to include with
                    327: a bug report:
                    328: <pre>
                    329: # cd /usr
                    330: # cvs diff -u src/sys/scsi/cd.c > /tmp/patch
                    331: </pre>
1.37      todd      332: </p>
1.12      grr       333:
                    334: <p>
1.1       deraadt   335: The CVS man page (included with the CVS sources) has much more
                    336: information about how CVS can be used.
                    337:
                    338: <p>
1.12      grr       339: <strong>Warning:</strong>
                    340: When using cvs you should take care that your current directory is either
                    341: the root of the tree you're referencing or in a separate place such as /tmp.
                    342: Some commands such as "get" can create an arbitrary sub-tree in the current
                    343: directory, and a subsequent update will recursively flesh out this sub-tree.
                    344:
                    345: <p>
1.1       deraadt   346: The anoncvs service gives fledgling developers a chance to learn CVS
                    347: operation and get thoroughly involved in the development process
                    348: before getting "commit" access -- as a result of showing useful
                    349: skills and high quality results they will naturally later be given
                    350: developer access.  As well, people providing patches can create
                    351: their "diff"s relative to the CVS tree, which will ease integration.
                    352:
                    353: <p>
1.15      grr       354: <strong>Anoncvs: rsh vs. ssh</strong>
1.12      grr       355: <br>
                    356: By default, the CVS client uses rsh to talk to the CVS server.  Many
1.39      todd      357: of the CVS sites no longer support rsh for security reasons or a local
1.12      grr       358: problem like a firewall or imperfect protocol emulator such as slirp
                    359: may prevent you from using rsh.
                    360: The alternative is a to use a "secure shell" connection using
1.48      ryker     361: <a href=http://www.cs.hut.fi/ssh/>ssh</a>.  This is a commercial product
1.12      grr       362: offered by <a href=http://www.ssh.fi>SSH Communications Security Ltd</a>,
                    363: however they make a free unix version available that can be easily
1.49      ian       364: installed under OpenBSD.  If you have installed the OpenBSD
                    365: <A HREF="ports.html">ports tree</A>  you can download, compile, and install
                    366: the free UNIX version just by changing directory into the directory
                    367: /usr/ports/security/ssh
                    368: and typing <KBD>make install</KBD>.
                    369: If you installed "ports" from the OpenBSD 2.2 CD-ROM, you get ssh
1.50      ian       370: version 1.2.21 and should eventually "cvs update ports" and rebuild it as above
1.49      ian       371: after you get ssh and anoncvs working, to get the latest version.
                    372: Alternately, you can manually download the latest Unix version from
1.48      ryker     373: <a href=http://www.cs.hut.fi/ssh/>http://www.cs.hut.fi/ssh/</a> or one of
1.49      ian       374: the mirrors listed there, compile, and install it yourself.
1.28      beck      375:
1.50      ian       376: <p> One ssh is installed, one sets the environment variable
1.28      beck      377: <strong>CVS_RSH</strong> to point to ssh (typically
                    378: <strong>/usr/local/bin/ssh</strong>).  If your local site prevents you
                    379: from connecting out to port 22 (which ssh defaults to using) use port
                    380: 2022.
1.1       deraadt   381:
                    382: <p>
                    383: Do not be tempted to turn on compression since CVS already compresses.
                    384: Use something like the following in your <strong>$HOME/.ssh/config</strong>
1.10      millert   385: file.  Note that not all anoncvs servers allow ssh connections on
1.21      millert   386: port 2022.  Also note that most anoncvs servers no longer accept
                    387: the <strong>none</strong> cipher as it is disabled in recent
                    388: versions of ssh for security reasons.
1.1       deraadt   389: <pre>
                    390:        Host anoncvs.usa.openbsd.org
                    391:            Port 2022
                    392: </pre>
                    393:
                    394: <p>
                    395: CVS is a little noisy starting up; to quiet it a bit you may want to
                    396: do this:
                    397: <pre>
                    398: setenv CVS_CLIENT_PORT -1
                    399: </pre>
                    400:
                    401: <p>
1.8       deraadt   402: If you wish to change from one CVS server to another (say your normal one is
                    403: down, or for any other reason), the environment variable which will let you
                    404: do this is
                    405: <pre>
                    406: setenv CVS_IGNORE_REMOTE_ROOT
                    407: </pre>
                    408:
                    409: <p>
1.1       deraadt   410: If you wish to be a new anoncvs mirror site, please contact the anoncvs
                    411: <a href=mailto:deraadt@theos.com>maintainer</a>.
1.30      beck      412: Anoncvs mirrors require about 500MB of disk, and use up to 4MB of swap
1.1       deraadt   413: per anoncvs user (assuming the user does a large operation; while smaller
                    414: operations use fewer resources, anoncvs still makes much more of an
                    415: impact than ftp or sup).  Such anoncvs machines should have excellent
                    416: network connectivity for the area they are expected to serve.  A
                    417: <a href=anoncvs.shar>document</a>
                    418: which describes the setup of anoncvs servers is available.
                    419:
                    420: </dl>
                    421:
                    422: <hr>
1.3       deraadt   423: <a href=index.html><img src=back.gif border=0 alt=OpenBSD></a>
1.1       deraadt   424: <a href=mailto:www@openbsd.org>www@openbsd.org</a>
1.56    ! matthieu  425: <br><small>$OpenBSD: anoncvs.html,v 1.55 1998/04/30 05:14:46 millert Exp $</small>
1.1       deraadt   426:
                    427: </body>
                    428: </html>