The Mozilla
Organization
Our Mission
Who We Are
Getting Involved
Community
Editorials
What's New
Development
Roadmap
Module Owners
Blue Sky
Projects
Status
Tools
Products
Source Code
Binaries
Documentation
License Terms
Bug Reports
Search
Feedback


source code via cvs

In addition to the other methods, the Mozilla source code is available via CVS.

What's CVS? CVS is the Concurrent Versions System. Start at Cyclic Software's pages to learn more.

Anyone can check out the sources via CVS, while only certain people have the ability to check in (those people, basically, are the module owners and their delegates. More details on this will be forthcoming.)

To check out the sources, you need to be running CVS 1.9 or later, and have your $CVSROOT set to

    :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot
    

The password for user anonymous is anonymous.

What follows are more in-depth instructions on two topics:

  • First, detailed platform-specific instructions on how to check out the source repository from scratch.

  • Second, assuming you have previously downloaded the source code from our FTP server, how to convert your existing source directory into one that can be used with our CVS server (meaning you will only need to download the files that have changed since the FTP archive was constructed, rather than downloading the whole thing again.)



cvs checkout

Here is how you do a cvs checkout from our server on various platforms.

Note that following these instructions will cause only the platform specified to be updated. To get all the source for all platforms replace MozillaSourceUnix with MozillaSource in the instructions.

Also note that CVS is slower than FTP.

So, please read this entire document, including the conversion section, before doing anything rash.

  • Unix:

    You can find the most recent version of CVS at cyclic.com's Unix pages. You check out as follows. (Syntax is for csh; if you use sh, I'm sure you'll know what to do. If you don't, you've got bigger problems...)

      % setenv CVSROOT :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot    
      % cvs login
      (Logging in to anonymous@cvs-mirror.mozilla.org)
      CVS password: anonymous
      
      % cvs -z3 checkout MozillaSourceUnix
      cvs server: Updating mozilla
      U mozilla/CHANGES.html
      U mozilla/LEGAL
      U mozilla/LICENSE
      U mozilla/Makefile
      ...
      

    You only ever need to run cvs login once. It will remember anonymous's password in your $HOME/.cvspass file.

    The -z3 parameter is to cause the files (and diffs) to be compressed while in transit. This is almost always the right thing to do; so much so that you should probably just put cvs -z3 in your $HOME/.cvsrc file, to make it be the default on all CVS commands.

    (Note that -z9 offers a logarithmic improvement in compression at an exponential cost in CPU time. Therefore, we recommend -z3; that seems to be about optimal in most cases.)

  • Windows:

    You must have CVS version 1.9.28 or newer. Versions 1.9.27 and earlier, including version 1.9, have bugs. In particular, if the cvs process never terminates, you need to upgrade.

    You can find a suitably recent version of CVS at cyclic.com's Windows pages.

    In order to use cvs under Windows, you must have unpacked the source from the `tar' file, not from a `zip'. The zip file format does not store dates with enough accuracy for cvs, so updating source unpacked from a zip with cvs takes a really long time because the cvs client must send most files to the server to determine if they have changed.

    The checkout procedure is basically the same as for Unix:

      C:\> set CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot    
      C:\> set HOME=\TEMP
      C:\> cvs login
      (Logging in to anonymous@cvs-mirror.mozilla.org)
      CVS password: anonymous
      
      C:\> cvs -z3 checkout MozillaSourceWin
      cvs server: Updating mozilla
      U mozilla\CHANGES.html
      U mozilla\LEGAL
      U mozilla\LICENSE
      U mozilla\Makefile
      ...
      

    If the -z3 parameter doesn't work, that means you don't have cvs and/or gzip installed correctly. Your life will be much easier if you correct this, rather than omitting that parameter.

    You also need to have the HOME environment variable set to a sensible directory, or cvs will complain.

  • Macintosh:

    We know of two CVS options for Macintosh that work with our CVS server: those are ``MacCVS Pro'' and ``MacCVS.'' Despite the similar names, the two packages are unrelated.

    MacCVS Pro is a GUI program, while MacCVS is a command-line program that works with MPW, and behaves more like the Unix and Windows CVS clients.

    To use MacCVS Pro:
    Download it from maccvs.org. Then get the pre-made session file; and follow the instructions in the enclosed file, ``How to check out.''

    Note that MacCVS Pro does not support the -z3 parameter for compressed transfers, which means that your checkouts will be painfully, glacially, unconscionably slow.

    To use MacCVS:
    Download it from digapp.com. You need version 3.1a7 or later (earlier versions won't work.) Then do the following:

    1. Install the MPW CVS tool:

      Copy cvs (a MPW tool) and cvs2.Lib into your MPW Tools folder;

    2. Set some environment variables inside MPW:

        set CVSROOT ':pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot'
        set USER 'anonymous'
        set CVS_GETPASS 'anonymous'
        set MAC_DEFAULT_RESOURCE_ENCODING AppleSingle
        export CVSROOT
        export USER
        export CVS_GETPASS
        export MAC_DEFAULT_RESOURCE_ENCODING
        

      1. Log in into CVS from inside MPW (you only need to do this once):

        cvs login
        

      2. Check out the tree:

        cvs checkout mozilla
        

      Note that, like MacCVS Pro, MacCVS does not support the -z3 parameter for compressed transfers, which means that your checkouts will be painfully, glacially, unconscionably slow.

      Other Mac CVS tools:
      There are a few different CVS options for MacOS listed on cyclic.com's Macintosh pages, but I don't currently know which, if any, of these work with the mozilla.org cvs server. The beatings will continue until answers are found. Thank you for your patience.

    • OS/2:

      You can find a suitably recent version of CVS at cyclic.com's OS/2 pages. The checkout instructions for OS/2 are identical to those for Windows, above.

      There is one detail, however: currently, the most recent OS/2 code for Mozilla is not (yet) on the trunk of the CVS tree: it is on a branch. So, if you are doing OS/2 development, you probably want to check out that branch instead. You do that like so:

        C:\> cvs -z3 checkout -r OS2_BRANCH mozilla
        

      See the CVS documentation for more information on how branches work.



    converting a tarball to a working cvs sandbox

    Chances are, you've already downloaded the source code from our FTP server (or one of its many mirror sites). Even if you haven't, you might want to consider doing so: it's faster than checking out the whole tree over CVS.

    Our source tarballs contain CVS info. If you have a tarball dated 1998-04-29 or later, it is already set up to talk to our public server, cvs-mirror.mozilla.org. All you need to do is this:

    • download a tarball;
    • unpack it;
    • and run ``cvs -z3 checkout ModuleName'' in the same directory you unpacked the tarball, where 'ModuleName' is the name of the module you're working on (MozillaSourceUnix, MozillaSourceWin, or MozillaSourceMac, depending on your platform; to list all the modules in the repository, 'cvs co -c').
    • BEWARE! Attempting to perform the above will clobber any local changes you have made, if you are using any CVS client previous to version 1.9. You have been warned.

    That's it! This will cause the server to send the changes that have been made in the CVS repository since the time the tarball was created, bringing you up to date.



Copyright © 1998 The Mozilla Organization.