mod_ssl    
 Tarballs |  Signatures |  Mirror 
 
Title
About
News
Documents
Example
Source Code
Support
Related

 

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).
  1. 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.

  2. 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.

  3. 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.

  4. 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/
    

  5. 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
    

  6. 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.