Gentoo Archives: gentoo-lisp

From: "Marijn Schouten (hkBst)" <hkBst@g.o>
To: Stelian Ionescu <sionescu@×××××××××××.net>
Cc: gentoo-lisp@l.g.o
Subject: Re: [gentoo-lisp] common-lisp.eclass cleanup
Date: Tue, 16 Oct 2007 11:12:10
Message-Id: 47149ABC.1000408@gentoo.org
In Reply to: Re: [gentoo-lisp] common-lisp.eclass cleanup by Stelian Ionescu
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stelian Ionescu wrote:
> On Mon, Oct 15, 2007 at 10:45:32AM +0200, Christian Faulhammer wrote: > [snip] >> Just a cosmetic...stay with one system. The local variables for Emacs >> are unncessary, or do you have problems with app-emacs/gentoo-syntax? > > ok, here's the last version of the eclass; sorry for the delay
Comments by me within <-- these are my comments --> # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # # Author Matthew Kennedy <mkennedy@g.o> # # This eclass supports the installation of Common Lisp libraries <-- Where are the usage comments? Which are the public functions? --> inherit eutils CLSOURCEROOT="${ROOT}"/usr/share/common-lisp/source/ CLSYSTEMROOT="${ROOT}"/usr/share/common-lisp/systems/ <-- Before I really meant to ask about these two variables. I don't understand what the point is as CLSOURCEROOT will contain symlinks to within CLSYSTEMROOT. Can you explain this please. --> <-- Where is the comment about how to override these variables? --> CLPACKAGE="${PN}" CLSYSTEMS="${PN}" DEPEND="virtual/commonlisp" EXPORT_FUNCTIONS src_install path-absolute-p() { if [ $# -ne 1 ]; then die "path-absolute-p must receive exactly one argument" fi local path="${1}" [ "${path:0:1}" == / ] } <-- I would prefer: path-absolute-p() { [ $# -ne 1 ] && die "path-absolute-p must receive exactly one argument" [ "${1:0:1}" == / ] } or even path-absolute-p() { assert_arg_num 1 # is bash powerful enough to define and use such a function? [ "${1:0:1}" == / ] and its name should be absolute-path-p. } or have it return true only if all its arguments start with '/'. - --> common-lisp-install-relatively() { if [ $# -lt 1 ] || [ $# -gt 2 ] ; then die "common-lisp-install-relatively must receive one or two arguments" fi local thing="${1}" ; local dir="${2}" insinto "${CLSOURCEROOT}/${CLPACKAGE}/${dir}" doins -r "${thing}" } common-lisp-install() { if [ $# -eq 0 ]; then die "common-lisp-install must receive at least one argument" fi local _oldclpackage="${CLPACKAGE}" [ "${1}" == "-p" ] && { CLPACKAGE="${2}" ; shift ; shift ; } for thing in "$@"; do if path-absolute-p "${thing}" ; then common-lisp-install-relatively "${thing}" else common-lisp-install-relatively "${thing}" "$(dirname "${thing}")" fi <-- indentation is screwed up here (and a lot of other places) because of a combination of spaces and tabs. --> done CLPACKAGE="${_oldclpackage}" } common-lisp-install-single-system() { if [ $# -ne 1 ]; then die "common-lisp-install-single-system must receive exactly one argument" fi if [ ! -f "${D}/${CLSOURCEROOT}/${CLPACKAGE}/${1}.asd" ]; then die "${D}/${CLSOURCEROOT}/${CLPACKAGE}/${1}.asd does not exist" fi dosym "${CLSOURCEROOT}/${CLPACKAGE}/${1}.asd" \ "${CLSYSTEMROOT}/$(basename ${1}).asd" <-- this is the symlinking that I ask about in the beginning --> } common-lisp-system-symlink() { dodir "${CLSYSTEMROOT}" # if no arguments received, default to # the contents of ${CLSYSTEMS} if [ $# -eq 0 ]; then for package in ${CLSYSTEMS} ; do common-lisp-install-single-system "${package}" done else local _oldclpackage="${CLPACKAGE}" [ "${1}" == "-p" ] && { CLPACKAGE="${2}" ; shift ; shift ; } <-- what's the point of setting CLPACKAGE here? I'm not sure I like influencing common-lisp-install-single-system in that way. --> [ $# -eq 0 ] && die "common-lisp-system-symlink needs more arguments" for package in "$@" ; do common-lisp-install-single-system "${package}" done CLPACKAGE="${_oldclpackage}" fi } common-lisp-2_src_install() { common-lisp-install *.{lisp,asd} common-lisp-system-symlink dodoc LICENCE* LICENSE* COPYING* COPYRIGHT README HEADER TODO \ CHANGELOG ChangeLog BUGS CONTRIBUTORS *NEWS 2> /dev/null <-- licenses should not be installed separately, /usr/portage/licenses/ contains them already --> } # Many of our Common Lisp ebuilds are either inspired by, or actually # use packages and files from the Debian project's archives. <-- please remove this stuff. It is misleading and non-functional. --> do-debian-credits() { docinto debian for i in copyright README.Debian changelog; do [ -f "${S}"/debian/${i} ] && dodoc "${S}"/debian/${i} done docinto . } # Local Variables: *** # mode: shell-script *** # tab-width: 4 *** # End: *** <-- were these not redundant? --> Most importantly: add comments. Marijn - -- Marijn Schouten (hkBst), Gentoo Lisp project <http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHFJq8p/VmCx0OL2wRAvktAJ9wUftrdekr9fmXEXcQo5RwskHQRQCcDnO2 c0XrE9cjXnwaPV3iKccuxYc= =7ZwI -----END PGP SIGNATURE----- -- gentoo-lisp@g.o mailing list

Replies

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