CM3 CVSup Access

The CM3 CVS source repository from elego Software Solutions which is used for CM3 development and bugfixes is now available via CVSup pserver access.

CVSup is a client/server application for the replication of collections of files through a TCP connection. It is especially suited for CVS repositories, as it understands the complete syntax of RCS files. It is probably the fastest mirroring tool currently available. Better still, it is open source and subject to the free BSD style license. More information about CVSup and precompiled programs for several platforms can be found at

CVSup is completely written in Modula-3, and the server now installed for the cm3 distribution has of course been compiled with the latest cm3 compiler. You can use the cvsup client to replicate the complete or partial cm3 repository, or to checkout the latest cm3 sources, or those belonging to a named configuration. Please have a look at the sample cvsupfile.cm3 provided for the cm3 distribution. You will probably want to change the donwload location of the files and the source collections to be copied. Please read if you are not familiar with CVSup's installation and use.

Once you've adapted the cvsupfile to your personal needs and preferences, you can start the download with

      cvsup -L 2 cvsupfile.cm3

if you want the GUI, or with

      cvsup -g -L 2 cvsupfile.cm3

for simple command line access. -L specifies the log level and can vary between 0 and 2.

Please note that the complete repository is currently about 280 MB in size.

How to refuse modules when downloading via CVSup

The following email documents how to refuse modules to decrease the size of the download. In this specific case, gcc sources are refused.

---------------------------- Message ----------------------------
Subject: Re: cm3-m3-sys CVS tag minus GCC?
From:    "Darko" <address removed>
Date:    Thu, August 31, 2006 16:15
To:      "Olaf Wagner" <address removed>

On 31/08/2006, at 3:01 PM, Olaf Wagner wrote:
>> Would there happen to be a tag I can use with CVSUP that will sync
>> all the sources under the cm3-m3-sys tag without the GCC
>> distribution? Or maybe some option that will have that effect? I've
>> got a very limited Internet connection and don't need GCC.
> Yes. You can use refuse files for this purpose. See
> for details. If it works, it would be great if you could send us an
> example we can put on the web pages.

Thanks for that Olaf, here is a quick rundown:

First you need to consult your CVSUP configuration file and get your
base and prefix directories. Mine appear in the file as:

*default base=/Users/darko/app
*default prefix=/Users/darko/app/m3

Then construct a file named 'refuse' listing directories you want to
refuse (with wildcards if you wish) relative to the prefix. I want to
exclude everything under 'm3-sys/m3cc' in the 'cm3' collection which
is written to a directory called 'cm3', so I write:


in this file and any other directories I want to exclude separated by
whitespace, no comments allowed. Now put the 'refuse' file in the
directory with the same name as the collection and in the 'sup'
directory under the base directory. So I put the file under:


If you have a different setup you may need to consult