summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Kennedy <mkennedy@gentoo.org>2003-06-07 19:34:41 +0000
committerMatthew Kennedy <mkennedy@gentoo.org>2003-06-07 19:34:41 +0000
commit64a994f9717b229acdadc2b0c389f773c356a8af (patch)
tree2797d8fe0eeda3947854a244a5057b2d89788997 /dev-lisp
parentminor version bump and port to common lisp controller infrastructure (diff)
downloadhistorical-64a994f9717b229acdadc2b0c389f773c356a8af.tar.gz
historical-64a994f9717b229acdadc2b0c389f773c356a8af.tar.bz2
historical-64a994f9717b229acdadc2b0c389f773c356a8af.zip
minor version bump and port to common lisp controller infrastructure
Diffstat (limited to 'dev-lisp')
-rw-r--r--dev-lisp/cmucl-bin/Manifest4
-rw-r--r--dev-lisp/cmucl-bin/cmucl-bin-18e.ebuild74
-rw-r--r--dev-lisp/cmucl-bin/files/cmucl-script.sh108
-rw-r--r--dev-lisp/cmucl-bin/files/digest-cmucl-bin-18e4
-rw-r--r--dev-lisp/cmucl-bin/files/install-clc.lisp51
-rw-r--r--dev-lisp/cmucl-bin/files/site-init.lisp100
6 files changed, 339 insertions, 2 deletions
diff --git a/dev-lisp/cmucl-bin/Manifest b/dev-lisp/cmucl-bin/Manifest
index fa201b960ce5..213b03a39109 100644
--- a/dev-lisp/cmucl-bin/Manifest
+++ b/dev-lisp/cmucl-bin/Manifest
@@ -1,6 +1,6 @@
-MD5 0483eadaf228614bd2ac70e6bd1c3865 ChangeLog 2785
+MD5 8b29ccd3d1a35802f2bc79311c223ea8 ChangeLog 2787
MD5 1609fe6e7d7f4e60e7841fbafcdff6be cmucl-bin-18d-r1.ebuild 1409
-MD5 efa32602698b936b02d62bd0f44b3e3a cmucl-bin-18e.ebuild 2352
+MD5 4103b35caefb44027a4e1d451853b65a cmucl-bin-18e.ebuild 2351
MD5 7eee22c81db5d5a9b61d049cf6ee3017 files/digest-cmucl-bin-18d-r1 152
MD5 2c1718ae0975b0a6e7e1eb224a4832d9 files/digest-cmucl-bin-18e 295
MD5 6875b4835a6abe4dca969aeb96e5b8b9 files/install-clc.lisp 1689
diff --git a/dev-lisp/cmucl-bin/cmucl-bin-18e.ebuild b/dev-lisp/cmucl-bin/cmucl-bin-18e.ebuild
new file mode 100644
index 000000000000..e17798450a01
--- /dev/null
+++ b/dev-lisp/cmucl-bin/cmucl-bin-18e.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2003 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl-bin/cmucl-bin-18e.ebuild,v 1.1 2003/06/07 19:34:37 mkennedy Exp $
+
+DESCRIPTION="CMUCL Lisp. This conforms to the ANSI Common Lisp Standard"
+HOMEPAGE="http://www.cons.org/cmucl/"
+LICENSE="public-domain"
+DEPEND="dev-lisp/common-lisp-controller"
+IUSE=""
+SLOT="0"
+KEYWORDS="~x86"
+SRC_URI="ftp://ftp.cn.freebsd.org/pub/cmucl/release/${PV}/cmucl-${PV}-x86-linux.tar.bz2
+ ftp://ftp.cn.freebsd.org/pub/cmucl/release/${PV}/cmucl-${PV}-x86-linux.extra.tar.bz2
+ ftp://ftp.cn.freebsd.org/pub/cmucl/release/${PV}/cmucl-${PV}.source.tar.bz2
+ ftp://ftp.cn.freebsd.org/pub/cmucl/release/${PV}/cmucl-${PV}.documents.tar.bz2"
+
+S=${WORKDIR}/${P}
+
+src_unpack() {
+ mkdir ${P}
+ cd ${P}
+ unpack cmucl-${PV}-x86-linux.tar.bz2
+ unpack cmucl-${PV}-x86-linux.extra.tar.bz2
+ unpack cmucl-${PV}.documents.tar.bz2
+ unpack cmucl-${PV}.source.tar.bz2
+}
+
+src_install() {
+ dobin bin/*
+ cp -a lib ${D}/usr
+
+# dodir /usr/share/common-lisp/
+# cp -a src ${D}/usr/share/common-lisp/source
+
+ insinto /etc/common-lisp/cmucl
+ doins ${FILESDIR}/site-init.lisp
+ dosym /etc/common-lisp/cmucl/site-init.lisp /usr/lib/cmucl/lib/site-init.lisp
+
+ doman man/man1/*.1
+ dodoc doc/cmucl/README doc/cmucl/release-*.txt
+ dodoc `find ${S}/package/doc/cmucl/ -type f \( -name \*.ps -o -name \*.pdf \) -print`
+ dodoc ${FILESDIR}/${PV}/README.Gentoo
+
+ [ -f /etc/lisp-config.lisp ] || touch ${D}/etc/lisp-config.lisp
+
+ dodir /etc/env.d
+ cat >${D}/etc/env.d/50cmucl <<EOF
+CMUCLLIB=/usr/lib/cmucl
+EOF
+ mv ${D}/usr/lib/cmucl/lib/lisp.core ${D}/usr/lib/cmucl/lib/lisp-dist.core
+ dosym /usr/lib/cmucl/lib/lisp-dist.core /usr/lib/cmucl/lisp-dist.core
+
+ insinto /usr/lib/cmucl
+ doins ${FILESDIR}/install-clc.lisp
+
+ exeinto /usr/lib/common-lisp/bin
+ cp ${FILESDIR}/cmucl-script.sh cmucl.sh
+ doexe cmucl.sh
+}
+
+pkg_postinst() {
+ einfo ">>> Fixing permissions for executables and directories..."
+ find /usr/share/common-lisp/source -type d -o \( -type f -perm +111 \) \
+ |xargs chmod 755
+ einfo ">>> fix permissions for non-executable files..."
+ find /usr/share/common-lisp/source -type f ! -perm -111 \
+ |xargs chmod 644
+
+ /usr/sbin/register-common-lisp-implementation cmucl
+}
+
+pkg_postrm() {
+ /usr/sbin/unregister-common-lisp-implementation cmucl
+} \ No newline at end of file
diff --git a/dev-lisp/cmucl-bin/files/cmucl-script.sh b/dev-lisp/cmucl-bin/files/cmucl-script.sh
new file mode 100644
index 000000000000..357968f74524
--- /dev/null
+++ b/dev-lisp/cmucl-bin/files/cmucl-script.sh
@@ -0,0 +1,108 @@
+#!/bin/sh
+
+if [ ! -f /usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp ] ; then
+ cat <<EOF
+$0: cannot find the common-lisp-controller source.
+This should not happen. Please report this
+as a bug.
+EOF
+ exit 0
+fi
+
+# did the config file get upgraded?
+if `grep -q common-lisp-controller.lisp /etc/common-lisp/cmucl/site-init.lisp /var/lib/cmucl/site-init.lisp 2> /dev/null` ; then
+ cat <<EOF2
+The /etc/common-lisp/cmucl/site-init.lisp file is still using the
+old common-lisp-controller system. Please upgrade the file to the
+new system, as used in the new config file that should be at
+/etc/common-lisp/cmucl/site-init.lisp.dpkg-new
+EOF2
+ exit 0
+fi
+
+IMAGE=/usr/lib/cmucl/lisp.core
+DIR=cmucl
+
+case $1 in
+ rebuild)
+ echo $0 rebuilding...
+ shift
+ while [ ! -z "$1" ] ; do
+ echo rebuilding $1
+ /usr/bin/lisp -core $IMAGE -eval "
+(let ((*gc-verbose* nil)
+ (*compile-print* nil)
+ (*compile-progress* nil)
+ (*compile-verbose* nil)
+ (*require-verbose* nil)
+ (*load-verbose* nil))
+ (load \"/etc/common-lisp/cmucl/site-init.lisp\"))
+(let ((*gc-verbose* nil)
+ (*compile-print* t)
+ (*compile-progress* t)
+ (*compile-verbose* t)
+ (*require-verbose* t)
+ (*load-verbose* t)
+ (mk::*load-source-if-no-binary* nil)
+ (mk::*bother-user-if-no-binary* nil)
+ (mk::*compile-during-load* t))
+
+ (handler-case
+ (progn
+ (with-compilation-unit (:optimize '((inhibit-warnings 3)))
+ (common-lisp-controller:compile-library :$1))
+ (unix:unix-exit 0))
+ (error (e)
+ (ignore-errors (format t \"~&Built Error: ~A~%\" e))
+ (finish-output)
+ (unix:unix-exit 1)))))" -nositeinit -noinit -batch -quiet || exit 1
+ shift
+ done
+ ;;
+ remove)
+ echo $0 removing packages...
+ shift
+ while [ ! -z "$1" ] ; do
+ rm -rf "/usr/lib/common-lisp/$DIR/$1"
+ shift
+ done
+ rmdir /usr/lib/common-lisp/$DIR 2> /dev/null
+ ;;
+ install-defsystem|install-clc)
+ echo installing the clc...
+ ( cd /usr/lib/cmucl
+ [ -f $IMAGE ] && rm -f $IMAGE
+ /usr/bin/lisp \
+ -core ${IMAGE%.core}-dist.core -load /usr/lib/cmucl/install-clc.lisp \
+ -nositeinit -noinit -batch -quiet && \
+ mv new-lisp.core $IMAGE || (echo FAILED ; ln ${IMAGE%.core}-dist.core $IMAGE ) )
+ ;;
+ remove-defsystem|remove-clc)
+ [ -f $IMAGE ] && rm -f $IMAGE
+ ;;
+ make-user-image)
+ if [ ! -f $1 ] ; then
+ echo Cannot find file $1 to load and dump!
+ exit 321
+ fi
+ /usr/bin/lisp -core $IMAGE -eval "
+(load \"$1\")
+ ;;
+ ;; Enable the garbage collector. But first fake it into thinking that
+ ;; we don't need to garbage collect. The save-lisp is going to call
+ ;; purify so any garbage will be collected then.
+#-gengc (setf lisp::*need-to-collect-garbage* nil)
+(gc-on)
+ ;;
+ ;; Save the lisp.
+(setf ext:*batch-mode* nil)
+(save-lisp #p\"home:lisp.core\")" -nositeinit -noinit -batch -quiet && echo New image created
+ ;;
+ *)
+ echo $0 unkown command $1
+ echo known commands: install-clc, remove-clc,rebuild and remove
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/dev-lisp/cmucl-bin/files/digest-cmucl-bin-18e b/dev-lisp/cmucl-bin/files/digest-cmucl-bin-18e
new file mode 100644
index 000000000000..b5a944ad806d
--- /dev/null
+++ b/dev-lisp/cmucl-bin/files/digest-cmucl-bin-18e
@@ -0,0 +1,4 @@
+MD5 695f4a6abc5af6276f776a9739c2c7e7 cmucl-18e-x86-linux.tar.bz2 6404635
+MD5 b04a7ad4172b22faf5f536fe028a157a cmucl-18e-x86-linux.extra.tar.bz2 3408518
+MD5 1b785a0dc95cf432d9481229662599e2 cmucl-18e.source.tar.bz2 3500479
+MD5 f2d46f8bcee4d66598f294473bd73de6 cmucl-18e.documents.tar.bz2 1257497
diff --git a/dev-lisp/cmucl-bin/files/install-clc.lisp b/dev-lisp/cmucl-bin/files/install-clc.lisp
new file mode 100644
index 000000000000..11b6cee2724f
--- /dev/null
+++ b/dev-lisp/cmucl-bin/files/install-clc.lisp
@@ -0,0 +1,51 @@
+;;; -*- Mode: LISP; Package: CL-USER -*-
+;;;
+;;; Copyright Peter Van Eynde, 2001
+;;;
+;;; License: LGPL v2
+;;;
+(in-package "COMMON-LISP-USER")
+
+(unless (ignore-errors
+ (load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp"))
+ (unix:unix-exit 1))
+
+(unless (ignore-errors
+ (common-lisp-controller:init-common-lisp-controller
+ "/usr/lib/common-lisp/cmucl/"
+ :version 3)
+ t)
+ (format t "~%Error during init of common-lisp-controller~%")
+ (unix:unix-exit 1))
+
+(defun common-lisp-controller:send-clc-command (command package)
+ (let ((process
+ (ext:run-program "/usr/bin/clc-send-command"
+ (list
+ (ecase command
+ (:recompile "recompile")
+ (:remove "remove"))
+ (format nil "~A" package)
+ "cmucl"
+ "--quiet")
+ :wait t)))
+ (if (= (ext:process-exit-code process)
+ 0)
+ ;; no error
+ (values)
+ (error "An error happend during ~A of ~A for ~A~%Please see /usr/share/doc/common-lisp-controller/REPORTING-BUGS.gz"
+ (ecase command
+ (:recompile "recompilation")
+ (:remove "removal"))
+ package
+ "cmucl"))))
+
+(unless (ignore-errors
+ ;; it loaded, configure it for common-lisp-controller use:
+ (format t "~%Saving to new-lisp.core...")
+ (ext:gc :full t)
+ (setf ext:*batch-mode* nil)
+ (ext:save-lisp "new-lisp.core"
+ :purify t))
+ (unix:unix-exit 1))
+
diff --git a/dev-lisp/cmucl-bin/files/site-init.lisp b/dev-lisp/cmucl-bin/files/site-init.lisp
new file mode 100644
index 000000000000..342a84e200a7
--- /dev/null
+++ b/dev-lisp/cmucl-bin/files/site-init.lisp
@@ -0,0 +1,100 @@
+;;; -*- Mode: Lisp; Package: System -*-
+;;;
+;;; **********************************************************************
+;;; This code was written as part of the CMU Common Lisp project at
+;;; Carnegie Mellon University, and has been placed in the public domain.
+;;;
+
+;;; Heavy modifications by Peter Van Eynde
+
+(in-package "SYSTEM")
+
+(if (probe-file "/etc/lisp-config.lisp")
+ (load "/etc/lisp-config.lisp")
+ (format t "~%;;; Hey: there is no /etc/lisp-config.lisp file, please run \"dpkg-reconfigure common-lisp-controller\" as root"))
+
+;;; If you have sources installed on your system, un-comment the following form
+;;; and change it to point to the source location. This will allow the Hemlock
+;;; "Edit Definition" command and the debugger to find sources for functions in
+;;; the core.
+(setf (ext:search-list "target:")
+ '(
+ "/usr/share/common-lisp/source/cmucl/" ; object dir
+ ))
+
+(setf (ext:search-list "library:") '("/usr/lib/cmucl/"))
+;;; for safety...
+
+;;; optional extentions to the lisp image: delete if you
+;;; don't like them :-).
+(in-package :common-lisp-user)
+
+;;; newbie functions, delete if you don't like them
+
+#-hemlock
+(defun ed (&rest rest)
+ (multiple-value-bind (return errorp)
+ (ignore-errors (require :cmucl-hemlock))
+ (if errorp
+ (error "Sorry, cannot find hemlock, please install and use ilisp. Reason: ~S" errorp)
+ (apply #'ed rest))))
+
+(defun help ()
+ (format t "~
+Welcome to CMUCL for Linux.
+
+If you aren't running this with ilisp in emacs,
+or aren't intending to use hemlock then you
+deserve to lose. :-)
+
+Read the documentation in /usr/share/doc/cmucl.
+
+(quit) is to quit.
+(ed) starts hemlock (if installed)
+(demo) shows a list of demos
+(describe 'progn) gives information about progn for
+ example.
+(inspect '*a*) interactively inspects *a* for example.
+"))
+
+(defun demo ()
+ (format t "Some demos are in the source package, some in the
+normal package.
+
+General demos:
+CLX demos:
+ if you have installed cmucl-source you can do:
+ (require :cmucl-clx)
+ (load \"cl-library:cmucl-clx;demo;hello\")
+ (xlib::hello-world \"\")
+ (load \"cl-library:;cmucl-clx;demo;menu\")
+ (xlib::just-say-lisp \"\")
+ (xlib::pop-up \"\"
+ '(\"Linux\" \"FreeBSD\" \"OpenBSD\"))
+ exit by pressing control+C followed by a keypress.
+
+Clue demos:
+ if you have installed the clue package you can do:
+ (require :clue)
+ (load \"cl-library:;clue;examples;menu\")
+ (clue-examples::beatlemenuia \"\")
+ (clue-examples::pick-one \"\"
+ \"One\"
+ \"Two\"
+ \"Three\")
+ (clue-examples::just-say-lisp \"\")
+
+ or you can use the Clio demos:
+ (require :clio)
+ (require :clio-examples)
+ (clio-examples::sketch :host "")
+
+Pictures demos:
+ (require :pictures)
+ (load \"cl-library:;pictures;examples;road-demo\")
+ (pictures::road-demo)
+ press control-a to animate
+
+"))
+
+