| |
CVS Source Repository
The mod_ssl package is developed in a private CVS-based repository. A public
replication of this repository is available through the RSYNC service on
dev.modssl.org for users with special requirements and especially for those
who participate in the development of mod_ssl.
Using your own local CVS repository mirror
Because there is no direct CVS access (not even read-only) to the repository,
you have to establish a local copy of it through the RSYNC service. This is
not a drawback, it's an advantage: Using RSYNC is faster than plain CVS or
even CVSup access (because RSYNC safes bandwidth by using compression, the
client is easily to install and the used algorithm is very fast) and only with
a local repository copy you can actually work reliable and without delays
(think about a cvs diff over the network).
- Make sure you have the excellent RSYNC client program (`rsync')
installed on your system. If not, please grab the RSYNC distribution first
and install it. You can found RSYNC on http://samba.anu.edu.au/rsync/ and
ftp://samba.anu.edu.au/pub/rsync/. We recommend
you to install version 2.3.0 or higher.
- Make sure you have the CVS program (`cvs')
installed on your system. If not, please grab the CVS distribution first
and install it. You can found CVS on http://www.cyclic.com/cvs/info.html and ftp://download.cyclic.com/pub/. We recommend you to install version
1.10.5 or higher.
- With the following command you now can check which
packages are available through the RSYNC service from
dev.modssl.org:
$ rsync rsync://dev.modssl.org/
|
Here the modssl-cvs package is what you usually want to mirror. It
contains the complete CVS repository is currently about 50 MB in size.
- Now you have to decide to which local directory you want to mirror the
mod_ssl CVS repository, say /home/modssl/cvs/. Then
all you have to do is setup a Cron job which regularly runs the
following command:
$ rsync -rztpv --delete \
rsync://dev.modssl.org/modssl-cvs/ \
/home/modssl/cvs/
|
- Finally you now can checkout your working copy of the
CVS development tree into a directory, say /home/modssl/src/:
$ cvs -d /home/modssl/cvs co -d /home/modssl/src mod_ssl
|
- While development goes on you usually want to synchronize with the
latest file revisions from the author. The RSYNC Cron job keeps your local
repository copy up-to-date, but for checked out working tree you have to
run the following command:
$ cd /home/modssl/src
$ cvs update -P -d .
|
This does actually more: When you have done local modifications to the
mod_ssl sources they get merged with the updated revisions from the local
repository. With this you can keep your local modifications for mod_ssl in
a very handy way.
BUT REMEMBER: Because the RSYNC Cron job very time makes
your local repository copy an exact mirror of the original repository on
dev.modssl.org, never check-in your modifications to the local
repository. They get lost on the next RSYNC update! But keeping
modifications in the checked out files is safe. You just have to solve
some merging conflicts from time to time via cvs update.
Inserting the mod_ssl tree into an existing CVS repository
When you already have an existing local CVS repository established (for
instance by mirroring the regular Apache CVS repository), say with a
$CVSROOT of /home/apache/cvs/, you can also just insert the
mod_ssl development tree as a subdirectory into this existing repository.
Just use this command instead of the one above:
$ rsync -rztpv --delete \
rsync://dev.modssl.org/modssl-cvs/mod_ssl/ \
/home/apache/cvs/mod_ssl/
|
Now you can checkout the mod_ssl development tree form the existing CVS
repository via:
$ cvs -d /home/apache/cvs co mod_ssl
|
Working with the mod_ssl development tree
The development tree (either the one under mod_ssl-2.2/ or under
mod_ssl/) contains the following important areas:
- pkg.apache/:
This is the Apache 1.3 source tree where mod_ssl is developed. It's
actually a tree where the Apache 1.3 release versions stay on the vendor
branch (named upstream) while the mod_ssl modifications stay on
the HEAD. After Apache 1.3 versions were released they get imported to the
vendor branch and this way the mod_ssl modifications semi-automatically
(think about conflicts) merge up to the current version. This way it's
also easy to view the mod_ssl changes to the latest Apache release. One
just have to run "cvs diff -rupstream".
- pkg.mod_ssl/:
This is the subarea where the mod_ssl distribution is assembled. No
development itself takes place there. Instead it's automatically assembled
together from pieces out of pkg.apache/ ("make assemble"). And
from there the final mod_ssl distribution tarballs are rolled ("make
dist").
- admin/:
This directory contains administrative files for assisting the author to
assemble the mod_ssl distribution files under pkg.mod_ssl/ out of
the information from pkg.apache/. The important point here is
that all C and HTML source files under pkg.mod_ssl/ are only
copies of the original files under pkg.apache.
| | |