summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-scheme/scheme48')
-rw-r--r--dev-scheme/scheme48/files/CVE-2014-4150.patch11
-rw-r--r--dev-scheme/scheme48/scheme48-1.9.2-r1.ebuild72
2 files changed, 83 insertions, 0 deletions
diff --git a/dev-scheme/scheme48/files/CVE-2014-4150.patch b/dev-scheme/scheme48/files/CVE-2014-4150.patch
new file mode 100644
index 000000000000..9457fbe7b3c0
--- /dev/null
+++ b/dev-scheme/scheme48/files/CVE-2014-4150.patch
@@ -0,0 +1,11 @@
+--- a/emacs/cmuscheme48.el 2012-12-28 01:43:30.000000000 +0900
++++ b/emacs/cmuscheme48.el 2016-07-05 20:06:19.200173816 +0900
+@@ -58,7 +58,7 @@
+ (let ((end (point)))
+ (beginning-of-defun)
+ (if losep
+- (let ((loser "/tmp/s48lose.tmp"))
++ (let ((loser (make-temp-file "s48lose")))
+ (write-region (point) end loser)
+ (scheme48-load-file loser))
+ (scheme48-send-region (point) end)))))
diff --git a/dev-scheme/scheme48/scheme48-1.9.2-r1.ebuild b/dev-scheme/scheme48/scheme48-1.9.2-r1.ebuild
new file mode 100644
index 000000000000..2b66894492ca
--- /dev/null
+++ b/dev-scheme/scheme48/scheme48-1.9.2-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit elisp-common multilib eutils flag-o-matic
+
+DESCRIPTION="Scheme48 is an implementation of the Scheme Programming Language"
+HOMEPAGE="http://www.s48.org/"
+SRC_URI="http://www.s48.org/${PV}/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~x86 ~amd64 ~amd64-linux ~x86-linux ~x86-macos"
+IUSE="doc emacs"
+
+DEPEND="emacs? ( virtual/emacs )"
+RDEPEND="${DEPEND}"
+SITEFILE=50scheme48-gentoo.el
+
+src_prepare() {
+ epatch "${FILESDIR}"/CVE-2014-4150.patch
+}
+
+src_configure() {
+ append-cflags -fno-strict-aliasing
+ econf --docdir=/usr/share/doc/${P}
+}
+
+src_compile() {
+ emake
+ if use emacs; then
+ elisp-compile "${S}"/emacs/cmuscheme48.el
+ fi
+}
+
+src_install() {
+ # weird parallel failures!
+ emake -j1 DESTDIR="${D}" install
+
+ if use emacs; then
+ elisp-install ${PN} emacs/cmuscheme48.el emacs/*.elc
+ elisp-site-file-install "${FILESDIR}"/${SITEFILE}
+ fi
+
+ dodoc README
+ if use doc; then
+ dodoc doc/*.txt
+ docinto src
+ dodoc doc/src/*
+ pushd "${ED}/usr/share/doc/${P}" > /dev/null
+ install -dm755 html
+ mv *.html *.css *.gif html/
+ popd > /dev/null
+ else
+ pushd "${ED}/usr/share/doc/${P}" > /dev/null
+ rm -f *.html *.css *.gif
+ rm -f manu*
+ popd > /dev/null
+ fi
+
+ #this symlink clashes with gambit
+ rm "${ED}"/usr/bin/scheme-r5rs || die
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}