Gentoo Archives: gentoo-lisp

From: "Marijn Schouten (hkBst)" <hkBst@g.o>
To: Stelian Ionescu <sionescu@×××××××××××.net>
Cc: Gentoo Lisp mailing list <gentoo-lisp@l.g.o>
Subject: Re: [gentoo-lisp] common-lisp.eclass cleanup
Date: Sat, 13 Oct 2007 10:13:01
Message-Id: 47109876.7070606@gentoo.org
In Reply to: [gentoo-lisp] common-lisp.eclass cleanup by Stelian Ionescu
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Stelian Ionescu wrote:
5 > hello, I've attached a cleaned up version of common-lisp.eclass. The
6 > purpose of this change is to remove dependency on
7 > dev-lisp/common-lisp-controller and to help reduce code duplication in
8 > ebuilds.
9
10 Thank you very much Stelian.
11
12 > I'll try to explain how CL packages work:
13 >
14 > 1) a CL package installs exactly one directory under
15 > /usr/share/common-lisp/source. This is contained in the variable
16 > $CLPACKAGE and it defaults to $PN. Exception: app-emacs/slime installs a
17 > package named "swank"
18
19 The code shows this is not really true. I couldn't find where a non-default
20 use was possible. You probably need to set:
21
22 [[ CLPACKAGE == "" ]] && CLPACKAGE=${PN}
23
24 or slime won't be able to install swank.
25
26 > 2) a CL package contains one or more ASDF files(.asd). The variable
27 > $CLSYSTEMS contains the names of those systems and defaults to $PN
28 > because in the simplest case there is only one .asd
29 > The .asd files usually are contained in the toplevel of the source
30 > directory and get symlinked into /usr/share/common-lisp/systems
31
32 The code shows this is not really true. Therefore you cannot set $CLPACKAGE
33 and expect it to be used by common-lisp_src_install in its call to
34 common-lisp-system-symlink. Other eclasses use a construct like this:
35
36 [[ CLSYSTEMS == "" ]] && CLSYSTEMS=${PN}
37
38 > 3) in order to find the systems, ASDF must be aware of the
39 > /usr/share/common-lisp/systems directory, which must be added to the
40 > list contained in the variable asdf:*central-registry*;
41 > dev-lisp/gentoo-init takes care of setting up everything for the user
42 >
43 > 4) to load a system, one must start a Lisp and eval
44 > (asdf:oos 'asdf:load-op <system>)
45 >
46 >
47 > The eclass has three explicit "public" functions:
48 >
49 > 1) common-lisp-install(): must receive at least one argument. It installs
50 > files or directories(recursively) into /usr/share/common-lisp/source
51 >
52 > 2) common-lisp-system-symlink(): when called with no arguments, it
53 > installs the systems contained in $CLSYSTEMS. The system names must be
54 > relative paths. Example: CLSYSTEMS="foo1 foo2 src/bar"
55 > When called with some arguments, it installs those systems, ignoring
56 > $CLSYSTEMS
57
58 If I understand correctly the symlinks make it appear like CLPACKAGE contains
59 what CLSYSTEMS contains. What is the point of that or why does it need to be
60 that way?
61
62 > 3) do-debian-credits(): taken from common-lisp-common.eclass, since I've
63 > dropped the inheritance on it
64
65 Which packages use this and what's the point of doing it?
66
67 > and an exported function, common-lisp_src_install, which is sufficient
68 > for a good share of CL packages in the tree
69 >
70 >
71 > if there are no objections, I'll commit the eclass next evening - Oct. 13
72
73 Sure, that's what the overlay is for.
74
75 Marijn
76
77 - --
78 Marijn Schouten (hkBst), Gentoo Lisp project
79 <http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode
80 -----BEGIN PGP SIGNATURE-----
81 Version: GnuPG v2.0.7 (GNU/Linux)
82 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
83
84 iD8DBQFHEJh2p/VmCx0OL2wRAiJcAJ40LXIIIyWiqACIWKFZO/5/PBacVACaA7FH
85 SKD5swy4qwHAn5FxgWJI0mY=
86 =jk9S
87 -----END PGP SIGNATURE-----
88 --
89 gentoo-lisp@g.o mailing list

Replies

Subject Author
Re: [gentoo-lisp] common-lisp.eclass cleanup Stelian Ionescu <sionescu@×××××××××××.net>