gentoo
Similar to Debian, the Gentoo Linux distribution also offers a lot of Common Lisp software ports ready to use.

Common Lisp Implementations

* support for Common Lisp Controller

** support for compiling site-wide Common Lisp source from /usr/share/common-lisp/source/ (clc-lite.lisp -- see README.Gentoo)

+ live CVS port

Helping out with Common Lisp in Gentoo

The Gentoo Common Lisp Project was established 10/2006. It includes a mailing list for the development and discussion of Gentoo support for Common Lisp.

The Common Lisp Portage Overlay is now the primary vehicle for development, even for official Gentoo maintainers. The overlay is a git repository. Use the following commands to get started:

Initial download
git clone git://git.overlays.gentoo.org/proj/lisp.git

Periodic update

git pull

This overlay is accessible through layman and is called ``lisp'' (see http://www.gentoo.org/proj/en/overlays/userguide.xml for information on how to install layman and add package overlays). Use ``layman -a lisp'' to add it.

Feel free to develop existing ebuilds and contribute new ones.

An obsolete overlay is also available; it's a Darcs repository.

We hope users will create their own repositories based on the Common Lisp Portage Overlay and push and pull changes between themselves in true distributed fashion. Alternatively you can send patches to the Common Lisp Portage Overlay in a more centralized approach. Send mail to the Gentoo Common Lisp Mailing List to post your Darcs patches announce your repositories.

Reporting Bugs and Feature Requests

The best way to make suggestions, feature requests or requests for new ports is to file a bug with the Gentoo Bugzilla system.

Platform Availability of Common Lisp Ports

Almost all of the Common Lisp implementations and Common Lisp libraries in Portage are available for the following architecture keywords as of 24 May 2005: ~ppc, ~amd64, ~sparc and x86. This means if you're using the STABLE x86 keyword or the UNSTABLE amd64, ppc or sparc keywords, then you do not need to do anything special to have the latest ports available.

If you're using STABLE keywords with amd64, ppc or sparc, then most of the Common Lisp implementations and libraries will not be available to you by default. Luckily there is a mechanism in Portage where you can use specific UNSTABLE keyworded ports while you continue to use STABLE keywords in general. The following section describes how to do this.

Using Ports With Unstable Keywords

If you are using one of the platforms for which the Common Lisp ports have unstable keywords (eg. ppc, amd64 or sparc) and you are using STABLE keywords for your Gentoo system but would like to make available certain ports with UNSTABLE keywords, then this section applies to you.

Refer to the Gentoo System Documentation, Working with Portage, Mixing Software Branches.

Suppose for example you are using the stable ppc keyword (ie. "ppc" is the only keyword listed in your ACCEPT_KEYWORDS in /etc/make.conf). You want to be able to use OpenMCL (dev-lisp/openmcl), SLIME (app-emacs/slime) and Araneida (dev-lisp/cl-araneida) but both are keyworded with "~ppc", ie. the unstable ppc keyword. To make these ports available you must edit /etc/portage/package.keywords and include the following:

app-emacs/slime ~ppc
dev-lisp/openmcl ~ppc
dev-lisp/openmcl-build-tools ~ppc 
dev-lisp/cl-araneida ~ppc
dev-lisp/cl-net-telent-date ~ppc
dev-lisp/cl-split-sequence ~ppc 

This tells Portage to consider those ports as if you had "~ppc" in your ACCEPT_KEYWORDS.

Alternatively, if you like getting all the newest stuff from the overlay, you can unmask all the categories at once. You can do this by adding the following to /etc/portage/package.keywords:

dev-lisp/* ~ppc
dev-scheme/* ~ppc

…or by bulk-unmasking the whole overlay:

*/*::lisp [~arch being optional]

SLIME

Since the SLIME development process rarely produces a release version, two ports of SLIME are available in Portage: app-emacs/slime and app-emacs/slime-cvs. app-emacs/slime is a working snapshot of SLIME CVS. app-emacs/slime will have stable keywords for some platforms. This port is officially supported by the Gentoo Common Lisp development team.

app-emacs/slime-cvs is a "live" CVS port. When you emerge this port it will connect directly to the SLIME CVS server and check out the latest CVS source. Each time you emerge app-emacs/slime-cvs, it will checkout the latest sources.

There is a slight problem within the app-emacs/slime-cvs port with respect to upstream: The Gentoo port of app-emacs/slime-cvs uses a Gentoo specific system definition file (swank.asd) just as the app-emacs/slime port does. However with a "live CVS" port, this file will become incompatible with upstream sources from time to time. When that happens, use the Gentoo Bugzilla.

app-emacs/slime-cvs respects a ECVS_BRANCH environment variable when emerged. If ECVS_BRANCH is unset, then it will default to "HEAD". You can use this environment variable to influence what time CVS should be updated from.

Working Without the Common Lisp Controller

In the Gentoo Common Lisp Portage Overlay, support for the Common Lisp Controller has been removed. People (#lisp, mailing lists) frequently complain about the Common Lisp Controller, so now it's gone. Now SBCL, CMUCL and CLISP are delivered as their upstreams truly intended.

Common Lisp libraries are still installed under /usr/share/common-lisp/source/ though, so a mechanism for compiling that source to a user read-writable path must be provided. This is something the user must do for themselves, however the Gentoo Common Lisp Project intends to provide a guide showing how to use ASDF-BINARY-LOCATIONS to achieve just that. A work in progress version of the guide is available. Gentoo Common Lisp User Guide