diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-lisp/cmucl | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-lisp/cmucl')
-rw-r--r-- | dev-lisp/cmucl/Manifest | 2 | ||||
-rw-r--r-- | dev-lisp/cmucl/cmucl-20e.ebuild | 98 | ||||
-rw-r--r-- | dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch | 16 | ||||
-rw-r--r-- | dev-lisp/cmucl/files/20e-execstack-fixes.patch | 118 | ||||
-rw-r--r-- | dev-lisp/cmucl/files/cmuclrc | 9 | ||||
-rw-r--r-- | dev-lisp/cmucl/files/site-init.lisp.in | 56 | ||||
-rw-r--r-- | dev-lisp/cmucl/metadata.xml | 36 |
7 files changed, 335 insertions, 0 deletions
diff --git a/dev-lisp/cmucl/Manifest b/dev-lisp/cmucl/Manifest new file mode 100644 index 000000000000..35610f61eac3 --- /dev/null +++ b/dev-lisp/cmucl/Manifest @@ -0,0 +1,2 @@ +DIST cmucl-20e-x86-linux.tar.bz2 18861880 SHA256 94dc1c0ddcaa915f83cdc23462a4cc3c4af98d64fe42e79d7c5232225b149480 SHA512 1eee852b2a11733d0fac2c046137ccd099370bf208be71becc03710e832510b288768f557e326b1ce95cba16490413142e607fd71346e20e5f8592b51d86b0fe WHIRLPOOL 765476aeb037b782380b33fb8e7ae137bb38544547b427c54c23661122552108e8940413c55003c31ba05b4729bb18f99f5b462742cbd9c1c7426f0c04e26863 +DIST cmucl-src-20e.tar.bz2 6147575 SHA256 b18fd27b67321a0c00f2019bbb18557f239062ba947080149ed42e30f72ae7cd SHA512 d04f6ac7335572198d37d5df00934edfc82495294446cc5420dada4f2df44009f0983b438d6f10ce5bb02e46fd89df985da5eee3e91a6a75d98e9f86240c0dcc WHIRLPOOL babb020bacf474e1cea4bc865ba7352686ff5d92d01dd4d44d121b101ac328da6cd3e63798a2086ce29ba260fdbefc26f5f7d496ecb0af9566cb1cbdbb3846bf diff --git a/dev-lisp/cmucl/cmucl-20e.ebuild b/dev-lisp/cmucl/cmucl-20e.ebuild new file mode 100644 index 000000000000..6151ad6009bd --- /dev/null +++ b/dev-lisp/cmucl/cmucl-20e.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils toolchain-funcs multilib + +MY_PV=${PV:0:3} + +DESCRIPTION="CMU Common Lisp is an implementation of ANSI Common Lisp" +HOMEPAGE="http://www.cons.org/cmucl/" +SRC_URI="http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-src-${MY_PV}.tar.bz2 + http://common-lisp.net/project/cmucl/downloads/release/${MY_PV}/cmucl-${MY_PV}-x86-linux.tar.bz2" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="x86" +IUSE="X source cpu_flags_x86_sse2" + +CDEPEND=">=dev-lisp/asdf-2.33-r3:= + x11-libs/motif:0" +DEPEND="${CDEPEND} + sys-devel/bc" +RDEPEND="${CDEPEND}" + +S="${WORKDIR}" + +TARGET=linux-4 + +src_prepare() { + epatch "${FILESDIR}"/${MY_PV}-execstack-fixes.patch + epatch "${FILESDIR}"/${MY_PV}-customize-lisp-implementation-version.patch + + cp /usr/share/common-lisp/source/asdf/build/asdf.lisp src/contrib/asdf/ || die +} + +src_compile() { + local cmufpu cmuopts + + if use cpu_flags_x86_sse2; then + cmufpu=sse2 + else + cmufpu=x87 + fi + + if use X; then + cmuopts="-f ${cmufpu}" + else + cmuopts="-u -f ${cmufpu}" + fi + + local buildimage="bin/lisp -core lib/cmucl/lib/lisp-${cmufpu}.core -noinit -nositeinit -batch" + + env CC="$(tc-getCC)" bin/build.sh -v "-gentoo-${PR}" -C "" -o "${buildimage}" ${cmuopts} || die "Cannot build the compiler" + + # Compile up the asdf and defsystem modules + ${TARGET}/lisp/lisp -noinit -nositeinit -batch << EOF || die +(in-package :cl-user) +(setf (ext:search-list "target:") + '("$TARGET/" "src/")) +(setf (ext:search-list "modules:") + '("target:contrib/")) + +(compile-file "modules:asdf/asdf") +(compile-file "modules:defsystem/defsystem") +EOF +} + +src_install() { + env MANDIR=share/man/man1 DOCDIR=share/doc/${PF} \ + bin/make-dist.sh -S -g -G root -O root ${TARGET} ${MY_PV} x86 linux \ + || die "Cannot build installation archive" + # Necessary otherwise tar will fail + dodir /usr + pushd "${D}"/usr > /dev/null + tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.tar.gz \ + || die "Cannot install main system" + if use X ; then + tar xzpf "${WORKDIR}"/cmucl-${MY_PV}-x86-linux.extra.tar.gz \ + || die "Cannot install extra files" + fi + if use source; then + # Necessary otherwise tar will fail + dodir /usr/share/common-lisp/source/${PN} + cd "${D}"/usr/share/common-lisp/source/${PN} + tar --strip-components 1 -xzpf "${WORKDIR}"/cmucl-src-${MY_PV}.tar.gz \ + || die "Cannot install sources" + fi + popd > /dev/null + + # Install site config file + sed "s,@PF@,${PF},g ; s,@VERSION@,$(date +%F),g" \ + < "${FILESDIR}"/site-init.lisp.in \ + > "${D}"/usr/$(get_libdir)/cmucl/site-init.lisp \ + || die "Cannot fix site-init.lisp" + insinto /etc/common-lisp + doins "${FILESDIR}"/cmuclrc || die "Failed to install cmuclrc" +} diff --git a/dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch b/dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch new file mode 100644 index 000000000000..8fc9278af87d --- /dev/null +++ b/dev-lisp/cmucl/files/20e-customize-lisp-implementation-version.patch @@ -0,0 +1,16 @@ +diff -ur cmucl.orig/src/code/misc.lisp cmucl/src/code/misc.lisp +--- cmucl.orig/src/code/misc.lisp 2011-10-25 05:31:39.000000000 +0200 ++++ cmucl/src/code/misc.lisp 2012-01-31 21:46:49.441273068 +0100 +@@ -187,8 +187,10 @@ + + (defun lisp-implementation-version () + "Returns a string describing the implementation version." +- (format nil "~A (~X~A)" *lisp-implementation-version* c:byte-fasl-file-version +- #+unicode _" Unicode" #-unicode "")) ++ (format nil "~X~A~A" ++ c:byte-fasl-file-version ++ #+unicode "-unicode" #-unicode "" ++ *lisp-implementation-version*)) + + (defun machine-instance () + "Returns a string giving the name of the local machine." diff --git a/dev-lisp/cmucl/files/20e-execstack-fixes.patch b/dev-lisp/cmucl/files/20e-execstack-fixes.patch new file mode 100644 index 000000000000..034848d64a26 --- /dev/null +++ b/dev-lisp/cmucl/files/20e-execstack-fixes.patch @@ -0,0 +1,118 @@ +diff -Naur work.old/src/lisp/alpha-assem.S work/src/lisp/alpha-assem.S +--- work.old/src/lisp/alpha-assem.S 2003-03-06 11:13:09.000000000 -0300 ++++ work/src/lisp/alpha-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -297,3 +297,7 @@ + function_end_breakpoint_end: + + ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/amd64-assem.S work/src/lisp/amd64-assem.S +--- work.old/src/lisp/amd64-assem.S 2004-07-27 19:03:53.000000000 -0300 ++++ work/src/lisp/amd64-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -1051,3 +1051,7 @@ + .end + + #endif /* LINKAGE_TABLE */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/backtrace.c work/src/lisp/backtrace.c +--- work.old/src/lisp/backtrace.c 2009-06-11 13:04:01.000000000 -0300 ++++ work/src/lisp/backtrace.c 2010-05-10 00:06:22.000000000 -0300 +@@ -3,6 +3,8 @@ + * Simple backtrace facility. More or less from Rob's lisp version. + */ + ++#include "os-common.h" ++ + #include <stdio.h> + #include <signal.h> + #include "lisp.h" +diff -Naur work.old/src/lisp/hppa-assem.S work/src/lisp/hppa-assem.S +--- work.old/src/lisp/hppa-assem.S 2002-08-23 14:05:35.000000000 -0300 ++++ work/src/lisp/hppa-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -460,3 +460,7 @@ + + .export function_end_breakpoint_end + function_end_breakpoint_end ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/linux-stubs.S work/src/lisp/linux-stubs.S +--- work.old/src/lisp/linux-stubs.S 2005-08-17 00:40:16.000000000 -0300 ++++ work/src/lisp/linux-stubs.S 2010-05-10 00:06:34.000000000 -0300 +@@ -995,3 +995,7 @@ + /* doe(yperr_string) */ + /* doe(ypprot_err) */ + #endif /* defined(LINKAGE_TABLE) && !defined(__FreeBSD__) */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/lisp.c work/src/lisp/lisp.c +--- work.old/src/lisp/lisp.c 2009-07-13 16:41:54.000000000 -0300 ++++ work/src/lisp/lisp.c 2010-05-10 00:05:55.000000000 -0300 +@@ -5,6 +5,9 @@ + * + */ + ++#include "os-common.h" ++#include <time.h> ++ + #include <stdio.h> + #include <stdlib.h> + #include <limits.h> +diff -Naur work.old/src/lisp/mips-assem.S work/src/lisp/mips-assem.S +--- work.old/src/lisp/mips-assem.S 2002-08-23 14:01:02.000000000 -0300 ++++ work/src/lisp/mips-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -402,3 +402,7 @@ + move v0, a1 + j _restore_state + .end save_state ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/os-common.h work/src/lisp/os-common.h +--- work.old/src/lisp/os-common.h 1969-12-31 21:00:00.000000000 -0300 ++++ work/src/lisp/os-common.h 2010-05-10 00:06:22.000000000 -0300 +@@ -0,0 +1 @@ ++char* convert_lisp_string(char *c_string, void *lisp_string, int len); +diff -Naur work.old/src/lisp/ppc-assem.S work/src/lisp/ppc-assem.S +--- work.old/src/lisp/ppc-assem.S 2006-02-25 01:35:58.000000000 -0300 ++++ work/src/lisp/ppc-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -721,3 +721,7 @@ + SET_SIZE(fpu_restore) + + #endif ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/sparc-assem.S work/src/lisp/sparc-assem.S +--- work.old/src/lisp/sparc-assem.S 2003-10-23 23:57:00.000000000 -0300 ++++ work/src/lisp/sparc-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -837,3 +837,7 @@ + * End: + */ + ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif +diff -Naur work.old/src/lisp/x86-assem.S work/src/lisp/x86-assem.S +--- work.old/src/lisp/x86-assem.S 2008-12-24 02:36:40.000000000 -0200 ++++ work/src/lisp/x86-assem.S 2010-05-10 00:06:34.000000000 -0300 +@@ -798,3 +798,7 @@ + ENDFUNC(undefined_foreign_symbol_trap) + + #endif /* LINKAGE_TABLE */ ++ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif diff --git a/dev-lisp/cmucl/files/cmuclrc b/dev-lisp/cmucl/files/cmuclrc new file mode 100644 index 000000000000..e663e92af87a --- /dev/null +++ b/dev-lisp/cmucl/files/cmuclrc @@ -0,0 +1,9 @@ +;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*- +;;; + +(in-package :common-lisp-user) + +(if (probe-file "/etc/gentoo-init.lisp") + (load "/etc/gentoo-init.lisp") + (format t "~%;;; Warning: There is no /etc/gentoo-init.lisp file ~ +\(which should be provided by dev-lisp/gentoo-init")) diff --git a/dev-lisp/cmucl/files/site-init.lisp.in b/dev-lisp/cmucl/files/site-init.lisp.in new file mode 100644 index 000000000000..1b232166c889 --- /dev/null +++ b/dev-lisp/cmucl/files/site-init.lisp.in @@ -0,0 +1,56 @@ +;;; -*- 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 + +;;; More modifications for Gentoo by Matthew Kennedy +;;; <mkennedy@gentoo.org> + +(in-package "SYSTEM") + +(if (probe-file "/etc/cmuclrc") + (load "/etc/cmuclrc") + (format t "~%;;; Warning: There is no /etc/cmuclrc file (which should have been created during emerge")) + +;;; 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. +(when (probe-file #p"/usr/share/common-lisp/source/cmucl/") + (setf (ext:search-list "target:") + '( + "/usr/share/common-lisp/source/cmucl/" ; object dir + ))) + +;;; (setf (ext:search-list "library:") '("/usr/lib/cmucl/lib/")) +;;; for safety... + +;;; Put your site name here... +(setq *short-site-name* "Unknown") +(setq *long-site-name* "Site name not initialized") + +(in-package :common-lisp-user) + +;;; newbie functions, delete if you don't like them + +(defun help () + (format t "~ +Welcome to the Gentoo GNU/Linux port of CMUCL. + +The CMUCL REPL does not have GNU Readline-like support, however +you may wish to install rlwap (see: app-misc/rlwrap) to achieve +the same effect. + +If you think you found a bug, please use http://bugs.gentoo.org/ + +Read the documentation in /usr/share/doc/@PF@. + +\(quit) exit Lisp +\(describe 'foo) gives information about foo +\(inspect '*foo*) interactively inspects *foo* +\(apropos \"foo\") briefly describe all symbols which match \"foo\" +")) diff --git a/dev-lisp/cmucl/metadata.xml b/dev-lisp/cmucl/metadata.xml new file mode 100644 index 000000000000..805c75982ffa --- /dev/null +++ b/dev-lisp/cmucl/metadata.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> +<email>grozin@gentoo.org</email> +<name>Andrey Grozin</name> +</maintainer> +<herd>common-lisp</herd> +<longdescription> +CMUCL is a free implementation of the Common Lisp programming language +which runs on most major Unix platforms. It mainly conforms to the +ANSI Common Lisp standard. Here is a summary of its main features: + + * a sophisticated native-code compiler which is capable of powerful + type inferences, and generates code competitive in speed with C + compilers. + + * generational garbage collection and multiprocessing capability on + the x86 ports. + + * a foreign function interface which allows interfacing with C code + and system libraries, including shared libraries on most platforms, + and direct access to Unix system calls. + + * support for interprocess communication and remote procedure calls. + + * an implementation of CLOS, the Common Lisp Object System, which + includes multimethods and a metaobject protocol. + + * a graphical source-level debugger using a Motif interface, and a + code profiler. +</longdescription> +<use> +<flag name='source'>Include source code for CMUCL in installation</flag> +</use> +</pkgmetadata> |