commit:     1febb5c0d09f2d76381b345391f60b5f95b68ea5
Author:     Chema Alonso Josa <nimiux <AT> gentoo <DOT> org>
AuthorDate: Wed May  2 21:22:56 2018 +0000
Commit:     José María Alonso <nimiux <AT> gentoo <DOT> org>
CommitDate: Wed May  2 21:22:56 2018 +0000
URL:        https://gitweb.gentoo.org/proj/lisp.git/commit/?id=1febb5c0

dev-lisp/cmucl: Bumps version to 21c

 dev-lisp/cmucl/cmucl-21c.ebuild                    | 109 +++++++++++++++++++
 dev-lisp/cmucl/files/21c-build.patch               |  22 ++++
 ...21c-customize-lisp-implementation-version.patch |  16 +++
 dev-lisp/cmucl/files/21c-execstack-fixes.patch     | 118 +++++++++++++++++++++
 4 files changed, 265 insertions(+)

diff --git a/dev-lisp/cmucl/cmucl-21c.ebuild b/dev-lisp/cmucl/cmucl-21c.ebuild
new file mode 100644
index 00000000..15054747
--- /dev/null
+++ b/dev-lisp/cmucl/cmucl-21c.ebuild
@@ -0,0 +1,109 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+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 doc source"
+
+CDEPEND=">=dev-lisp/asdf-2.33-r3:=
+                x11-libs/motif:0"
+DEPEND="${CDEPEND}
+       sys-devel/bc
+       doc? ( virtual/latex-base )"
+RDEPEND="${CDEPEND}"
+
+S="${WORKDIR}"
+
+TARGET=linux-4
+
+src_prepare() {
+       eapply "${FILESDIR}"/${MY_PV}-execstack-fixes.patch
+       eapply 
"${FILESDIR}"/${MY_PV}-customize-lisp-implementation-version.patch
+       eapply "${FILESDIR}"/${MY_PV}-build.patch
+       eapply_user
+       #cp "${FILESDIR}"/os-common.h src/lisp/ || die
+       cp /usr/share/common-lisp/source/asdf/build/asdf.lisp src/contrib/asdf/ 
|| die
+}
+
+src_compile() {
+       local cmuopts buildimage
+
+       if use X; then
+               cmuopts=""
+       else
+               cmuopts="-u"
+       fi
+
+       buildimage="bin/lisp -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
+
+       # documentation
+       if use doc; then
+               pushd src/docs/cmu-user > /dev/null || die "directory 
src/docs/cmu-user does not exist"
+               emake
+               cd ../internals || die "directory src/docs/internals does not 
exist"
+               emake
+               popd > /dev/null
+       fi
+}
+
+src_install() {
+       bin/make-dist.sh -S -g -G root -O root -M share/man/man1 -V ${MY_PV} -A 
x86 -o linux ${TARGET} \
+               || 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"
+
+       # documentation
+       dodoc doc/cmucl/README
+       if use doc; then
+               insinto /usr/share/doc/${PF}
+               doins src/docs/cmu-user/cmu-user.pdf 
src/docs/internals/design.pdf
+       fi
+}

diff --git a/dev-lisp/cmucl/files/21c-build.patch 
b/dev-lisp/cmucl/files/21c-build.patch
new file mode 100644
index 00000000..4d7e4061
--- /dev/null
+++ b/dev-lisp/cmucl/files/21c-build.patch
@@ -0,0 +1,22 @@
+diff -r -U2 21a.orig/bin/build.sh 21a/bin/build.sh
+--- 21a.orig/bin/build.sh      2015-05-19 07:42:40.000000000 +0600
++++ 21a/bin/build.sh   2016-04-03 20:54:08.597016537 +0600
+@@ -40,5 +40,5 @@
+ ENABLE4="yes"
+ 
+-version=21b
++version=21c
+ SRCDIR=src
+ BINDIR=bin
+@@ -145,10 +145,9 @@
+       $TOOLDIR/load-world.sh $TARGET "$VERSION" || { echo "Failed: 
$TOOLDIR/load-world.sh"; exit 1; }
+ 
+-      $TARGET/lisp/lisp -batch -noinit -nositeinit $FPU_MODE < /dev/null || { 
echo "Failed: $TARGET/lisp/lisp -batch -noinit $FPU_MODE"; exit 1; }
++      $TARGET/lisp/lisp -batch -noinit -nositeinit < /dev/null || { echo 
"Failed: $TARGET/lisp/lisp -batch -noinit"; exit 1; }
+       return 0;
+     fi
+ }
+ 
+-FPU_MODE=
+ BUILDWORLD="$TOOLDIR/build-world.sh"
+ BUILD_POT="yes"

diff --git 
a/dev-lisp/cmucl/files/21c-customize-lisp-implementation-version.patch 
b/dev-lisp/cmucl/files/21c-customize-lisp-implementation-version.patch
new file mode 100644
index 00000000..8fc9278a
--- /dev/null
+++ b/dev-lisp/cmucl/files/21c-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/21c-execstack-fixes.patch 
b/dev-lisp/cmucl/files/21c-execstack-fixes.patch
new file mode 100644
index 00000000..034848d6
--- /dev/null
+++ b/dev-lisp/cmucl/files/21c-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

Reply via email to