Gentoo Archives: gentoo-lisp

From: Stelian Ionescu <sionescu@×××××××××××.net>
To: gentoo-lisp@l.g.o
Subject: Re: [gentoo-lisp] common-lisp.eclass cleanup
Date: Sat, 13 Oct 2007 11:40:53
Message-Id: 20071013113045.GB787015@universe.org
In Reply to: Re: [gentoo-lisp] common-lisp.eclass cleanup by "Marijn Schouten (hkBst)"
1 On Sat, Oct 13, 2007 at 12:05:42PM +0200, Marijn Schouten (hkBst) wrote:
2 [snip]
3 >> I'll try to explain how CL packages work:
4 >>
5 >> 1) a CL package installs exactly one directory under
6 >> /usr/share/common-lisp/source. This is contained in the variable
7 >> $CLPACKAGE and it defaults to $PN. Exception: app-emacs/slime installs a
8 >> package named "swank"
9 >
10 >The code shows this is not really true. I couldn't find where a non-default
11 >use was possible. You probably need to set:
12 >
13 >[[ CLPACKAGE == "" ]] && CLPACKAGE=${PN}
14
15 there's no need for this construct because setting CLPACKAGE in the
16 ebuild is only meant as an override of the default value
17
18 >or slime won't be able to install swank.
19 >
20 >> 2) a CL package contains one or more ASDF files(.asd). The variable
21 >> $CLSYSTEMS contains the names of those systems and defaults to $PN
22 >> because in the simplest case there is only one .asd
23 >> The .asd files usually are contained in the toplevel of the source
24 >> directory and get symlinked into /usr/share/common-lisp/systems
25 >
26 >The code shows this is not really true. Therefore you cannot set $CLPACKAGE
27 >and expect it to be used by common-lisp_src_install in its call to
28 >common-lisp-system-symlink. Other eclasses use a construct like this:
29 >
30 >[[ CLSYSTEMS == "" ]] && CLSYSTEMS=${PN}
31
32 same as before
33
34 >> The eclass has three explicit "public" functions:
35 >>
36 >> 1) common-lisp-install(): must receive at least one argument. It installs
37 >> files or directories(recursively) into /usr/share/common-lisp/source
38 >>
39 >> 2) common-lisp-system-symlink(): when called with no arguments, it
40 >> installs the systems contained in $CLSYSTEMS. The system names must be
41 >> relative paths. Example: CLSYSTEMS="foo1 foo2 src/bar"
42 >> When called with some arguments, it installs those systems, ignoring
43 >> $CLSYSTEMS
44 >
45 >If I understand correctly the symlinks make it appear like CLPACKAGE contains
46 >what CLSYSTEMS contains. What is the point of that or why does it need to be
47 >that way?
48
49 most CL packages contain precisely one .asd file, named exactly as the
50 package; for example, kmrcl-1.97 contains only the kmrcl.asd system.
51 Having CLPACKAGE=$PN and CLSYSTEMS=$PN is a good default
52
53 >> 3) do-debian-credits(): taken from common-lisp-common.eclass, since I've
54 >> dropped the inheritance on it
55 >
56 >Which packages use this
57
58 cl-aima, cl-irc, cl-sql, png, rt and split-sequence
59
60 > and what's the point of doing it?
61
62 as you know, many CL devs don't do releases(or not even versioning) so
63 mkennedy thought well of using the snapshots made by Debian developers
64 instead of making his own snapshots. It's meant as a way to credit
65 Debian for this
66
67 --
68 Stelian Ionescu a.k.a. fe[nl]ix
69 Quidquid latine dictum sit, altum videtur.

Replies

Subject Author
Re: [gentoo-lisp] common-lisp.eclass cleanup "Marijn Schouten (hkBst)" <hkBst@g.o>