teapot_activetcl - TEA Package Management
[ Table Of Contents | Keyword Index ]

teapot_activetcl(n) 1.0 tpm "TEA Package Management"


teapot_activetcl - TEApot ActiveTcl Integration


This document assumes that the reader has read at least the TEApot Introduction and the TEApot Glossary of Terms. It describes how ActiveState's ActiveTcl distribution was modified to work with TEApot, ActiveState's initial implementation package repositories for Tcl packages.


The essence of the changes (explained in detail in the next section) is that the Tcl shells in an installed ActiveTcl get an additional source of packages for execution - a TEApot repository. It is important to note however that the main structure of an ActiveTcl distribution is unchanged, i.e. the packages coming with it are still pre-installed under the directory "lib/".

The new repository is initially empty, but can be filled and managed via the distributed TEApot Repository Client. The two most important commands for this are

teacup list --only newer

The command reports when the registered archives contain newer versions of installed packages.

teacup list --only uninstalled

The command reports packages known to the registered archives, but not installed locally, i.e. completely new packages.

ActiveTcl 8.5

The ActiveTcl 8.5 beta distributions are more affected by the changes than the main 8.4 distribution. As they come with only a small set of packages under "lib/" the only way of getting more was to either install ActiveTcl 8.5 in the same directory as an ActiveTcl 8.4 installation, or to copy package directories from an 8.4 installation to the 8.5 installation.

Now, with TEApot integrated into ActiveTcl, it is possible to simply draw the needed and/or wanted packages from ActiveState's public repository.

The changes in detail

The integration consists of the following changes:

  1. The TEApot Repository Client was added to the distribution.

  2. The shell initialization code in the file "[info library]/init.tcl" was extended (at the bottom) to handle an arbitrary set of local transparent repositories, and the repository at the standard location has been pre-registered with this code.

    The set of repositories used by the code can be managed via teacup, making it easy to use either different or additional repositories than just the default one created by ActiveTcl. This means that if an user wishes to have the new installation use a central repository instead of and/or together with the per-user repository created by ActiveTcl itself then this can be done with a simple invokation of teacup. See also the TEApot FAQ for other use-cases and possibilities.

    The exact location of the standard repository depends on the operating system ActiveTcl is installed on:





    OS X

    "~/Library/Application Support/ActiveState/Teapot/repository"

    (Note the space between "Application" and "Support").

  3. During the installation of ActiveTcl

    1. the above mentioned repository is created, and registered as the default installation repository of the TEApot Repository Client.

    2. ActiveState's public repository of packages at http://teapot.activestate.com is registered as an archive for the TEApot Repository Client, i.e. as a source of packages to install.


This document will undoubtedly contain bugs and other problems. Please report such at the ActiveState ActiveTcl Bug Tracker. The relevant component is teapot. Please also report any ideas for enhancements you may have for either application and/or documentation.