commit:     7a54e049805e2a29c5b132f1d703e436970d8cd7
Author:     Daniel Campbell <zlg <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 12 08:14:12 2016 +0000
Commit:     Daniel Campbell <zlg <AT> gentoo <DOT> org>
CommitDate: Mon Sep 12 08:14:12 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a54e049

dev-lang/gnu-smalltalk: Fix Tcl_Interp, #492710

* Update EAPI to 6
* Correct hanging symlink QA issue

Gentoo-Bug: 492710
Gentoo-Bug-URL: https://bugs.gentoo.org/492710

Package-Manager: portage-2.3.0

 .../files/gnu-smalltalk-3.2_use-result.patch       | 16 +++++
 .../gnu-smalltalk/gnu-smalltalk-3.2.4-r1.ebuild    | 75 ++++++++++++++++++++++
 2 files changed, 91 insertions(+)

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 00000000..b9f9eb6
--- /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 00000000..4f6e1c6
--- /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
+}

Reply via email to