From acda044f93efe0ddf3454adaca61c9240c522894 Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Thu, 25 Mar 2004 21:09:35 +0000 Subject: *** empty log message *** --- dev-lisp/sbcl/ChangeLog | 13 ++- dev-lisp/sbcl/Manifest | 12 ++ .../files/0.8.9/GNUmakefile-SBCL_HOME-gentoo.patch | 12 ++ dev-lisp/sbcl/files/0.8.9/README.Gentoo | 21 ++++ .../files/0.8.9/customize-target-features.lisp | 19 ++++ .../customize-target-features.lisp.no-threads | 19 ++++ dev-lisp/sbcl/files/0.8.9/install-clc.lisp | 53 +++++++++ .../0.8.9/posix-tests.lisp-sandbox-gentoo.patch | 21 ++++ dev-lisp/sbcl/files/0.8.9/sbcl-asdf-install.1 | 126 +++++++++++++++++++++ dev-lisp/sbcl/files/0.8.9/sbcl.sh | 80 +++++++++++++ dev-lisp/sbcl/files/0.8.9/sbclrc | 18 +++ dev-lisp/sbcl/files/digest-sbcl-0.8.9 | 6 + dev-lisp/sbcl/sbcl-0.8.9.ebuild | 110 ++++++++++++++++++ 13 files changed, 509 insertions(+), 1 deletion(-) create mode 100644 dev-lisp/sbcl/files/0.8.9/GNUmakefile-SBCL_HOME-gentoo.patch create mode 100644 dev-lisp/sbcl/files/0.8.9/README.Gentoo create mode 100644 dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp create mode 100644 dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp.no-threads create mode 100644 dev-lisp/sbcl/files/0.8.9/install-clc.lisp create mode 100644 dev-lisp/sbcl/files/0.8.9/posix-tests.lisp-sandbox-gentoo.patch create mode 100644 dev-lisp/sbcl/files/0.8.9/sbcl-asdf-install.1 create mode 100644 dev-lisp/sbcl/files/0.8.9/sbcl.sh create mode 100644 dev-lisp/sbcl/files/0.8.9/sbclrc create mode 100644 dev-lisp/sbcl/files/digest-sbcl-0.8.9 create mode 100644 dev-lisp/sbcl/sbcl-0.8.9.ebuild diff --git a/dev-lisp/sbcl/ChangeLog b/dev-lisp/sbcl/ChangeLog index 525654604cbd..dde56d08ef65 100644 --- a/dev-lisp/sbcl/ChangeLog +++ b/dev-lisp/sbcl/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for dev-lisp/sbcl # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lisp/sbcl/ChangeLog,v 1.30 2004/03/24 21:52:12 mkennedy Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lisp/sbcl/ChangeLog,v 1.31 2004/03/25 21:09:35 mkennedy Exp $ + +*sbcl-0.8.9 (25 Mar 2004) + + 25 Mar 2004; sbcl-0.8.9.ebuild, + files/0.8.9/GNUmakefile-SBCL_HOME-gentoo.patch, files/0.8.9/README.Gentoo, + files/0.8.9/customize-target-features.lisp, + files/0.8.9/customize-target-features.lisp.no-threads, + files/0.8.9/install-clc.lisp, + files/0.8.9/posix-tests.lisp-sandbox-gentoo.patch, + files/0.8.9/sbcl-asdf-install.1, files/0.8.9/sbcl.sh, files/0.8.9/sbclrc: + New upstream minor version 24 Mar 2004; sbcl-0.8.8.ebuild, files/0.8.8/sbclrc: Corrected path to system-wide SBCL configuration (should be /etc/sbclrc, not diff --git a/dev-lisp/sbcl/Manifest b/dev-lisp/sbcl/Manifest index 2ee2429a7a2c..3b93159465dc 100644 --- a/dev-lisp/sbcl/Manifest +++ b/dev-lisp/sbcl/Manifest @@ -1,15 +1,27 @@ MD5 d18405614de9aad5058c0373a1935cce sbcl-0.8.7-r1.ebuild 4255 +MD5 8ae6549e563ad1a1c1fad3b6eac4e79b sbcl-0.8.9.ebuild 3508 MD5 8ae6549e563ad1a1c1fad3b6eac4e79b sbcl-0.8.8.ebuild 3508 MD5 141aeff5bf9d9e3d8beced995f0b36e1 sbcl-0.8.7.ebuild 4095 MD5 49199114d49a530a3ee885ce68462a48 ChangeLog 6732 MD5 c93195a12a4bb997ca623db927bb6676 metadata.xml 997 MD5 6e40a080b566cc78dfe522ae34eec0a7 files/install-clc.lisp 1338 +MD5 5bb7b04d0735d7a7bd968381fd1ea095 files/digest-sbcl-0.8.9 467 MD5 d4bfc144f303942ff574404fbd2e078d files/digest-sbcl-0.8.7 528 MD5 47993934f65e81900eff345eec6fabe5 files/gc.lisp-linux-2.6.patch 664 MD5 d4bfc144f303942ff574404fbd2e078d files/digest-sbcl-0.8.7-r1 528 MD5 149ae58f2a3254c2746b71452292abf2 files/sbcl.sh 2170 MD5 8f65effa5ebc5a69e7e80277c9fee2ad files/digest-sbcl-0.8.8 467 MD5 3e968969b9da3f3637feb09076b819a2 files/sbcl.rc 640 +MD5 ab7a8d4c4cdc70154ab5aaec9cdacb6d files/0.8.9/install-clc.lisp 1463 +MD5 35e2f72a0d987cbc1e659368ad33827c files/0.8.9/README.Gentoo 696 +MD5 a0edd1aecd1416792590693e5a6d2cb3 files/0.8.9/customize-target-features.lisp.no-threads 577 +MD5 6f05f494b80fa25732a658deec4133c8 files/0.8.9/customize-target-features.lisp 574 +MD5 630e6f165f6d0651342150929af8e506 files/0.8.9/sbcl.sh 2169 +MD5 3e968969b9da3f3637feb09076b819a2 files/0.8.9/sbcl.rc 640 +MD5 653f804ebcd167d167f8163756b7da17 files/0.8.9/sbclrc 639 +MD5 f908831e67d70633c015f9900cf14668 files/0.8.9/sbcl-asdf-install.1 4382 +MD5 f03239faafd7bab9fb5f858b3cdfdf3b files/0.8.9/posix-tests.lisp-sandbox-gentoo.patch 1860 +MD5 caa3d8db6f86703586d56a0546cf7e1a files/0.8.9/sbcl-gentoo.patch 1341 MD5 6bd69b507b65c1673290970c034a307c files/0.8.7/README.Gentoo 695 MD5 b8407a8b953cc86ccab6b4c9b3148024 files/0.8.7/customize-target-features.lisp.no-threads 557 MD5 62313101e0dfbc6a70bd0a0f9b6c3304 files/0.8.7/customize-target-features.lisp 555 diff --git a/dev-lisp/sbcl/files/0.8.9/GNUmakefile-SBCL_HOME-gentoo.patch b/dev-lisp/sbcl/files/0.8.9/GNUmakefile-SBCL_HOME-gentoo.patch new file mode 100644 index 000000000000..6532d51626a1 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/GNUmakefile-SBCL_HOME-gentoo.patch @@ -0,0 +1,12 @@ +diff -ur sbcl-0.8.9.original/src/runtime/GNUmakefile sbcl-0.8.9/src/runtime/GNUmakefile +--- sbcl-0.8.9.original/src/runtime/GNUmakefile 2004-03-25 00:06:29.545754104 -0600 ++++ sbcl-0.8.9/src/runtime/GNUmakefile 2004-03-25 00:08:43.216433072 -0600 +@@ -34,6 +34,7 @@ + # symlink to Config-foo. + include Config + ++CFLAGS += -DSBCL_HOME='"/usr/lib/sbcl"' + + C_SRCS = alloc.c backtrace.c breakpoint.c coreparse.c \ + dynbind.c gc-common.c globals.c interr.c interrupt.c \ +Only in sbcl-0.8.9/src/runtime: GNUmakefile~ diff --git a/dev-lisp/sbcl/files/0.8.9/README.Gentoo b/dev-lisp/sbcl/files/0.8.9/README.Gentoo new file mode 100644 index 000000000000..ac3a9fc04732 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/README.Gentoo @@ -0,0 +1,21 @@ +-*- outline -*- + +Gentoo GNU/Linux specific notes for SBCL +---------------------------------------- + +This is the README.Gentoo file from /usr/share/doc/@PF@/ +directory. + + * The Gentoo port uses patches from the Debian project's SBCL port. + + * An SBCL with support for multi-threading on GNU/Linux for x86 is + available with 'USE="threads" emerge dev-lisp/sbcl' + + * asdf-install is installed as sbcl-asdf-install (the man-page is + similarly named). + + * Support for the Common Lisp Controller is available. + +If you encounter any problems or have suggestions, use +http://bugs.gentoo.org. Please don't bother the upstream authors +unless you are absolutely certain it is not Gentoo-related. diff --git a/dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp b/dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp new file mode 100644 index 000000000000..7663f4802619 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp @@ -0,0 +1,19 @@ +;;;; -*- Lisp -*- + +;;;; This is the features customization lambda form we will use if the +;;;; user has "threads" in USE *and* they are building for the x86 +;;;; architecture. + +;;;; :sb-futex is dependent on the presence of a Linux 2.6.x kernel. +;;;; For users of Linux 2.4.x kernels, this is still okay to enable, +;;;; as SBCL will fall back if the futex system-call is not present. + +(lambda (list) + (flet ((enable (x) + (pushnew x list)) + (disable (x) + (setf list (remove x list)))) + (enable :sb-thread) + (enable :sb-futex) + (disable :sb-test)) + list) diff --git a/dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp.no-threads b/dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp.no-threads new file mode 100644 index 000000000000..100d84059509 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/customize-target-features.lisp.no-threads @@ -0,0 +1,19 @@ +;;;; -*- Lisp -*- + +;;;; This is the features customization lambda form we will use if the +;;;; user has "threads" in USE *and* they are building for the x86 +;;;; architecture. + +;;;; :sb-futex is dependent on the presence of a Linux 2.6.x kernel. +;;;; For users of Linux 2.4.x kernels, this is still okay to enable, +;;;; as SBCL will fall back if the futex system-call is not present. + +(lambda (list) + (flet ((enable (x) + (pushnew x list)) + (disable (x) + (setf list (remove x list)))) + (disable :sb-thread) + (disable :sb-futex) + (disable :sb-test)) + list) diff --git a/dev-lisp/sbcl/files/0.8.9/install-clc.lisp b/dev-lisp/sbcl/files/0.8.9/install-clc.lisp new file mode 100644 index 000000000000..2f9a28fcab12 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/install-clc.lisp @@ -0,0 +1,53 @@ +;;; -*- Mode: LISP; Package: CL-USER -*- +;;; +;;; Copyright (C) Peter Van Eynde 2001 and Kevin Rosenberg 2002-2003 +;;; +;;; License: LGPL v2 +;;; +;;; Some modifications for Gentoo, Matthew Kennedy +;;; + +(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)) + +(in-package :common-lisp-controller) + +(defun 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")))) + +(in-package :common-lisp-user) + +(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/0.8.9/posix-tests.lisp-sandbox-gentoo.patch b/dev-lisp/sbcl/files/0.8.9/posix-tests.lisp-sandbox-gentoo.patch new file mode 100644 index 000000000000..7248bb70a86a --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/posix-tests.lisp-sandbox-gentoo.patch @@ -0,0 +1,21 @@ +diff -ur sbcl-0.8.9.original/contrib/sb-posix/posix-tests.lisp sbcl-0.8.9/contrib/sb-posix/posix-tests.lisp +--- sbcl-0.8.9.original/contrib/sb-posix/posix-tests.lisp 2004-03-25 00:06:29.000000000 -0600 ++++ sbcl-0.8.9/contrib/sb-posix/posix-tests.lisp 2004-03-25 09:40:41.963190544 -0600 +@@ -96,7 +96,7 @@ + (sb-posix:syscall-errno c))) + #.sb-posix::eexist) + +-(deftest mkdir.error.2 ++#+nil (deftest mkdir.error.2 + (handler-case + (sb-posix:mkdir "/" 0) + (sb-posix:syscall-error (c) +@@ -149,7 +149,7 @@ + (sb-posix:syscall-errno c))) + #.sb-posix::enotdir) + +-(deftest rmdir.error.3 ++#+nil (deftest rmdir.error.3 + (handler-case + (sb-posix:rmdir "/") + (sb-posix:syscall-error (c) diff --git a/dev-lisp/sbcl/files/0.8.9/sbcl-asdf-install.1 b/dev-lisp/sbcl/files/0.8.9/sbcl-asdf-install.1 new file mode 100644 index 000000000000..6cccec277d55 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/sbcl-asdf-install.1 @@ -0,0 +1,126 @@ +.TH SBCL-ASDF-INSTALL 1 "$Date: 2004/03/25 21:09:35 $" +.AT 3 +.SH NAME +SBCL-ASDF-INSTALL -- "Download an Install ASDF Systems" + +.SH DESCRIPTION + +Downloads and installs an ASDF system or anything else that looks +convincingly like one, including updating the ASDF:*CENTRAL-REGISTRY* +symlinks for all the toplevel .asd files it contains. Please read +this file before use: in particular: this is an automatic tool that +downloads and compiles stuff it finds on the 'net. Please look at the +SECURITY section and be sure you understand the implications + + +.SH USAGE + +This can be used either from within an SBCL instance: + +* (require 'asdf-install) +* (asdf-install:install 'xlunit) ; for example + +or standalone from the shell: + +$ sbcl-asdf-install xlunit + +Each argument may be - + + - The name of a cliki page. asdf-install visits that page and finds + the download location from the `:(package)' tag - usually rendered + as "Download ASDF package from ..." + + - A URL, which is downloaded directly + + - A local tar.gz file, which is installed + + +.SH SECURITY CONCERNS: READ THIS CAREFULLY + +When you invoke asdf-install, you are asking SBCL to download, +compile, and install software from some random site on the web. Given +that it's indirected through a page on CLiki, any malicious third party +doesn't even need to hack the distribution server to replace the +package with something else: he can just edit the link. + +For this reason, we encourage package providers to crypto-sign their +packages (see details at the URL in the PACKAGE CREATION section) and +users to check the signatures. asdf-install has three levels of +automatic signature checking: "on", "off" and "unknown sites", which +can be set using the configuration variables described in +CUSTOMIZATION below. The default is "unknown sites", which will +expect a GPG signature on all downloads except those from +presumed-good sites. The current default presumed-good sites are +CCLAN nodes, and two web sites run by SBCL maintainers: again, see +below for customization details + + +.SH CUSTOMIZATION + +If the file $HOME/.asdf-install exists, it is loaded. This can be +used to override the default values of exported special variables. +Presently these are + +.TP 3 +\-- +*PROXY* + defaults to $http_proxy environment variable +.TP 3 +\- +*CCLAN-MIRROR* + preferred/nearest CCLAN node. See the list at +http://ww.telent.net/cclan-choose-mirror +.TP 3 +\- +*SBCL-HOME* + Set from $SBCL_HOME environment variable. This should already be +correct for whatever SBCL is running, if it's been installed correctly +.TP 3 +\- +*VERIFY-GPG-SIGNATURES* + Verify GPG signatures for the downloaded packages? + NIL - no, T - yes, :UNKNOWN-LOCATIONS - only for URLs which aren't in CCLAN and don't begin with one of the prefixes in *SAFE-URL-PREFIXES* +.TP 3 +\- +*LOCATIONS* + Possible places in the filesystem to install packages into. See default +value for format +.TP 3 +\- +*SAFE-URL-PREFIXES* + List of locations for which GPG signature checking won't be done when +*verify-gpg-signatures* is :unknown-locations + + +.SH PACKAGE CREATION + +If you want to create your own packages that can be installed using this +loader, see the "Making your package downloadable..." section at + + + +.SH HACKERS NOTE + +Listen very carefully: I will say this only as often as it appears to +be necessary to say it. asdf-install is not a good example of how to +write a URL parser, HTTP client, or anything else, really. +Well-written extensible and robust URL parsers, HTTP clients, FTP +clients, etc would definitely be nice things to have, but it would be +nicer to have them in CCLAN where anyone can use them - after having +downloaded them with asdf-install - than in SBCL contrib where they're +restricted to SBCL users and can only be updated once a month via SBCL +developers. This is a bootstrap tool, and as such, will tend to +resist changes that make it longer or dependent on more other +packages, unless they also add to its usefulness for bootstrapping. + + +.SH TODO + +a) gpg signature checking would be better if it actually checked against +a list of "trusted to write Lisp" keys, instead of just "trusted to be +who they say they are" + +e) nice to have: resume half-done downloads instead of starting from scratch +every time. but right now we're dealing in fairly small packages, this is not +an immediate concern + diff --git a/dev-lisp/sbcl/files/0.8.9/sbcl.sh b/dev-lisp/sbcl/files/0.8.9/sbcl.sh new file mode 100644 index 000000000000..11d6c298404c --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/sbcl.sh @@ -0,0 +1,80 @@ +#!/bin/sh + +if [ ! -f /usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp ] ; then + cat < /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 \ No newline at end of file diff --git a/dev-lisp/sbcl/files/0.8.9/sbclrc b/dev-lisp/sbcl/files/0.8.9/sbclrc new file mode 100644 index 000000000000..91f31720d896 --- /dev/null +++ b/dev-lisp/sbcl/files/0.8.9/sbclrc @@ -0,0 +1,18 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Package: CL-USER -*- + +;;; This file is 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 "~%;;; Warning: there is no /etc/lisp-config.lisp file")) + +;;; The following is required if you want source location functions to +;;; work (such as those called when you use M-. (edit definition) in +;;; ILISP or SLIME) + +(setf (logical-pathname-translations "SYS") + '(("SYS:SRC;**;*.*.*" #p"/usr/lib/sbcl/src/**/*.*") + ("SYS:CONTRIB;**;*.*.*" #p"/usr/lib/sbcl/**/*.*"))) + +;;; sbclrc ends here diff --git a/dev-lisp/sbcl/files/digest-sbcl-0.8.9 b/dev-lisp/sbcl/files/digest-sbcl-0.8.9 new file mode 100644 index 000000000000..068630783451 --- /dev/null +++ b/dev-lisp/sbcl/files/digest-sbcl-0.8.9 @@ -0,0 +1,6 @@ +MD5 97ca1a5dac091f61943325a3d689a8e3 sbcl-0.8.9-source.tar.bz2 2069624 +MD5 38f9f6de699d4ed9cb7a99abd99da477 sbcl-0.8.9-html.tar.bz2 47167 +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 7cb56cd42b1f5797d26316e79aaccb06 sbcl-0.7.13-sparc-linux-binary.tar.bz2 5670293 +MD5 29ad145f1fc45c65b8d65b39013bc43f sbcl-0.7.10-mips-linux-binary.tar.gz 7473873 diff --git a/dev-lisp/sbcl/sbcl-0.8.9.ebuild b/dev-lisp/sbcl/sbcl-0.8.9.ebuild new file mode 100644 index 000000000000..2f9c38217b08 --- /dev/null +++ b/dev-lisp/sbcl/sbcl-0.8.9.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2004 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.9.ebuild,v 1.1 2004/03/25 21:09:35 mkennedy Exp $ + +inherit common-lisp-common + +DESCRIPTION="Steel Bank Common Lisp (SBCL) is an implementation of ANSI Common Lisp." +HOMEPAGE="http://sbcl.sourceforge.net/" +IUSE="threads" +BV_X86=0.8.1 +BV_PPC=0.7.13 +BV_SPARC=0.7.13 +BV_MIPS=0.7.10 +SRC_URI="mirror://sourceforge/sbcl/${P}-source.tar.bz2 + mirror://sourceforge/sbcl/${P}-html.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 ) + sparc? ( mirror://sourceforge/sbcl/${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 ) + mips? ( mirror://sourceforge/sbcl/${PN}-${BV_MIPS}-mips-linux-binary.tar.gz )" +LICENSE="MIT" +SLOT="0" +KEYWORDS="~x86 ~ppc ~sparc ~mips" +PROVIDE="virtual/commonlisp" +DEPEND="dev-lisp/common-lisp-controller" + +S=${WORKDIR}/${P} + +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-binary-linux.tar.bz2 + mv ${PN}-${BV_PPC}-ppc-linux ppc-binary + elif use sparc; then + unpack ${PN}-${BV_SPARC}-sparc-linux-binary.tar.bz2 + echo mv ${PN}-${BV_SPARC} sparc-binary || die + mv ${PN}-${BV_SPARC} sparc-binary || die + elif use mips; then + unpack ${PN}-${BV_SPARC}-mips-linux-binary.tar.gz + mv ${PN}-${BV_SPARC}-mips-linux mips-binary + fi + + unpack ${P}-source.tar.bz2 + epatch ${FILESDIR}/${PV}/GNUmakefile-SBCL_HOME-gentoo.patch + epatch ${FILESDIR}/${PV}/posix-tests.lisp-sandbox-gentoo.patch + + # Currently, thread support is only available for x86. These + # features expressions also disable :sb-test. + if use x86 && use threads; then + cp ${FILESDIR}/${PV}/customize-target-features.lisp \ + ${S}/customize-target-features.lisp + else + cp ${FILESDIR}/${PV}/customize-target-features.lisp.no-threads \ + ${S}/customize-target-features.lisp + fi + + find ${S} -type f -name .cvsignore -exec rm -f '{}' \; + find ${S} -type d -name CVS \) -exec rm -rf '{}' \; + find ${S} -type f -name \*.c -exec chmod 644 '{}' \; +} + +src_compile() { + local bindir + use x86 && bindir=../x86-binary + use ppc && bindir=../ppc-binary + use sparc && bindir=../sparc-binary + use mips && bindir=../mips-binary + # TODO: allow the user to chose between SBCL, CMUCL and CLISP for bootstrapping + # build with previous SBCL + PATH=${bindir}/src/runtime:${PATH} SBCL_HOME=${bindir}/output GNUMAKE=make \ + ./make.sh 'sbcl --sysinit /dev/null --userinit /dev/null --noprogrammer --core ${bindir}/output/sbcl.core' + # build with CMUCL +# GNUMAKE=make ./make.sh 'lisp -batch' +} + +src_install() { + unset SBCL_HOME + + insinto /etc/ + doins ${FILESDIR}/${PV}/sbclrc # Gentoo specific (from Debian) + + exeinto /usr/lib/common-lisp/bin + doexe ${FILESDIR}/${PV}/sbcl.sh # Gentoo specific (from Debian) + + dodir /usr/share/man + INSTALL_ROOT=${D}/usr sh install.sh + mv ${D}/usr/lib/sbcl/sbcl.core ${D}/usr/lib/sbcl/sbcl-dist.core + + insinto /usr/lib/sbcl + doins ${FILESDIR}/${PV}/install-clc.lisp # Gentoo specific (from Debian) + + doman ${FILESDIR}/${PV}/sbcl-asdf-install.1 # Gentoo specific (from Debian) + + dodoc BUGS COPYING CREDITS INSTALL NEWS OPTIMIZATIONS PRINCIPLES README STYLE SUPPORT TLA TODO + dodoc ${FILESDIR}/${PV}/README.Gentoo + dohtml doc/html/* + + keepdir /usr/lib/common-lisp/sbcl + + impl-save-timestamp-hack sbcl || die +} + +pkg_postinst() { + standard-impl-postinst sbcl +} + +pkg_postrm() { + standard-impl-postrm sbcl /usr/bin/sbcl +} -- cgit v1.2.3-65-gdbad