next_inactive up previous
Up: UNO: The software working-group Previous: Software Tools

Subsections

Frequently Asked Questions

Questions about CMT

How do I check out the cvs head version of everything?

  1. Check out the uno package (cmt checkout uno)
  2. Check out the packages required by the uno package (cmt checkout -requirements uno/<version>/cmt/requirements)) where <version> is the version of uno that was checkout out in the first step.
  3. Set CMTPATH: (export CMTPATH=`pwd` or setenv CMTPATH `pwd`). This should be set permanently for the future.
  4. Change directory to uno/<version>/cmt.
  5. Configure all the packages (cmt broadcast cmt config).
  6. Then make sure you have the head version with a broadcast command (cmt broadcast "(cd ..; cvs update -A -d)")

How do I compile a library?

The individual libraries can be compiled by going to the ``cmt'' subdirectory and running make. For example, here is how to build unoCore:

  1. Go to the unoCore cmt directory. (cd unoCore/<version>/cmt).
  2. Run make (make).

Is there a ``make world'' command?

All of the libraries can be build from the uno package using the cmt broadcast command.

  1. Go to the uno cmt directory. (cd uno/<version>/cmt).
  2. Broadcast make (cmt broadcast make).

What is the copyright on the library?

The copyrights for the routines are held by the original authors or their institutions (depending on the institution rules), however, since parts of the core library derive from ROOT, which in turn derives from GPL code the library it's best to distribute as source code.

How do I create a new version of a package?

Creating a new version of a package is covered in section 1.3 of this document. This section includes the CMT and CVS commands that need to be executed.

How do I know what packages are available?

If people are diligent they will be listed in uno/cmt/<version>/requirements.

How do I get a package?

Go to the top level directory type cmt checkout <package>.

How do I develop against a base release?

You can create a ``mini release'' that contains a subset of the packages you want to work on. You tell CMT to prefer the packages in this release by setting the CMTPATH variable before sourcing the CMT setup script.

Here is an example to create your own CMT area:

  1. Set up your UNO/CMT environment as usual.
  2. mkdir /path/to/your/code/area
  3. cd /path/to/your/code/area
  4. cmt checkout thePackage

You will now have to log out and back in to remove any CMT environment then do:

  1. Set CMTPATH=/path/to/your/code/area:/path/to/base/release .
  2. Source /path/to/base/release/uno/VERSION/cmt/setup.sh .
  3. Build/edit/develop in /path/to/your/code/area .

You can check your PATH and LD_LIBRARY_PATH and THEPACKAGE{ROOT,CONFIG} variables to make sure they are set correctly.

Questions about CVS

How do I show I'm the author of a commit?

This is broken in the CVS server used.

To have an attribution show up in the email message sent to the commit list, define the CVS_SERVER variable by replacing ``username'' with your user name like:

export CVS_SERVER="env LOGNAME=username cvs"  # for bash
setenv CVS_SERVER "env LOGNAME=username cvs"  # for tcsh

Otherwise, just stick in an attribution to the commit message by hand.


next_inactive up previous
Up: UNO: The software working-group Previous: Software Tools
Big PDK 2004-12-22