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

Annotation of www/anoncvs.html, Revision 1.25

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