public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "José María Alonso" <nimiux@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/lisp:master commit in: dev-lisp/cmucl/files/, dev-lisp/cmucl/
Date: Wed,  2 May 2018 21:22:57 +0000 (UTC)	[thread overview]
Message-ID: <1525296176.1febb5c0d09f2d76381b345391f60b5f95b68ea5.nimiux@gentoo> (raw)

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	other threads:[~2018-05-02 21:23 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-02 21:22 José María Alonso [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-05-03  8:55 [gentoo-commits] proj/lisp:master commit in: dev-lisp/cmucl/files/, dev-lisp/cmucl/ José María Alonso
2018-05-02 21:19 José María Alonso
2013-04-04 18:23 Stelian Ionescu
2012-01-31 21:24 Stelian Ionescu
2011-06-21 12:03 Stelian Ionescu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1525296176.1febb5c0d09f2d76381b345391f60b5f95b68ea5.nimiux@gentoo \
    --to=nimiux@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox