summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/gnu-smalltalk')
-rw-r--r--dev-lang/gnu-smalltalk/Manifest1
-rw-r--r--dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el7
-rw-r--r--dev-lang/gnu-smalltalk/files/SequenceableCollection-size-3.2.4.patch23
-rw-r--r--dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4.ebuild73
-rw-r--r--dev-lang/gnu-smalltalk/metadata.xml14
5 files changed, 118 insertions, 0 deletions
diff --git a/dev-lang/gnu-smalltalk/Manifest b/dev-lang/gnu-smalltalk/Manifest
new file mode 100644
index 000000000000..8f45cf092cf7
--- /dev/null
+++ b/dev-lang/gnu-smalltalk/Manifest
@@ -0,0 +1 @@
+DIST smalltalk-3.2.4.tar.gz 5877496 SHA256 901cc7090a1fa44bc60900a970d207de4aa3bdfdce72bea55114e243bc1eb1b3 SHA512 0854e95fb29c79a9844304651e9b2e3997ced88d7f1a704345f72aedfbae1562df0a2a2cc92ed7909e0ce22e275bb37d1592fe16079e3895cd8b79f3212cea3e WHIRLPOOL 461f07278737fbb0e5f08d18ef4f5c3678a19aef61c895e7ede7c1f74720e99bc44d347730e68a94827abfaf24c69317e2acc67ccc4bdc8cdb05ec164d5894cb
diff --git a/dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el b/dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el
new file mode 100644
index 000000000000..e9e18d43bb3c
--- /dev/null
+++ b/dev-lang/gnu-smalltalk/files/50gnu-smalltalk-gentoo.el
@@ -0,0 +1,7 @@
+
+;;; gnu-smalltalk site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'smalltalk-mode "smalltalk-mode" "Autoload for smalltalk-mode" t)
+(autoload 'gst "gst-mode" "Autoload for gst" t)
+(add-to-list 'auto-mode-alist '("\\.st\\'" . smalltalk-mode))
diff --git a/dev-lang/gnu-smalltalk/files/SequenceableCollection-size-3.2.4.patch b/dev-lang/gnu-smalltalk/files/SequenceableCollection-size-3.2.4.patch
new file mode 100644
index 000000000000..1842e4620f9d
--- /dev/null
+++ b/dev-lang/gnu-smalltalk/files/SequenceableCollection-size-3.2.4.patch
@@ -0,0 +1,23 @@
+--- a/kernel/SeqCollect.st
++++ b/kernel/SeqCollect.st
+@@ -1104,9 +1104,16 @@ some access and manipulation methods.'>
+ ^count
+ ]
+
++ size [
++ "Answer a dummy size of 0, so that SequenceableCollection>>#do: works."
++
++ <category: 'testing collections'>
++ ^0
++ ]
++
+ growSize [
+ <category: 'private methods'>
+- ^self size
++ ^(self size max: 8)
+ ]
+
+ swap: anIndex with: anotherIndex [
+--
+1.7.2.5
+
diff --git a/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4.ebuild b/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4.ebuild
new file mode 100644
index 000000000000..6fbbd56abbab
--- /dev/null
+++ b/dev-lang/gnu-smalltalk/gnu-smalltalk-3.2.4.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="3"
+
+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
+}
+
+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
+}
diff --git a/dev-lang/gnu-smalltalk/metadata.xml b/dev-lang/gnu-smalltalk/metadata.xml
new file mode 100644
index 000000000000..4b958123a3f2
--- /dev/null
+++ b/dev-lang/gnu-smalltalk/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>pchrist@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ GNU Smalltalk is a free implementation of the Smalltalk-80
+ language which runs on most versions on Unix and, in general,
+ everywhere you can find a POSIX-compliance library. An uncommon
+ feature of it is that it is well-versed to scripting tasks and
+ headless processing.
+ </longdescription>
+</pkgmetadata>