Annotation of www/anoncvs.html, Revision 1.16
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>
42: The major strength of CVS is that it has the ability to preform intelligent
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.15 grr 55: <h4>CVS COMMAND SUMMARY</h4>
56: <dl>
57: <DT>add
58: <dd>Add a new file or directory to the repository.
59: <dt>get
60: <dd>Make a working directory of source files for editing.
61: <dt>commit
62: <dd>Apply changes to the source repository (write access)
63: <dt>diff
64: <dd>Show differences between local files and the source repository.
65: <dt>history
66: <dd>Show reports on cvs commands against the source repository.
67: <dt>log
68: <dd>Display CVS log information.
69: <dt>rdiff
70: <dd>Prepare a collection of diffs reflecting changes between release.
71: <dt>status
72: <dd>Show current status of files in the repository and local copies.
73: <dt>update
74: <DD>Bring your working directory up to date with the repository.
75: </dl>
1.1 deraadt 76: <p>
1.15 grr 77: To summarize, the reaal strengh of using Anonymous CVS is that it is
78: a "tolerant" source code control system - it <strong>respects</strong>
79: changes that you have made to your local sources and makes <strong>
80: "best efforts"</strong> to update your entire source tree, rather than
81: leaving you a list of arcane problems that have to be resolved before
82: continuing.
1.1 deraadt 83: </p>
84:
1.15 grr 85: <h3>Using Anonymous CVS:</h3>
1.1 deraadt 86: <p>
87: The latest version of CVS is available at
88: <a href=ftp://ftp.cyclic.com/pub/cvs/>Cyclic</a>.
89: Versions earlier than 1.6 are not recommended, and may not work.
90: If you already have OpenBSD installed, CVS is included.
91: </p>
92:
93: <p>
94: There are two levels of source tree access:
95: </p>
96:
97: <dl>
98: <dt><strong>Read-write access for developers:</strong>
99: <dd>Developers who need to commit changes to the source tree must have
100: an account on the OpenBSD machines. Getting this access will be a
101: natural result of working on the sources with other OpenBSD developers.
102: If someone does some good work and shows they can work with the team,
103: they will get an account.
104: </dl>
105:
106: <dl>
107: <dt><strong>Read-only access for everyone:</strong>
108: <dd>Anyone can access the read-only CVS repositories. These copies
109: of the read-write CVS repository are mirrored often. To use one,
110: set your <strong>CVSROOT</strong> environment variable to one of
111: the following values:
1.12 grr 112: <p>
113: <strong>Please see the note about using ssh vs. rsh below!</strong>
114: <p>
1.1 deraadt 115: <ul>
116: <p>
117: <li><strong>CVSROOT=anoncvs@anoncvs.usa.openbsd.org:/cvs</strong><br>
1.10 millert 118: Host also known as <strong>anoncvs.openbsd.org</strong>,
119: <strong>anoncvs@anoncvs1.usa.openbsd.org</strong>,
120: <strong>anoncvs@anoncvs4.usa.openbsd.org</strong> and
121: <strong>anoncvs2.isc.org</strong>.<br>
122: located in California, western USA.<br>
123: maintained by <a href=mailto:niklas@openbsd.org>Niklas Hallqvist</a>.<br>
124: protocols: ssh only.<br>
1.1 deraadt 125: updated every 4 hours.<br>
126: <p>
127: <li><strong>CVSROOT=anoncvs@anoncvs2.usa.openbsd.org:/cvs</strong><br>
1.5 johns 128: Host also known as <strong>hydra.heuris.com</strong>.<br>
1.4 deraadt 129: located in St. Louis, Missouri, mid-western USA.<br>
1.1 deraadt 130: maintained by <a href=mailto:johns@heuris.com>John Stone</a>.<br>
131: protocols: rsh, ssh, ssh port 2022.<br>
132: updated every 12 hours.<br>
133: <p>
134: <li><strong>CVSROOT=anoncvs@anoncvs3.usa.openbsd.org:/cvs</strong><br>
135: Host also known as <strong>freestuff.cs.colorado.edu</strong>.<br>
136: located at the University of Colorado, Boulder, western USA.<br>
137: maintained by <a href=mailto:Todd.Miller@cs.colorado.edu>Todd Miller</a>.<br>
138: protocols: ssh, ssh port 2022.<br>
139: updated every 6 hours.<br>
140: <p>
141: <li><strong>CVSROOT=anoncvs@anoncvs.uk.openbsd.org:/cvs</strong><br>
142: Host also known as <strong>dumpty.wonderland.org</strong>.<br>
143: located in London, UK.<br>
144: maintained by <a href=mailto:peter@wonderland.org>Peter Galbavy</a>.<br>
145: protocols: rsh.<br>
146: updated every 12 hours.<br>
147: <p>
148: <li><strong>CVSROOT=anoncvs@anoncvs.tw.openbsd.org:/cvs</strong><br>
149: Host also known as <strong>hercules.secc.fju.edu.tw</strong>.<br>
150: located in Taipei, Taiwan.<br>
151: maintained by <a href=mailto:shawn@openbsd.org>Shawn Hsiao</a>.<br>
152: protocols: rsh, ssh, ssh port 2022.<br>
153: updated every 12 hours.<br>
154: <p>
155: <li><strong>CVSROOT=anoncvs@anoncvs.no.openbsd.org:/cvs</strong><br>
156: located in Norway.<br>
157: maintained by <a href=mailto:micheals@openbsd.org>Michael Shuldman</a>.<br>
158: protocols: rsh, ssh, ssh port 2022.<br>
159: updated every 4 hours.<br>
160: </ul>
161: <p>
162: You may want to use `traceroute' to find out which server is nearest you.
1.11 michaels 163: Problems with a server should be reported to the <b>maintainer</b> of the
164: server in question.
1.1 deraadt 165: </dl>
166: </p>
167: <p>
168: <strong>IMPORTANT NOTE:</strong>
169: There are a few issues relating to cryptographic software that everyone
170: should be aware of:
171: <ul>
172: <li>The OpenBSD sources are from Canada.
1.9 deraadt 173: As
174: <a href=http://insight.mcmaster.ca/org/efc/pages/doc/crypto-export.html>
175: researched by a Canadian individual</a>
176: and as
177: <a href=http://axion.physics.ubc.ca/ECL.html>
178: described in the Export Control list of Canada</a>
179: is legal to export crypto software from Canada to the world.
1.1 deraadt 180: <p>
181: <li>However, if you are outside the USA or Canada, you should not
182: fetch the cryptographic sections of the OpenBSD sources from an
183: anoncvs server located in the USA. The files in question are...
184: <ul>
185: <li>src/kerberosIV/*
186: <li>src/lib/libc/crypt/crypt.c
187: <li>src/lib/libc/crypt/morecrypt.c
188: </ul>
189: Because of the USA ITAR munitions list,
190: crypto software may only be exported to Canada from the USA.
191: <p>
192: <li>The OpenBSD project is looking for more anoncvs servers -- read
193: on to find out how you can help.
194: </ul>
195: </p>
196:
197: <p>
198: A sample use of an anoncvs CVS server would be:
199: <pre>
200: % setenv CVSROOT anoncvs@anoncvs.usa.openbsd.org:/cvs
201: % cd /tmp
202: % cvs get src/sys/arch/sparc
1.12 grr 203: [copies the files from the repository to your machine]
1.1 deraadt 204: % cvs log src/sys/arch/sparc/sparc/locore.s
1.12 grr 205: [shows the commit log for the chosen file ]
1.1 deraadt 206: % cvs diff -bc -r1.1 -r1.5 src/sys/arch/sparc/sparc/locore.s
1.12 grr 207: [shows the changes between revisions 1.1 and rev 1.5]
1.1 deraadt 208: </pre>
209: </p>
210:
211: <p>
212: Here is how someone using anoncvs regularily would update his
213: source tree:
214: <pre>
215: # setenv CVSROOT anoncvs@anoncvs.usa.openbsd.org:/cvs
216: # cd /usr
217: # cvs -q get -PA src
218: </pre>
1.12 grr 219: or similarily later on he might try:
1.1 deraadt 220: <pre>
1.12 grr 221: # cd /usr
222: # cvs -q up -PAd src
1.1 deraadt 223: </pre>
224: Everytime you ran this it would syncronize your /usr/src tree. It would
225: not destroy any of your local changes, rather it would attempt to merge
226: changes in. If you use obj directories (not obj symbolic links) you may
227: wish to append "-I obj" to the cvs command line, this will keep cvs from
228: spitting out a warning about all the obj directories it is going to
229: encounter which are not in the repository.
230: </p>
231:
232: <p>
1.12 grr 233: or to make a diff of a locally patched module (here cd.c) to include with
234: a bug report:
235: <pre>
236: # cd /usr
237: # cvs diff -u src/sys/scsi/cd.c > /tmp/patch
238: </pre>
239: </p>
240:
241: <p>
1.1 deraadt 242: The CVS man page (included with the CVS sources) has much more
243: information about how CVS can be used.
244: </p>
245:
246: <p>
1.12 grr 247: <strong>Warning:</strong>
248: When using cvs you should take care that your current directory is either
249: the root of the tree you're referencing or in a separate place such as /tmp.
250: Some commands such as "get" can create an arbitrary sub-tree in the current
251: directory, and a subsequent update will recursively flesh out this sub-tree.
252: </p>
253:
254: <p>
1.1 deraadt 255: The anoncvs service gives fledgling developers a chance to learn CVS
256: operation and get thoroughly involved in the development process
257: before getting "commit" access -- as a result of showing useful
258: skills and high quality results they will naturally later be given
259: developer access. As well, people providing patches can create
260: their "diff"s relative to the CVS tree, which will ease integration.
261: </p>
262:
263: <p>
1.15 grr 264: <strong>Anoncvs: rsh vs. ssh</strong>
1.12 grr 265: <br>
266: By default, the CVS client uses rsh to talk to the CVS server. Many
267: of the CVS sites no longer supprt rsh for security reasons or a local
268: problem like a firewall or imperfect protocol emulator such as slirp
269: may prevent you from using rsh.
270: The alternative is a to use a "secure shell" connection using
271: <a href=http://www.cs.hut.fi/ssh>ssh</a>. This is a commerical product
272: offered by <a href=http://www.ssh.fi>SSH Communications Security Ltd</a>,
273: however they make a free unix version available that can be easily
274: installed under OpenBSD. You can download the unix version from
275: <a href=http://www.cs.hut.fi/ssh>http://www.cs.hut.fi/ssh</a> or one of
276: the mirrors listed there.
277: </p>
278: <p>
279: In this case,
1.1 deraadt 280: one sets the environment variable <strong>CVS_RSH</strong> to point
281: to ssh (typically <strong>/usr/local/bin/ssh</strong>). To reduce the
282: performance hit the anoncvs server would take it is recommended (and
283: requested) that you disable encryption. If your local site prevents
284: you from connecting out to port 22 (which ssh defaults to using) use
285: port 2022.
286: </p>
287:
288: <p>
289: Do not be tempted to turn on compression since CVS already compresses.
290: Use something like the following in your <strong>$HOME/.ssh/config</strong>
1.10 millert 291: file. Note that not all anoncvs servers allow ssh connections on
292: port 2022.
1.1 deraadt 293: </p>
294: <pre>
295: Host anoncvs.usa.openbsd.org
296: Cipher none
297: Port 2022
298: </pre>
299:
300: <p>
301: CVS is a little noisy starting up; to quiet it a bit you may want to
302: do this:
303: <pre>
304: setenv CVS_CLIENT_PORT -1
305: </pre>
306: </p>
307:
308: <p>
1.8 deraadt 309: If you wish to change from one CVS server to another (say your normal one is
310: down, or for any other reason), the environment variable which will let you
311: do this is
312: <pre>
313: setenv CVS_IGNORE_REMOTE_ROOT
314: </pre>
315: </p>
316:
317: <p>
1.1 deraadt 318: If you wish to be a new anoncvs mirror site, please contact the anoncvs
319: <a href=mailto:deraadt@theos.com>maintainer</a>.
320: Anoncvs mirrors require about 300MB of disk, and use up to 4MB of swap
321: per anoncvs user (assuming the user does a large operation; while smaller
322: operations use fewer resources, anoncvs still makes much more of an
323: impact than ftp or sup). Such anoncvs machines should have excellent
324: network connectivity for the area they are expected to serve. A
325: <a href=anoncvs.shar>document</a>
326: which describes the setup of anoncvs servers is available.
327: </p>
328:
329: </dl>
330:
331: <hr>
1.3 deraadt 332: <a href=index.html><img src=back.gif border=0 alt=OpenBSD></a>
1.1 deraadt 333: <a href=mailto:www@openbsd.org>www@openbsd.org</a>
1.16 ! deraadt 334: <br><small>$OpenBSD: anoncvs.html,v 1.15 1997/06/13 08:12:26 grr Exp $</small>
1.1 deraadt 335:
336: </body>
337: </html>