diff options
-rw-r--r-- | dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch | 16 | ||||
-rw-r--r-- | dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4-r1.ebuild | 75 |
2 files changed, 91 insertions, 0 deletions
diff --git a/dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch b/dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch new file mode 100644 index 000000000000..b9f9eb67c75f --- /dev/null +++ b/dev-lang/gnu-smalltalk/files/gnu-smalltalk-3.2_use-result.patch @@ -0,0 +1,16 @@ +--- config.h.in 2013-04-07 22:52:21.000000000 -0700 ++++ config.h.in 2016-06-20 16:46:46.560891256 -0700 +@@ -879,6 +879,13 @@ + #define below would cause a syntax error. */ + #undef _UINT64_T + ++/* Kludgey fix for Gentoo bug #492710, caused by improper use of the Tcl API. ++ * Upstream should be using Tcl_SetObjResult, Tcl_GetObjResult, and/or ++ * Tcl_GetStringResult. This is the simplest way for us to fix it, and should ++ * be removed as soon as GST uses the Tcl interface correctly. ++ */ ++#define USE_INTERP_RESULT 1 ++ + /* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ diff --git a/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4-r1.ebuild b/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4-r1.ebuild new file mode 100644 index 000000000000..4f6e1c6bf545 --- /dev/null +++ b/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4-r1.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="6" + +inherit elisp-common flag-o-matic eutils multilib + +DESCRIPTION="GNU Smalltalk" +HOMEPAGE="http://smalltalk.gnu.org" +SRC_URI="mirror://gnu/smalltalk/smalltalk-${PV}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="tk readline emacs gtk gmp" + +DEPEND="app-arch/zip + sys-libs/gdbm + sys-apps/debianutils + dev-libs/libsigsegv + virtual/libffi + emacs? ( virtual/emacs ) + readline? ( sys-libs/readline ) + tk? ( dev-lang/tk ) + gtk? ( =x11-libs/gtk+-2* ) + gmp? ( dev-libs/gmp )" +RDEPEND="" + +S="${WORKDIR}/smalltalk-${PV}" + +SITEFILE=50gnu-smalltalk-gentoo.el + +src_prepare() { + epatch "${FILESDIR}"/SequenceableCollection-size-3.2.4.patch + # fix misuse of the Tcl API, bug 492710 + epatch "${FILESDIR}"/gnu-smalltalk-3.2_use-result.patch +} + +src_configure() { + replace-flags '-O3' '-O2' + econf \ + --libdir=/usr/$(get_libdir) \ + --with-system-libsigsegv \ + --with-system-libffi \ + --with-system-libltdl \ + $(use_with emacs emacs) \ + $(use_with readline readline) \ + $(use_with gmp gmp) \ + $(use_with tk tcl /usr/$(get_libdir)) \ + $(use_with tk tk /usr/$(get_libdir)) \ + $(use_enable gtk gtk) +} + +src_compile() { + emake || die "emake failed" + use emacs && elisp-compile *.el +} + +src_install() { + emake DESTDIR="${D}" install || die + dodoc AUTHORS COPYING* ChangeLog NEWS README THANKS TODO + if use emacs; then + elisp-install "${PN}" *.el *.elc + elisp-site-file-install "${FILESDIR}/${SITEFILE}" + fi + fperms 0444 /usr/share/smalltalk/packages.xml +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |