version 1.225, 2004/11/24 20:29:47 |
version 1.226, 2004/12/03 03:24:17 |
|
|
<meta name="copyright" content="This document copyright 1996-2004 by OpenBSD."> |
<meta name="copyright" content="This document copyright 1996-2004 by OpenBSD."> |
</head> |
</head> |
|
|
<body bgcolor="#ffffff" text="#000000" link="#23238e"> |
<body bgcolor="#ffffff" text="#000000"> |
|
|
<a href="index.html"><img alt="[OpenBSD]" height="30" width="141" src="images/smalltitle.gif" border="0"></a> |
<a href="index.html"><img alt="[OpenBSD]" height="30" width="141" src="images/smalltitle.gif" border="0"></a> |
<p> |
<p> |
|
|
tree up to date with respect to changes made to current OpenBSD sources. |
tree up to date with respect to changes made to current OpenBSD sources. |
In addition to following the bleeding edge of development, it is |
In addition to following the bleeding edge of development, it is |
also possible to track the patches for errata of a release. |
also possible to track the patches for errata of a release. |
</p> |
|
|
|
<p> |
<p> |
The major advantage of Anonymous CVS over other source code update |
The major advantage of Anonymous CVS over other source code update |
|
|
commands available to control merging and updating your changes with |
commands available to control merging and updating your changes with |
other source changes and for performing diffs, change histories |
other source changes and for performing diffs, change histories |
and other queries against the central repository. |
and other queries against the central repository. |
</p> |
|
|
|
<p> |
<p> |
The OpenBSD Project currently has five main source repositories: |
The OpenBSD Project currently has five main source repositories: |
</p> |
|
|
|
<ul> |
<ul> |
<li><b>src</b> - Houses all source code for the OpenBSD Operating System.</li> |
<li><b>src</b> - Houses all source code for the OpenBSD Operating System. |
<li><b>ports</b> - Houses the <a href="./ports.html">OpenBSD Ports</a>.</li> |
<li><b>ports</b> - Houses the <a href="./ports.html">OpenBSD Ports</a>. |
<li><b>www</b> - Houses all OpenBSD web pages. (Including this one).</li> |
<li><b>www</b> - Houses all OpenBSD web pages. (Including this one). |
<li><b>X11</b> - Houses OpenBSD's adaptation of the |
<li><b>X11</b> - Houses OpenBSD's adaptation of the |
<a href="http://www.XFree86.org/">XFree86-3</a> software project.</li> |
<a href="http://www.XFree86.org/">XFree86-3</a> software project. |
<li><b>XF4</b> - Houses OpenBSD's adaptation of the |
This is here just for historical purposes, most users will have no |
<a href="http://www.XFree86.org/">XFree86-4</a> software project.</li> |
reason to use this tree, it is no longer being used. |
|
<li><b>XF4</b> - Houses OpenBSD's active X source tree. |
</ul> |
</ul> |
|
|
<p> |
<p> |
|
|
"best efforts"</strong> to update your entire source tree, rather than |
"best efforts"</strong> to update your entire source tree, rather than |
leaving you a list of arcane problems that have to be resolved before |
leaving you a list of arcane problems that have to be resolved before |
continuing. |
continuing. |
</p> |
|
|
|
<h3><a name="CVS"><font color="#0000e0">What is CVS?</font></a></h3> |
<h3><a name="CVS"><font color="#0000e0">What is CVS?</font></a></h3> |
|
|
<p> |
<p> |
<a href="why-cvs.html"> |
<a href="http://www.cvshome.org/">CVS</a> is the source code control |
CVS is the source code control system used to manage the OpenBSD source tree.</a> |
system used to <a href="why-cvs.html">manage the OpenBSD source |
|
tree.</a> |
It implements a central repository for all officially released source code |
It implements a central repository for all officially released source code |
and changes, while permitting developers to maintain local copies of the |
and changes, while permitting developers to maintain local copies of the |
source code with their working changes. Developers with "<b>write access</b>" |
source code with their working changes. |
can commit changes directly to the OpenBSD source tree, while "Anonymous |
|
CVS" users have "<b>read access</b>" and can keep their local copies of the |
|
source up to date and issue queries against the central repository. |
|
</p> |
|
|
|
|
There are two levels of source tree access: |
|
<ul> |
|
<li><b>Read-write access for developers:</b> |
|
Developers who need to commit changes to the source tree must have an |
|
account on the OpenBSD machines. |
|
Getting this access will be a natural result of working on the sources |
|
with other OpenBSD developers. |
|
If someone does some good work and shows they can work with the team, |
|
they will get an account. |
|
|
|
<li><b>Read-only access for everyone:</b> |
|
Anyone can access the read-only CVS repositories. |
|
These copies of the read-write CVS repository are mirrored often. |
|
</ul> |
|
|
<p> |
<p> |
The major strength of CVS is that it has the ability to perform intelligent |
The major strength of CVS is that it has the ability to perform intelligent |
merges of changes to the central repository with changes that you make to |
merges of changes to the central repository with changes that you make to |
|
|
perform an update, your changes are not "blown away", rather CVS makes |
perform an update, your changes are not "blown away", rather CVS makes |
best efforts to merge the changes made to the central sources with changes |
best efforts to merge the changes made to the central sources with changes |
you've made to your local copy. |
you've made to your local copy. |
</p> |
|
|
|
<p> |
<p> |
In the event that the changes can't be completely merged, CVS provides a |
In the event that the changes can't be completely merged, CVS provides a |
"soft fallback", in terms of providing you with annotated changes to your |
"soft fallback", providing you with annotated changes to your |
local copy, preserving an unmodified copy of your version and continuing |
local copy, preserving an unmodified copy of your version and continuing |
to update any other source modules you requested. |
to update any other source modules you requested. |
</p> |
|
|
|
<h3><a name="starting"><font color="#0000e0">Getting Started Using Anonymous |
<h3><a name="starting"><font color="#0000e0">Getting Started Using Anonymous |
CVS</font></a></h3> |
CVS</font></a></h3> |
|
|
mounted on /mnt): |
mounted on /mnt): |
<pre> |
<pre> |
# <b>cd /usr/src; tar xzf /mnt/src.tar.gz</b> |
# <b>cd /usr/src; tar xzf /mnt/src.tar.gz</b> |
|
# <b>cd /usr; tar xzf /mnt/XF4.tar.tz</b> |
|
# <b>tar xzf /mnt/ports.tar.gz</b> |
</pre> |
</pre> |
|
|
The source files for download from the FTP servers are separated into two |
The source files for download from the FTP servers are separated into two |
|
|
# <b>cd /usr/src</b> |
# <b>cd /usr/src</b> |
# <b>tar xzf ../sys.tar.gz</b> |
# <b>tar xzf ../sys.tar.gz</b> |
# <b>tar xzf ../src.tar.gz</b> |
# <b>tar xzf ../src.tar.gz</b> |
|
# <b>cd /usr</b> |
|
# <b>tar xzf XF4.tar.gz</b> |
|
# <b>tar xzf ports.tar.gz</b> |
</pre> |
</pre> |
|
|
<p> |
<p> |
|
Not all people will wish to unpack all the file sets, but as the system |
|
must be kept in sync, you will generally need to set up all trees. |
|
|
|
<p> |
You can also just use cvs(1) to "<b>checkout</b>" the source repository |
You can also just use cvs(1) to "<b>checkout</b>" the source repository |
for you. This is discussed in the <a href="#using">next section</a>. |
for you. This is discussed in the <a href="#using">next section</a>. |
|
|
<p> |
<p> |
After this, <i>/usr/src</i> will be a nice checkout area where all |
After this, <tt>/usr/src</tt> will be a nice checkout area where all |
<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&sektion=1&format=html"> |
<a href="http://www.openbsd.org/cgi-bin/man.cgi?query=cvs&sektion=1&format=html"> |
cvs(1)</a> commands will work properly. |
cvs(1)</a> commands will work properly. |
|
|
|
|
source tree</font></a></h3> |
source tree</font></a></h3> |
|
|
<p> |
<p> |
CVS was designed to be a simple way to retrieve and update your sources, |
CVS was designed to be a simple way to retrieve and update your sources. |
therefore there isn't much involved at all in doing so. You must first |
You must first decide whether you want to track <i>-current</i> or a |
decide whether you want to track <i>current</i> or a patch branch. |
<a href="stable.html">patch branch</a>. |
The current tree has all of the up to the minute changes, |
The current tree has all of the up to the minute changes, |
whereas a patch branch contains a formal release plus the patches |
whereas a patch branch contains a formal release plus the patches |
from the <a href="errata.html">errata</a> already applied. For a definition |
from the <a href="errata.html">errata</a> and lesser issues already applied. |
of <i>current</i>, see the <a href="faq/upgrade-minifaq.html#1.1">Upgrade |
For more information on these "flavors" of OpenBSD, see |
Mini-FAQ</a>. |
<a href="faq/faq5.html#Flavors">here</a>. |
|
|
<p>Once you have decided which tree to follow, you must choose which Anonymous |
<p>Once you have decided which tree to follow, you must choose which Anonymous |
CVS server you are going to use. A list of these servers is |
CVS server you are going to use. A list of these servers is |
<a href="#CVSROOT">below</a>. Do, however, notice that there are three ways |
<a href="#CVSROOT">below</a>. |
to access these servers. |
|
</p> |
|
|
|
<dl> |
|
<dt><b>ssh</b><dd>Secure Shell can be used to access the anonymous CVS servers. |
|
This is the <em>recommended</em> way of doing so, as it is encrypted. As of |
|
2.6, OpenBSD has included OpenSSH in its standard distribution. |
|
<dt><b>rsh</b><dd>Remote Shell can be used on some of the servers for users |
|
who don't have access to <a href="http://www.openssh.com/">ssh</a>. |
|
<dt><b>pserver</b><dd>pserver is primarily useful for users who are behind |
|
firewalls that block the other two connections. |
|
</dl> |
|
|
|
<p> |
<p> |
<b>NOTE:</b> For users wishing to use rsh, you must first set the |
|
<var>CVS_RSH</var> variable to rsh. |
|
|
|
<ul> |
|
<li>For Korn/Bourne shells: |
|
<pre> |
|
$ <b>export CVS_RSH=/usr/bin/rsh</b> |
|
</pre> |
|
<li>For csh/tcsh: |
|
<pre> |
|
% <b>setenv CVS_RSH /usr/bin/rsh</b> |
|
</pre> |
|
</ul> |
|
|
|
<p> |
|
Once you have chosen which <a href="#CVSROOT">Anonymous CVS Server</a> you will |
Once you have chosen which <a href="#CVSROOT">Anonymous CVS Server</a> you will |
use, and which method you will use, you can start using cvs. For those of you |
use, you can start using cvs. For those of you |
who have CDs you can start with the CVS checkout that is on the CD by using |
who have CDs you can start with the CVS checkout that is on the CD by using |
the method <a href="#starting">above</a> to get the sources onto your system. |
the method <a href="#starting">above</a> to get the sources onto your system. |
If you don't have a CD handy, use the method below to checkout the sources. |
If you don't have a CD handy, use the method below to checkout the sources. |
This method puts the OpenBSD source tree into <i>/usr/src</i>. |
This method puts the OpenBSD source tree into <i>/usr/src</i>. |
</p> |
|
|
|
<pre> |
<pre> |
# <b>cd /usr; cvs checkout -P src</b> |
# <b>cd /usr; cvs checkout -P src</b> |
|
|
The above will checkout the <i>current</i> source tree. Many of you will |
The above will checkout the <i>current</i> source tree. Many of you will |
only want the patch branch sources. To checkout a patch branch, you must |
only want the patch branch sources. To checkout a patch branch, you must |
specify a tag along with your command. Example: |
specify a tag along with your command. Example: |
</p> |
|
|
|
<pre> |
<pre> |
# <b>cd /usr; cvs checkout -P -rOPENBSD_3_6 src</b> |
# <b>cd /usr; cvs checkout -P -rOPENBSD_3_6 src</b> |
|
|
</font></a></h3> |
</font></a></h3> |
|
|
<p> |
<p> |
There are two levels of source tree access: |
|
|
|
<dl> |
|
<dt><strong>Read-write access for developers:</strong> |
|
<dd>Developers who need to commit changes to the source tree must have |
|
an account on the OpenBSD machines. Getting this access will be a |
|
natural result of working on the sources with other OpenBSD developers. |
|
If someone does some good work and shows they can work with the team, |
|
they will get an account. |
|
</dl> |
|
|
|
<dl> |
|
<dt><strong>Read-only access for everyone:</strong> |
|
<dd>Anyone can access the read-only CVS repositories. These copies |
|
of the read-write CVS repository are mirrored often. To use one, |
|
set your <var>CVSROOT</var> environment variable to one of |
|
the following values: |
|
<p> |
|
<em>Please see the note about <a href="#WHICH">ssh vs. rsh</a> below!</em> |
<em>Please see the note about <a href="#WHICH">ssh vs. rsh</a> below!</em> |
<p> |
<p> |
<ul> |
<ul> |
|
|
<em>Note:</em> If your server is listed on here with inaccurate or |
<em>Note:</em> If your server is listed on here with inaccurate or |
unknown information, please contact |
unknown information, please contact |
<a href="mailto:beck@openbsd.org"><tt>beck@openbsd.org</tt></a> |
<a href="mailto:beck@openbsd.org"><tt>beck@openbsd.org</tt></a> |
</p> |
|
|
|
<p> |
<p> |
You may want to use |
You may want to use |
|
|
to find out which server is nearest you. |
to find out which server is nearest you. |
Problems with a server should be reported to the <b>maintainer</b> of the |
Problems with a server should be reported to the <b>maintainer</b> of the |
server in question. |
server in question. |
</dl> |
|
|
|
<h3><a name="CRYPTO"><font color="#0000e0">Getting crypto sources through |
<h3><a name="CRYPTO"><font color="#0000e0">Getting crypto sources through |
cvs(1)</font></a></h3> |
cvs(1)</font></a></h3> |
|
|
</ul> |
</ul> |
Because of the USA ITAR munitions list, |
Because of the USA ITAR munitions list, |
crypto software may only be exported to Canada from the USA. |
crypto software may only be exported to Canada from the USA. |
<p> |
|
<li>The OpenBSD project is looking for more anoncvs servers -- read |
|
on to find out how you can help. |
|
</ul> |
</ul> |
|
|
<h3><a name="EXAMPLE"><font color="#0000e0">Example usages for cvs(1)</font> |
<h3><a name="EXAMPLE"><font color="#0000e0">Example usages for cvs(1)</font> |
|
|
# <strong>cd /usr</strong> |
# <strong>cd /usr</strong> |
# <strong>cvs -q get -rOPENBSD_3_6 -P src</strong> |
# <strong>cvs -q get -rOPENBSD_3_6 -P src</strong> |
</pre> |
</pre> |
</li> |
|
|
|
<li> Anytime afterwards, to `update' this tree: |
<li> Anytime afterwards, to `update' this tree: |
<p> (If you are following <i>current</i>): |
<p> (If you are following <i>current</i>): |
|
|
|
|
Every time you ran this it would synchronize your /usr/src tree. It would |
Every time you ran this it would synchronize your /usr/src tree. It would |
not destroy any of your local changes, rather it would attempt to merge |
not destroy any of your local changes, rather it would attempt to merge |
changes in. If you use obj directories (not obj symbolic links) you may |
changes in. |
wish to append "-I obj" to the cvs command line, this will keep cvs from |
|
spitting out a warning about all the obj directories it is going to |
|
encounter which are not in the repository. |
|
|
|
<p> |
<p> |
<li> NOTE: |
<li> NOTE: |
|
|
# <strong>cd /usr/src</strong> |
# <strong>cd /usr/src</strong> |
# <strong>cvs -d $CVSROOT -q up -Pd</strong> |
# <strong>cvs -d $CVSROOT -q up -Pd</strong> |
</pre> |
</pre> |
</li> |
|
</ul> |
</ul> |
|
|
<p> |
<p> |
|
|
# <strong>cd /usr/ports</strong> |
# <strong>cd /usr/ports</strong> |
# <strong>cvs -q up -rOPENBSD_3_6 -Pd</strong> |
# <strong>cvs -q up -rOPENBSD_3_6 -Pd</strong> |
</pre> |
</pre> |
</li> |
|
</ul> |
</ul> |
|
|
In the above example, <i>-q</i> is optional, only intended to minimize |
In the above example, <i>-q</i> is optional, only intended to minimize |
|
|
(included with the CVS sources) has much more |
(included with the CVS sources) has much more |
information about how CVS can be used. |
information about how CVS can be used. |
|
|
<h4>X11 Source tree</h4> |
|
|
|
<p> |
<p> |
Anoncvs mirrors also carry the OpenBSD X11 (XFree86) source tree. You can adapt |
|
the recipe above to update your XFree86 source tree from the third CD. |
|
You can copy or download the XFree86 3 source tree with the X11 cvs module, |
|
although the current module containing XFree86 4 is XF4. |
|
There are two ways to get the XF4 sources to <i>/usr/XF4</i>: |
|
|
|
<ul> |
|
<li>copy the tree off the CD (assuming the 3rd CD is mounted on /mnt): |
|
<pre> |
|
# <strong>cd /mnt; cp -Rp XF4 /usr</strong> |
|
</pre> |
|
<li>use a union mount with the CD below a writable directory. |
|
<pre> |
|
# <strong>mount -t union -o -b /mnt/XF4 /usr/XF4</strong> |
|
</pre> |
|
</ul> |
|
|
|
After this, <i>/usr/XF4</i> will be ready to be used by cvs. You can for |
|
example update it to -current source (assuming you've already set |
|
the <var>CVSROOT</var> environment variable): |
|
|
|
<pre> |
|
# <strong>cd /usr/XF4</strong> |
|
# <strong>cvs -q update -Pd</strong> |
|
</pre> |
|
|
|
<p> |
|
<strong>Warning:</strong> |
<strong>Warning:</strong> |
When using cvs you should take care that your current directory is either |
When using cvs you should take care that your current directory is either |
the root of the tree you are referencing or in a separate place such as /tmp. |
the root of the tree you are referencing or in a separate place such as /tmp. |
|
|
|
|
<h3><a name="WHICH"><font color="#0000e0">Use rsh(1) or ssh(1)?</font></a></h3> |
<h3><a name="WHICH"><font color="#0000e0">Use rsh(1) or ssh(1)?</font></a></h3> |
|
|
|
CVS supports three access methods between the CVS server and the CVS |
|
client: |
|
|
|
<ul> |
|
<li><b>ssh:</b> Secure Shell can be used to access the anonymous CVS servers. |
|
This is the <i>recommended</i> way of doing so, as it is encrypted. |
|
|
|
<li><b>rsh:</b> Remote Shell can be used on some of the servers for users |
|
who don't have access to <a href="http://www.openssh.com/">ssh</a>. |
|
|
|
<li><b>pserver:</b> pserver is primarily useful for users who are behind |
|
firewalls that block the other two connections. |
|
</ul> |
|
|
<p> |
<p> |
By default, the CVS client uses ssh ("secure shell": |
<b>NOTE:</b> For users wishing to use rsh, you must first set the |
|
<tt>CVS_RSH</tt> environment variable to point to the rsh(1) program: |
|
|
|
<ul> |
|
<li>For Korn/Bourne shells: |
|
<pre> |
|
$ <b>export CVS_RSH=/usr/bin/rsh</b> |
|
</pre> |
|
<li>For csh/tcsh: |
|
<pre> |
|
% <b>setenv CVS_RSH /usr/bin/rsh</b> |
|
</pre> |
|
</ul> |
|
|
|
<p> |
|
By default, OpenBSD's CVS client uses ssh ("secure shell": |
<a href="http://www.openssh.com/">OpenSSH</a>) to talk to the CVS server. |
<a href="http://www.openssh.com/">OpenSSH</a>) to talk to the CVS server. |
|
|
<p> |
<p> |
|
|
<p> |
<p> |
which would mirror the cvs tree into /home/cvs with the sup data |
which would mirror the cvs tree into /home/cvs with the sup data |
files ending up in /home/sup. The full OpenBSD cvs tree is currently |
files ending up in /home/sup. The full OpenBSD cvs tree is currently |
about 2.2GB in size. |
about 2.5GB in size, and will, of course continue to grow. |
|
|
<h3><a name="MIRROR"><font color="#0000e0">Setting up an anoncvs mirror |
<h3><a name="MIRROR"><font color="#0000e0">Setting up an anoncvs mirror |
</font></a></h3> |
</font></a></h3> |