aboutsummaryrefslogtreecommitdiffstats
path: root/testing/squeak-vm
diff options
context:
space:
mode:
authorVictor Diego Alegandro Diaz Urbaneja <sodomon2@gmail.com>2020-01-31 02:37:25 -0400
committerRasmus Thomsen <oss@cogitri.dev>2020-01-31 21:30:43 +0100
commit50bcf01e59037ed43622fa04475ff6aeb34021eb (patch)
treef23a5d368ac27d1848fc05906a9c43d3df3cfb77 /testing/squeak-vm
parent0e276a3dc1fd9ccefe469da085fc07c54b3b1449 (diff)
downloadaports-50bcf01e59037ed43622fa04475ff6aeb34021eb.tar.bz2
aports-50bcf01e59037ed43622fa04475ff6aeb34021eb.tar.xz
testing/squeak-vm: new aport
Full-featured implementation of the Smalltalk programming language and environment http://squeakvm.org
Diffstat (limited to 'testing/squeak-vm')
-rw-r--r--testing/squeak-vm/APKBUILD32
-rw-r--r--testing/squeak-vm/sqVirtualMachine.patch49
2 files changed, 81 insertions, 0 deletions
diff --git a/testing/squeak-vm/APKBUILD b/testing/squeak-vm/APKBUILD
new file mode 100644
index 0000000000..9c9cc55aa2
--- /dev/null
+++ b/testing/squeak-vm/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Díaz Urbaneja Diego <sodomon2@gmail.com>
+# Maintainer: Díaz Urbaneja Diego <sodomon2@gmail.com>
+pkgname=squeak-vm
+pkgver=4.10.2.2614
+pkgrel=0
+pkgdesc="Full-featured implementation of the Smalltalk programming language and environment"
+url="http://squeakvm.org"
+arch="x86_64 s390x armv7" #disabled for the other architectures due to compiling problems
+license="MIT"
+depends="mesa-gl libxrender"
+makedepends="make cmake"
+options="!check" #make check not implemented
+subpackages="$pkgname-doc"
+source="http://squeakvm.org/unix/release/Squeak-$pkgver-src.tar.gz
+ sqVirtualMachine.patch"
+builddir="$srcdir/Squeak-$pkgver-src/"
+
+build() {
+ ./unix/cmake/configure \
+ --prefix=/usr \
+ --without-quartz \
+ --with-x \
+ --enable-mpg-mmx
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="b823fb97f7826dbbae5feeb15ffc3ab7e11cf27c5a3cc3f2cf2f8c39b56af5f9d0078d020a4b8f72b997198d296be6d85ec10e0bca10d5214bf586e1e0587f07 Squeak-4.10.2.2614-src.tar.gz
+e63b3151f7f6febf472a70838995ae4ebdb8ddf728fb9de0a78c4bf29f8ab9b5481422bf88718fdf22d75b67e41795aff9dc2827037357084fd9a94738821054 sqVirtualMachine.patch"
diff --git a/testing/squeak-vm/sqVirtualMachine.patch b/testing/squeak-vm/sqVirtualMachine.patch
new file mode 100644
index 0000000000..37b4699537
--- /dev/null
+++ b/testing/squeak-vm/sqVirtualMachine.patch
@@ -0,0 +1,49 @@
+--- a/Cross/vm/sqVirtualMachine.c
++++ b/Cross/vm/sqVirtualMachine.c
+@@ -485,10 +485,7 @@
+ /* This lives here for now but belongs somewhere else.
+ * platforms/Cross/vm/sqStuff.c??
+ */
+-#define STDOUT_STACK_SZ 5
+-static int stdoutStackIdx = -1;
+-static FILE stdoutStack[STDOUT_STACK_SZ];
+-
++
+ /* N.B. As of cygwin 1.5.25 fopen("crash.dmp","a") DOES NOT WORK! crash.dmp
+ * contains garbled output as if the file pointer gets set to the start of the
+ * file, not the end. So we synthesize our own append mode.
+@@ -521,10 +518,6 @@
+
+ FILE *output;
+
+- if (stdoutStackIdx + 2 >= STDOUT_STACK_SZ) {
+- fprintf(stderr,"output file stack is full.\n");
+- return;
+- }
+ switch ((unsigned)filenameOrStdioIndex) {
+ case STDOUT_FILENO: output = stdout; break;
+ case STDERR_FILENO: output = stderr; break;
+@@ -536,17 +529,11 @@
+ return;
+ }
+ }
+- stdoutStack[++stdoutStackIdx] = *stdout;
+- *stdout = *output;
+ }
+
+ void
+ popOutputFile()
+ {
+- if (stdoutStackIdx < 0) {
+- fprintf(stderr,"output file stack is empty.\n");
+- return;
+- }
+ fflush(stdout);
+ if (fileno(stdout) > STDERR_FILENO) {
+ /* as of Feb 2011 with fclose@@GLIBC_2.1 under e.g. CentOS 5.3, fclose
+@@ -558,5 +545,4 @@
+ fclose(stdout);
+ #endif
+ }
+- *stdout = stdoutStack[stdoutStackIdx--];
+ }