diff options
Diffstat (limited to 'dev-lisp')
-rw-r--r-- | dev-lisp/clisp/Manifest | 4 | ||||
-rw-r--r-- | dev-lisp/clisp/clisp-2.30-r1.ebuild | 77 | ||||
-rw-r--r-- | dev-lisp/clisp/files/clisp.sh | 118 | ||||
-rw-r--r-- | dev-lisp/clisp/files/digest-clisp-2.30-r1 | 1 | ||||
-rw-r--r-- | dev-lisp/clisp/files/install-clc.lisp | 15 |
5 files changed, 213 insertions, 2 deletions
diff --git a/dev-lisp/clisp/Manifest b/dev-lisp/clisp/Manifest index bb250cc39899..edab65166a21 100644 --- a/dev-lisp/clisp/Manifest +++ b/dev-lisp/clisp/Manifest @@ -1,8 +1,8 @@ -MD5 7862c304c8698603450eed100a09df2a ChangeLog 2517 +MD5 779b6208679cb1f0ae0aaa670eda9819 ChangeLog 2517 MD5 49613e495da0b6f83016281175cb56c3 clisp-2.28.ebuild 1380 MD5 647a51c956ce94b73ca66094fc6a019d clisp-2.29.ebuild 1436 MD5 a881823bfbd7a3504b176a965ee2b266 clisp-2.30.ebuild 1460 -MD5 58fb4bc02d16fc2df016b4b5cb92f74f clisp-2.30-r1.ebuild 2199 +MD5 f5cfd31cc6fe90f27f5562aa7a327fe4 clisp-2.30-r1.ebuild 2202 MD5 2ce1383673bccf5309622a0c11c0aca0 files/digest-clisp-2.28 64 MD5 7642efead569d6dbdd43a8d5a89df0a8 files/digest-clisp-2.29 64 MD5 4408eb96e1169c101473012aee6c87ca files/digest-clisp-2.30 64 diff --git a/dev-lisp/clisp/clisp-2.30-r1.ebuild b/dev-lisp/clisp/clisp-2.30-r1.ebuild new file mode 100644 index 000000000000..a6826f9e07ce --- /dev/null +++ b/dev-lisp/clisp/clisp-2.30-r1.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lisp/clisp/clisp-2.30-r1.ebuild,v 1.1 2003/06/07 19:52:08 mkennedy Exp $ + +IUSE="X threads" + +DESCRIPTION="A portable, bytecode-compiled implementation of Common Lisp" +HOMEPAGE="http://clisp.sourceforge.net/" +SRC_URI="mirror://sourceforge/clisp/${P}.tar.bz2" +S=${WORKDIR}/${P} +DEPEND="X? ( x11-base/xfree ) + dev-lisp/common-lisp-controller" + +LICENSE="GPL-2" +SLOT="2" +KEYWORDS="~x86 ~ppc" + +src_unpack() { + unpack ${A} + cd ${S} && patch -p1 <${FILESDIR}/${P}-gentoo.patch || die + cd ${S} && patch -p2 <${FILESDIR}/${P}-linux.lisp-upstream.patch || die +} + +src_compile() { + local myconf="--with-dynamic-ffi + --with-dynamic-modules + --with-export-syscalls + --with-module=wildcard + --with-module=regexp + --with-module=bindings/linuxlibc6" + +# for the time being, these modules cause segv during build +# use X && myconf="${myconf} --with-module=clx/new-clx" +# use threads && myconf="${myconf} --with-threads=POSIX_THREADS" + + einfo "Configuring with $myconf" + ./configure --prefix=/usr ${myconf} || die "./configure failed" + cd src && ./makemake ${myconf} > Makefile + make config.lisp + make || die +} + +src_install() { + cd src && make DESTDIR=${D} prefix=/usr install-bin || die + doman clisp.1 clreadline.3 + dodoc SUMMARY README* NEWS MAGIC.add GNU-GPL COPYRIGHT \ + ANNOUNCE clisp.dvi clisp.html clreadline.dvi clreadline.html + + rm -f ${D}/usr/lib/clisp/base/* + (cd ${D}/usr/lib/clisp/base && ln -s ../full/* .) + chmod a+x ${D}/usr/lib/clisp/clisp-link + + # install common-lisp-controller profile + exeinto /usr/lib/common-lisp/bin + doexe ${FILESDIR}/clisp.sh + insinto /usr/lib/clisp + doins ${FILESDIR}/install-clc.lisp +} + +pkg_preinst() { + local clisp_dir=/usr/lib/clisp + local old_mem=$clisp_dir/full/lispinit.mem + local new_mem=$clisp_dir/full/lispinit-new.mem + local clean_mem=$clisp_dir/full/lispinit-clean.mem + local lisp_run=$clisp_dir/full/lisp.run + + rm -f $old_mem $new_mem $clean_mem $lisp_run +} + +pkg_postinst() { + /usr/sbin/register-common-lisp-implementation clisp +} + +pkg_prerm() { + /usr/sbin/unregister-common-lisp-implementation clisp +} + diff --git a/dev-lisp/clisp/files/clisp.sh b/dev-lisp/clisp/files/clisp.sh new file mode 100644 index 000000000000..f5ed6a1d8fce --- /dev/null +++ b/dev-lisp/clisp/files/clisp.sh @@ -0,0 +1,118 @@ +#!/bin/sh +# Copyright (c) 2002 Kevin M. Rosenberg +# GNU GPL v2 license + +if [ ! -f /usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp ] ; then + echo "*** Can't find common-lisp-controller.lisp ***" >&2 + echo "Please report this as a bug" &>2 + exit 1 +fi + +clisp_dir=/usr/lib/clisp +clc_lib_dir=/usr/lib/common-lisp/clisp + +builder=/usr/bin/clisp +old_mem=$clisp_dir/full/lispinit.mem +new_mem=$clisp_dir/full/lispinit-new.mem +clean_mem=$clisp_dir/full/lispinit-clean.mem + +lisp_error() +{ + echo "Error running $builder" >&2 + exit 1 +} + +mem_error() +{ + echo "Error moving new lisp image $new_mem" >&2 + exit 1 +} + + +case $1 in + rebuild) + echo $0 Rebuilding packages... + shift + while [ -x $builder ] && [ ! -z "$1" ] ; do + echo ...rebuilding $1 + $builder -norc -q -M $old_mem -x " +(let ((*compile-print* nil) + (*compile-progress* nil) + (*compile-verbose* nil) + (*require-verbose* nil) + (*load-verbose* nil) + (mk::*load-source-if-no-binary* nil) + (mk::*bother-user-if-no-binary* nil) + (mk::*compile-during-load* t)) + (handler-case + (progn + (c-l-c:compile-library (quote $1)) + (ext:exit 0) + ) + (error (e) + (ignore-errors (format t \"~&Build error: ~A~%\" e)) + (finish-output) + (ext:exit 1))))" || exit 1 + shift + done + ;; + remove) + echo $0 Removing packages... + shift + while [ ! -z "$1" ] ; do + echo ...removing package $1 + rm -rf "${clc_lib_dir}/$1" + shift + done + rmdir $clc_lib_dir 2> /dev/null + ;; + install-clc) + echo Installing clc... + if [ ! -f $clean_mem ]; then + cp $old_mem $clean_mem + fi + if [ -x $clisp_dir/$lisp_builder ]; then + $builder -norc -q -M $clean_mem \ + -x " +(handler-case + (progn + (when (find-package :c-l-c) ; have to remove + (delete-package :c-l-c)) ; for clisp workaround + (load \"$clisp_dir/install-clc.lisp\") + (saveinitmem \"${new_mem}\") + (ext:exit 0)) + (error (e) + (ignore-errors (format t \"~&install-clc error: ~A~%\" e)) + (finish-output) + (ext:exit 1)))" || lisp_error + mv $new_mem $old_mem || mem_error + fi + ;; + remove-clc) + if [ -f $clean_mem ]; then + cp $clean_mem $old_mem + else + echo "Warning: Can't find original image file $clean_mem. Aborting." >& 2 + fi + ;; + make-user-image) + if [ ! -f $2 ] ; then + echo "Trying to make-user image, but can not find file $2" >&2 + exit 1 + fi + $builder -norc -q -M $old_mem \ + -x "(progn + (load \"$2\") + (saveinitmem \"${new_mem}\")) + (ext:exit 0)" || lisp_error + mv $new_mem $old_mem || mem_error + ;; + *) + echo "`basename $0`: Unknown command $1" >&2 + echo "Known commands are:" >&2 + echo "install-clc, remove-clc, rebuild, remove, and make-user-image" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/dev-lisp/clisp/files/digest-clisp-2.30-r1 b/dev-lisp/clisp/files/digest-clisp-2.30-r1 new file mode 100644 index 000000000000..4c86d812cf54 --- /dev/null +++ b/dev-lisp/clisp/files/digest-clisp-2.30-r1 @@ -0,0 +1 @@ +MD5 29e80e430c6098c78dbd2e56334aaa90 clisp-2.30.tar.bz2 5652698 diff --git a/dev-lisp/clisp/files/install-clc.lisp b/dev-lisp/clisp/files/install-clc.lisp new file mode 100644 index 000000000000..d7615bf7ac7f --- /dev/null +++ b/dev-lisp/clisp/files/install-clc.lisp @@ -0,0 +1,15 @@ +;;;; -*- Mode: Lisp; Package: CL-USER -*- +;;;; Copyright (c) 2002 Kevin M. Rosenberg +;;;; GNU GPL v2 license + +(in-package :cl-user) + +(load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp") + +(in-package :common-lisp-controller) + +(init-common-lisp-controller "/usr/lib/common-lisp/clisp/" :version 3) + +(defun send-clc-command (command package) + "Overrides global definition" + (ext:shell (c-l-c:make-clc-send-command-string command package "clisp"))) |