common-lisp-controller
A system for installing Common Lisp libraries and source on Debian, Fedora, Gentoo and Ubuntu linux systems.

Released packages are available from http://packages.debian.org. As of August 2009, the latest package for the Debian sid (unstable) distribution is version 6.18.

Low traffic mailing lists are clc-users and clc-devel. Debian packaging questions are directed to pkg-common-lisp-devel. An old source repository, last updated in 2005, is at Debian alioth.

Authors are Peter Van Eynde, Kevin Rosenberg and Rene van Bevern.

A manual for version 4 (2004) is at https://alioth.debian.org/scm/viewvc.php/clc/DESIGN.txt?view=markup&root=clc, though additional documentation is included with the package.

Currently, Common Lisp Controller is supported by the following Common Lisp implementations in Debian:

The very first thing you have to do is:

# aptitude install common-lisp-controller
Installation of other Common Lisp libraries should then be a simple matter of:
# aptitude install <package name>
e.g aptitude install cl-split-sequence You're good to go now.

How it works (note: we're describing version 4 here):

  • it's expected to be used with a package system that can run setup scripts after installing things.
  • lisp packages are distributed as source code, placed in the /usr/share/common-lisp/source/package/.
  • asdf is required. Each package needs a system definition that expects it to be found in /usr/share/common-lisp/systems/.
  • it does not anymore use the logical pathname system. Instead it overrides the asdf:output-files method to divert the fasls to a user, implementation and library specific location. At the moment /var/cache/common-lisp-controller/user-name/implementation/library/.
  • To use a library the user just has to use (clc:clc-require :foo)
  • To recompile all libraries the user can use (clc:clc-build-all-packages) or (clc:clc-build-all-packages t) to ignore any errors during rebuilding.
  • On installation of an implementation it should run /usr/sbin/register-common-lisp-implementation bar where bar is the name of the implementation. On removal it should call the /usr/sbin/unregister-common-lisp-implementation bar command.
  • An implementation should provide a /usr/lib/common-lisp/bin/bar.sh script that implements the install-clc command.
  • On installation libraries should call /usr/sbin/register-common-lisp-source foo on removal /usr/sbin/unregister-common-lisp-source foo.
  • Also there is now a debconf interface for site-name stuff that implementations should use if possible. The results are stored in /etc/lisp-config.lisp.

We simply add a system location to asdf's ASDF:*CENTRAL-REGISTRY*, so the native locations still work. To install local packages, either use asdf-install or modify at ASDF:*CENTRAL-REGISTRY* to also point to your files.

installer