summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lisp')
-rw-r--r--dev-lisp/clisp/Manifest4
-rw-r--r--dev-lisp/clisp/clisp-2.30-r1.ebuild77
-rw-r--r--dev-lisp/clisp/files/clisp.sh118
-rw-r--r--dev-lisp/clisp/files/digest-clisp-2.30-r11
-rw-r--r--dev-lisp/clisp/files/install-clc.lisp15
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")))