# CMT

> This configuration management environment, based on some management conventions and comprising several shell-based utilities, is an attempt to formalize software production and especially configuration management around a package-oriented principle.

> The notion of packages represents hereafter a set of software components (that may be applications, libraries, tools etc...) that are to be used for producing a system or a framework. In such an environment, several persons are assumed to participate in the development and the components themselves are either independent or related to each other.

> The environment provides conventions (for naming packages, files, directories and for addressing them) and tools for automating as much as possible the implementation of these conventions. It permits to describe the configuration requirements and automatically deduce from the description the effective set of configuration parameters needed to operate the packages (typically for building them or using them).

## Project management

> CMT is an academic project aimed at providing support to the software developments in the context of large physics experiments. It is supported by the LAL (Laboratoire de l'Accélérateur Linéaire - CNRS), where a support team has been setup:

> Christian Arnault
> Bruno Mansoux
> Antoine Pérus

> This project is managed in an OpenSource-like style, with available sources, and is opened to any contribution from anybody. Although it is currently used by Physics experiments, it is strongly required to stay experiment neutral, and this requirements is fully endorsed in its internal design (eg by ensuring that all possible customizations can always be performed without modifications to the kernel).

> This kind of requirements also implies that portability or modularity issues (including environment independance) are assigned a quite high priority.

## Available documentation

> document (html) | ps | pdf | ppt
> CMT manual | x | x |
> CMT FAQ | x | x |
> Doxygen manual |  |  |
> CMT slides | x |  |
> CMT slides presented at CHEP2000 | x |  |
> Slides on the development model | x |  | x
> A CMT tutorial | x |  | x
> Another CMT tutorial | x |  | x

## The open discussion on CMT

> A mailing list is setup for managing an open discussion on CMT, receiving requests, comments suggestions, bug reports, etc...

> You're welcome to subscribe to this list here or by sending a message with topic "`subscribe CMT-L <your name>`" to `LISTSERV@IN2P3.FR`.

## The Web access to the main CVS repository of CMT

> The CVS repository for CMT is now accessible through CVSWeb here !!

## Dowloading CMT

> The current stable main version of CMT is v1r10. However patched versions can be also produced (fixing bugs or providing backward compatible improvements). Users are welcome to try these new versions when they appear (and report from their experience), although they must be considered as less stable than the main current version.

> Please notice that (at least from v1r6) the odd version numbers must be considered as development or patched versions (and as such are somewhat unstable), and they may be updated from time to time. Whenever such a development version comes to the point it can be stabilized, it will be renamed to the next even number. As soon as a new frozen version is installed, the intermediate patches are removed, and new development versions may be proposed (eg. under the name `v1r<n+1>p<date>`).

> For each of the following tags, you'll find a distribution kit for the sources and (for the latest ones) some prepared binary files.

> - v1r10
> - v1r9p20011011 (current top development version)
> - v1r9p20010927
> - v1r9p20010824
> - v1r9p20010720
> - v1r9p20010704
> - v1r9p20010521
> - v1r8p20010710 (bug fixed with respect to v1r8 should be fetched instead of v1r8!!)
> - v1r8
> - v1r6
> - v1r5
> - v1r4

> In order to download the distribution kit, select a root directory where CMT will be installed. Create there a directory named `CMT` and un-tar all the kits you have selected below from this directory:

> >     > cd <some root>
> >     > uncompress CMTv1r10.tar.Z
> >     > tar xvf CMTv1r10.tar

> If you wish to build CMT on other plateforms, you just need a C++ compiler (supporting templates - STL is not needed) and a bash-like shell.

## Installing and using CMT

> Once the distribution kit is downloaded, and untarred, resulting in a directory structure like:

> >     <some root>/CMT/v1r10/...

> you have to perform the installation by running:

> >     unix> cd <some root>/CMT/v1r10/mgr
> >     unix> ./INSTALL
> >     unix> source setup.[c]sh
> >     unix> [g]make

> >       or

> >     dos> cd <some root>\CMT\v1r10\mgr
> >     dos> call INSTALL.bat
> >     dos> call setup.bat
> >     dos> nmake /f nmake

> Then CMT is installed, and anybody may use CMT simply by doing:

> >     unix-csh> source <some root>/CMT/v1r10/mgr/setup.csh

> >       or

> >     unix-sh> . <some root>/CMT/v1r10/mgr/setup.sh

> >       or

> >     dos> call <some root>\CMT\v1r10\mgr\setup.bat

## Installing and using CMT on Windows

> Some of the global configuration parameters for CMT may optionally be installed as Windows registry entries (although the environment variables style of definitions is fully supported). This can be done using the `install.exe` facility available from the download page or using the standard RegEdit facility :

> - `HKEY_LOCAL_MACHINE/Software/CMT/root` will contain the root directory where CMT is installed (eg. "e:").
> - `HKEY_LOCAL_MACHINE/Software/CMT/version` will contain the current version tag of CMT ("v1r10" for this version).
> - `HKEY_LOCAL_MACHINE/Software/CMT/path/` may optionally contain a set of text values corresponding to the different package global access paths (similar to the CMTPATH environment variable.
> - `HKEY_CURRENT_USER/Software/CMT/path/` may contain a set of text values corresponding to the different package private access paths (complementary to the latter).

Last modified: Wed Jun 2 17:56:32 MET DST