diff options
author | Matthew Kennedy <mkennedy@gentoo.org> | 2003-06-07 19:34:41 +0000 |
---|---|---|
committer | Matthew Kennedy <mkennedy@gentoo.org> | 2003-06-07 19:34:41 +0000 |
commit | ec065e2f3f67e7e410f8de7e42575bb190561b9e (patch) | |
tree | 005d9ba75836d49b62056d23efd72893d441eb00 /dev-lisp/cmucl-bin | |
parent | minor version bump and port to common lisp controller infrastructure (diff) | |
download | gentoo-2-ec065e2f3f67e7e410f8de7e42575bb190561b9e.tar.gz gentoo-2-ec065e2f3f67e7e410f8de7e42575bb190561b9e.tar.bz2 gentoo-2-ec065e2f3f67e7e410f8de7e42575bb190561b9e.zip |
minor version bump and port to common lisp controller infrastructure
Diffstat (limited to 'dev-lisp/cmucl-bin')
-rw-r--r-- | dev-lisp/cmucl-bin/ChangeLog | 8 | ||||
-rw-r--r-- | dev-lisp/cmucl-bin/Manifest | 4 | ||||
-rw-r--r-- | dev-lisp/cmucl-bin/cmucl-bin-18e.ebuild | 74 | ||||
-rw-r--r-- | dev-lisp/cmucl-bin/files/cmucl-script.sh | 108 | ||||
-rw-r--r-- | dev-lisp/cmucl-bin/files/digest-cmucl-bin-18e | 4 | ||||
-rw-r--r-- | dev-lisp/cmucl-bin/files/install-clc.lisp | 51 | ||||
-rw-r--r-- | dev-lisp/cmucl-bin/files/site-init.lisp | 100 |
7 files changed, 346 insertions, 3 deletions
diff --git a/dev-lisp/cmucl-bin/ChangeLog b/dev-lisp/cmucl-bin/ChangeLog index a07f961c45af..d68bb302a9f7 100644 --- a/dev-lisp/cmucl-bin/ChangeLog +++ b/dev-lisp/cmucl-bin/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-lisp/cmucl-bin # Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl-bin/ChangeLog,v 1.5 2003/02/12 06:10:59 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lisp/cmucl-bin/ChangeLog,v 1.6 2003/06/07 19:34:37 mkennedy Exp $ + +*cmucl-bin-18e (07 Jun 2003) + + 07 Jun 2003; Matthew Kennedy <mkennedy@gentoo.org> cmucl-bin-18e.ebuild, + files/cmucl-script.sh, files/install-clc.lisp, files/site-init.lisp: + new version and port implementation to common lisp controller infrastructure *cmucl-bin-18d-r1 (18 Aug 2002) 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 + +")) + + |