Gentoo Logo
Gentoo Spaceship

Note: Due to technical difficulties, the Archives are currently not up to date. GMANE provides an alternative service for most mailing lists.
c.f. bug 424647
List Archive: gentoo-lisp
Lists: gentoo-lisp: < Prev By Thread Next > < Prev By Date Next >
To: Stelian Ionescu <sionescu@...>
From: "Marijn Schouten (hkBst)" <hkBst@g.o>
Subject: Re: common-lisp.eclass cleanup
Date: Sat, 13 Oct 2007 12:05:42 +0200
Hash: SHA1

Stelian Ionescu wrote:
> 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.

Thank you very much Stelian.

> 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"

The code shows this is not really true. I couldn't find where a non-default
use was possible. You probably need to set:

[[ CLPACKAGE == "" ]] && CLPACKAGE=${PN}

or slime won't be able to install 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

The code shows this is not really true. Therefore you cannot set $CLPACKAGE
and expect it to be used by common-lisp_src_install in its call to
common-lisp-system-symlink. Other eclasses use a construct like this:

[[ CLSYSTEMS == "" ]] && CLSYSTEMS=${PN}

> 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 <system>)
> 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

If I understand correctly the symlinks make it appear like CLPACKAGE contains
what CLSYSTEMS contains. What is the point of that or why does it need to be
that way?

> 3) do-debian-credits(): taken from common-lisp-common.eclass, since I've
> dropped the inheritance on it

Which packages use this and what's the point of doing 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

Sure, that's what the overlay is for.


- --
Marijn Schouten (hkBst), Gentoo Lisp project
<>, #gentoo-lisp on FreeNode
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla -

gentoo-lisp@g.o mailing list

Re: common-lisp.eclass cleanup
-- Stelian Ionescu
common-lisp.eclass cleanup
-- Stelian Ionescu
Lists: gentoo-lisp: < Prev By Thread Next > < Prev By Date Next >
Previous by thread:
common-lisp.eclass cleanup
Next by thread:
Re: common-lisp.eclass cleanup
Previous by date:
common-lisp.eclass cleanup
Next by date:
Re: common-lisp.eclass cleanup

Updated Jun 17, 2009

Summary: Archive of the gentoo-lisp mailing list.

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.