hello, I've attached a cleaned up version of common-lisp.eclass. The purpose of this change is to remove dependency on dev-lisp/common-lisp-controller and to help reduce code duplication in ebuilds. I'll try to explain how CL packages work: 1) a CL package installs exactly one directory under /usr/share/common-lisp/source. This is contained in the variable $CLPACKAGE and it defaults to $PN. Exception: app-emacs/slime installs a package named "swank" 2) a CL package contains one or more ASDF files(.asd). The variable $CLSYSTEMS contains the names of those systems and defaults to $PN because in the simplest case there is only one .asd The .asd files usually are contained in the toplevel of the source directory and get symlinked into /usr/share/common-lisp/systems 3) in order to find the systems, ASDF must be aware of the /usr/share/common-lisp/systems directory, which must be added to the list contained in the variable asdf:*central-registry*; dev-lisp/gentoo-init takes care of setting up everything for the user 4) to load a system, one must start a Lisp and eval (asdf:oos 'asdf:load-op ) The eclass has three explicit "public" functions: 1) common-lisp-install(): must receive at least one argument. It installs files or directories(recursively) into /usr/share/common-lisp/source 2) common-lisp-system-symlink(): when called with no arguments, it installs the systems contained in $CLSYSTEMS. The system names must be relative paths. Example: CLSYSTEMS="foo1 foo2 src/bar" When called with some arguments, it installs those systems, ignoring $CLSYSTEMS 3) do-debian-credits(): taken from common-lisp-common.eclass, since I've dropped the inheritance on it and an exported function, common-lisp_src_install, which is sufficient for a good share of CL packages in the tree if there are no objections, I'll commit the eclass next evening - Oct. 13 -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur.