diff options
author | Matthew Kennedy <mkennedy@gentoo.org> | 2003-09-21 02:26:02 +0000 |
---|---|---|
committer | Matthew Kennedy <mkennedy@gentoo.org> | 2003-09-21 02:26:02 +0000 |
commit | 07881ff14396172ce39c82dfbb1b840bbda0c5c0 (patch) | |
tree | cef12f9701be801875aafd5b6679d8b90dac1ddb /dev-lisp/sbcl | |
parent | resolves bug 28340 (diff) | |
download | historical-07881ff14396172ce39c82dfbb1b840bbda0c5c0.tar.gz historical-07881ff14396172ce39c82dfbb1b840bbda0c5c0.tar.bz2 historical-07881ff14396172ce39c82dfbb1b840bbda0c5c0.zip |
resolves bug 28340
Diffstat (limited to 'dev-lisp/sbcl')
-rw-r--r-- | dev-lisp/sbcl/Manifest | 7 | ||||
-rw-r--r-- | dev-lisp/sbcl/files/digest-sbcl-0.8.3 | 4 | ||||
-rw-r--r-- | dev-lisp/sbcl/files/install-clc.lisp | 46 | ||||
-rw-r--r-- | dev-lisp/sbcl/files/sbcl.rc | 7 | ||||
-rw-r--r-- | dev-lisp/sbcl/files/sbcl.sh | 80 | ||||
-rw-r--r-- | dev-lisp/sbcl/sbcl-0.8.3.ebuild | 102 |
6 files changed, 242 insertions, 4 deletions
diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest index 5b99845dc81c..399aef33277a 100644 --- a/dev-lisp/sbcl/Manifest +++ b/dev-lisp/sbcl/Manifest @@ -1,17 +1,16 @@ -MD5 bf436c597f36acda7da5b1d7d7f51b3d ChangeLog 2409 +MD5 5009c012207380f7e2ae8edd0e22b785 ChangeLog 2703 MD5 f67859fbfee204bba3ee73ee8abe994a sbcl-0.6.12.ebuild 1053 MD5 a6e113337aada357e7aa8b93dce9c82a sbcl-0.7.5.ebuild 1372 MD5 215c765767ee81f9cbae0696e4fc0c53 sbcl-0.7.6-r1.ebuild 1482 MD5 3f7c2bc02639ca69e478db920d8b3704 sbcl-0.7.7.ebuild 1479 MD5 6c9f9c96627678efaa377d40692ea969 sbcl-0.8.1.ebuild 1534 -MD5 4813c38a994e688f183266606db881ea sbcl-0.8.3.ebuild 2562 -MD5 b55652c2793ead3ec9d19c10588c320a sbcl-0.8.3.ebuild~ 2572 +MD5 d913694a716b741d4edb240f3d8049b3 sbcl-0.8.3.ebuild 2562 MD5 36e1837606337c53dc21111b18146143 files/digest-sbcl-0.6.12 150 MD5 61c9382b669d5b190b434be62664253e files/digest-sbcl-0.7.5 219 MD5 bc8e434b44fc3abc15022afc66be888f files/digest-sbcl-0.7.6-r1 300 MD5 1b52d1cb085fdfec090a08604c2fd4ed files/digest-sbcl-0.7.7 300 MD5 1821ff9718a8d902b416c691258c9a40 files/digest-sbcl-0.8.1 304 MD5 149ae58f2a3254c2746b71452292abf2 files/sbcl.sh 2170 -MD5 6e40a080b566cc78dfe522ae34eec0a7 files/common-lisp-controller.lisp 1338 MD5 6b18a7ce9fb1c3c721b30b93b9404be5 files/sbcl.rc 311 MD5 1c37a6df08d60b9008ded7dfb2b584ab files/digest-sbcl-0.8.3 301 +MD5 6e40a080b566cc78dfe522ae34eec0a7 files/install-clc.lisp 1338 diff --git a/dev-lisp/sbcl/files/digest-sbcl-0.8.3 b/dev-lisp/sbcl/files/digest-sbcl-0.8.3 new file mode 100644 index 000000000000..11a7dd0771ca --- /dev/null +++ b/dev-lisp/sbcl/files/digest-sbcl-0.8.3 @@ -0,0 +1,4 @@ +MD5 5989896de7eba3827556b1a11e297c91 sbcl-0.8.3-source.tar.bz2 2001385 +MD5 6c193e328cdb472787ef78401ee5294c sbcl-0.8.1-x86-linux-binary.tar.bz2 6348098 +MD5 1cbd667b28d6d5afabccc759315eea70 sbcl-0.7.13-binary-linux-ppc.tar.bz2 5339432 +MD5 b377256bca8ccdb9cc8170a104b227fd sbcl-0.8.3-html.tar.bz2 45551 diff --git a/dev-lisp/sbcl/files/install-clc.lisp b/dev-lisp/sbcl/files/install-clc.lisp new file mode 100644 index 000000000000..842a51ba696a --- /dev/null +++ b/dev-lisp/sbcl/files/install-clc.lisp @@ -0,0 +1,46 @@ +;;; -*- Mode: LISP; Package: CL-USER -*- +;;; +;;; Copyright (C) Peter Van Eynde 2001 and Kevin Rosenberg 2002-2003 +;;; +;;; License: LGPL v2 +;;; +(in-package "COMMON-LISP-USER") + +(unless (ignore-errors + (load "/usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp")) + (sb-unix:unix-exit 1)) + +(unless (ignore-errors + (common-lisp-controller:init-common-lisp-controller + "/usr/lib/common-lisp/sbcl/" + :version 3) + t) + (format t "~%Error during init of common-lisp-controller~%") + (sb-unix:unix-exit 1)) + +(defun common-lisp-controller:send-clc-command (command package) + (let ((process + (sb-ext:run-program "/usr/bin/clc-send-command" + (list + (ecase command + (:recompile "recompile") + (:remove "remove")) + (format nil "~A" package) + "sbcl" + "--quiet") + :wait t))) + (if (= (sb-ext:process-exit-code process) 0) + (values) + (error "An error happened during ~A of ~A for ~A~%Please see /usr/share/doc/common-lisp-controller/REPORTING-BUGS.gz" + (ecase command + (:recompile "recompilation") + (:remove "removal")) + package + "sbcl")))) + +(ignore-errors + (format t "~%Saving to sbcl-new.core...") + (sb-ext:gc :full t) +;(setf ext:*batch-mode* nil) + (sb-ext:save-lisp-and-die "sbcl-new.core" + :purify t)) diff --git a/dev-lisp/sbcl/files/sbcl.rc b/dev-lisp/sbcl/files/sbcl.rc new file mode 100644 index 000000000000..5362dcfddba2 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl.rc @@ -0,0 +1,7 @@ +;;; -*- Lisp -*- +;;; this file gets installed as /etc/sbcl.rc and run on every +;;; invocation of sbcl + +(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")) diff --git a/dev-lisp/sbcl/files/sbcl.sh b/dev-lisp/sbcl/files/sbcl.sh new file mode 100644 index 000000000000..2e1bc27017c6 --- /dev/null +++ b/dev-lisp/sbcl/files/sbcl.sh @@ -0,0 +1,80 @@ +#!/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. +EOF + exit 0 +fi + +build_error() +{ + echo "Build failure $1" + exit 1 +} + +case $1 in + rebuild) + echo $0 rebuilding... + shift + echo rebuilding $1 + sbcl --noinform --sysinit /etc/sbcl.rc --userinit /dev/null \ + --disable-debugger \ + --eval \ +"(handler-case + (progn + (c-l-c:compile-library (quote $1)) + (sb-unix:unix-exit 0)) + (error (e) + (ignore-errors (format t \"~&Build error: ~A~%\" e)) + (finish-output) + (sb-unix:unix-exit 1)))" || build_error + ;; + remove) + echo $0 removing packages... + shift + while [ ! -z "$1" ] ; do + rm -rf "/usr/lib/common-lisp/sbcl/$1" + shift + done + ;; + install-defsystem | install-clc) + echo $0 loading and dumping clc. + ( cd /usr/lib/sbcl + sbcl --core /usr/lib/sbcl/sbcl-dist.core \ + --noinform --sysinit /etc/sbcl.rc --userinit /dev/null \ + --load "/usr/lib/sbcl/install-clc.lisp" 2> /dev/null + mv sbcl-new.core sbcl.core || (echo FAILED ; cp sbcl-dist.core sbcl.core ) ) + ;; + remove-defsystem | remove-clc) + echo $0 removing clc-enabled image + cp /usr/lib/sbcl/sbcl-dist.core /usr/lib/sbcl/sbcl.core + ;; + make-user-image) + if [ ! -f "$2" ] ; then + echo "Trying to make-user image, but can not find file $2" >&2 + exit 1 + fi + sbcl --core /usr/lib/sbcl/sbcl-dist.core \ + --noinform --sysinit /dev/null --userinit /dev/null \ + --eval \ +"(handler-case + (progn + (load \"$2\") + (sb-ext:gc :full t) + (sb-ext:save-lisp-and-die \"/usr/lib/sbcl/sbcl-new.core\" :purify t)) + (sb-unix:unix-exit 0)) + (error (e) + (ignore-errors (format t \"make-user-image error: ~A~%\" e)) + (finish-output) + (sb-unix:unix-exit 1)))" + mv sbcl-new.core sbcl.core || (echo FAILED ; cp sbcl-dist.core sbcl.core ) + ;; + *) + echo $0 unkown command $1 + echo known commands: rebuild, remove, make-user-image, install-clc and remove-clc + exit 1 + ;; +esac + +exit 0 diff --git a/dev-lisp/sbcl/sbcl-0.8.3.ebuild b/dev-lisp/sbcl/sbcl-0.8.3.ebuild new file mode 100644 index 000000000000..3c10e87096b0 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-0.8.3.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2003 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lisp/sbcl/sbcl-0.8.3.ebuild,v 1.1 2003/09/21 02:25:56 mkennedy Exp $ + +DESCRIPTION="Steel Bank Common Lisp" +HOMEPAGE="http://sbcl.sourceforge.net/" +BV_X86=0.8.1 +BV_PPC=0.7.13 +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + x86? ( mirror://sourceforge/sbcl/${PN}-${BV_X86}-x86-linux-binary.tar.bz2 ) + ppc? ( mirror://sourceforge/sbcl/${PN}-${BV_PPC}-binary-linux-ppc.tar.bz2 ) + mirror://sourceforge/sbcl/${P}-html.tar.bz2" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~x86 ~ppc -sparc " +PROVIDE="virtual/commonlisp" +# the SRC_URI trickery needs this +DEPEND=">=sys-apps/portage-2.0.27 + dev-lisp/common-lisp-controller" + +src_unpack() { + + if ( use x86 ) ; then + unpack ${PN}-${BV_X86}-x86-linux-binary.tar.bz2 + mv ${PN}-${BV_X86} x86-binary + elif ( use ppc ) ; then + unpack ${PN}-${BV_PPC}-ppc-linux-binary.tar.bz2 + mv ${PN}-${BV_PPC}-ppc-linux ppc-binary + fi + + unpack ${P}-source.tar.bz2 + unpack ${P}-html.tar.bz2 +} + +src_compile() { + local bindir + use x86 && bindir=x86-binary + use ppc && bindir=ppc-binary + + #export INSTALL_ROOT=${D}/usr + #export SBCL_HOME=${D}/usr/lib/sbcl + export SBCL_HOME=../${bindir}/output + export GNUMAKE="make" + + sh make.sh "../${bindir}/src/runtime/sbcl" || die + sh make-target-contrib.sh || die +} + +src_install() { + local LIB=${DESTTREE}/lib/sbcl + + doman doc/sbcl.1 + dobin src/runtime/sbcl + + dodoc BUGS CREDITS NEWS README INSTALL COPYING + dohtml doc/html/* + + dodir ${LIB} + insinto ${LIB} + cp -r output/* ${D}/${LIB} + doins output/sbcl.core + newins output/sbcl.core sbcl-dist.core + + insinto /usr/lib/sbcl + doins ${FILESDIR}/install-clc.lisp + + exeinto /usr/lib/common-lisp/bin + cp ${FILESDIR}/sbcl.sh sbcl.sh + doexe sbcl.sh + + insinto /etc + doins ${FILESDIR}/sbcl.rc + + dodir /usr/share/common-lisp/source/sbcl + cp -r src/* ${D}/usr/share/common-lisp/source/sbcl + + dodir /etc/env.d + + echo "SBCL_HOME=${LIB}" > ${D}/etc/env.d/10sbcl + + export INSTALL_ROOT=${D}/usr + export SBCL_HOME=${D}/usr/lib/sbcl + export GNUMAKE="make" + + sh install.sh || die +} + +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 sbcl +} + +pkg_postrm() { + /usr/sbin/unregister-common-lisp-implementation sbcl +}
\ No newline at end of file |