diff options
Diffstat (limited to 'dev-scheme/scheme48')
-rw-r--r-- | dev-scheme/scheme48/files/CVE-2014-4150.patch | 11 | ||||
-rw-r--r-- | dev-scheme/scheme48/scheme48-1.9.2-r1.ebuild | 72 |
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 +} |