summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Lambiris2016-07-21 11:55:09 -0400
committerTony Lambiris2016-07-21 11:55:09 -0400
commit721d491e2d3bca78e59d1c58b7a76e68ff8193ff (patch)
tree95b5783e33f6fa894fa68d450855c82cc2d91f27
downloadaur-721d491e2d3bca78e59d1c58b7a76e68ff8193ff.tar.gz
Initial commit
-rw-r--r--.SRCINFO19
-rw-r--r--PKGBUILD57
-rw-r--r--tcl-fix-segv.patch26
3 files changed, 102 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..cf5b07652340
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,19 @@
+pkgbase = tcl-nothreading
+ pkgdesc = The Tcl scripting language with threading disabled
+ pkgver = 8.6.5
+ pkgrel = 2
+ url = http://tcl.sourceforge.net/
+ arch = i686
+ arch = x86_64
+ license = custom
+ depends = zlib
+ provides = tcl=8.6.5
+ conflicts = tcl
+ options = staticlibs
+ source = http://downloads.sourceforge.net/sourceforge/tcl/tcl8.6.5-src.tar.gz
+ source = tcl-fix-segv.patch
+ sha1sums = c3a50ea58dac00a3c7e83cb4a4651c40d0f55160
+ sha1sums = 1ec4fd9d159b920c15655936b1418034387114f0
+
+pkgname = tcl-nothreading
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..436d7a64fe89
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Tony Lambiris <tony@criticalstack.com>
+
+pkgname=tcl-nothreading
+pkgver=8.6.5
+pkgrel=2
+pkgdesc="The Tcl scripting language with threading disabled"
+arch=('i686' 'x86_64')
+url="http://tcl.sourceforge.net/"
+license=('custom')
+depends=('zlib')
+provides=('tcl=8.6.5')
+conflicts=('tcl')
+options=('staticlibs')
+source=(http://downloads.sourceforge.net/sourceforge/tcl/tcl${pkgver}-src.tar.gz tcl-fix-segv.patch)
+sha1sums=('c3a50ea58dac00a3c7e83cb4a4651c40d0f55160'
+ '1ec4fd9d159b920c15655936b1418034387114f0')
+
+prepare() {
+ cd tcl${pkgver}
+ # we build the tcl sqlite interface in sqlite-tcl package
+ rm -rf pkgs/sqlite3*
+ # fix SEGV if cpu supports HLE/RTM http://core.tcl.tk/tcl/info/d3071887dbc7aeac
+ patch -p1 -i ../tcl-fix-segv.patch
+}
+
+build() {
+ cd tcl${pkgver}/unix
+ [[ $CARCH == "x86_64" ]] && BIT="--enable-64bit"
+ ./configure --prefix=/usr --mandir=/usr/share/man --disable-threads $BIT
+ make
+}
+
+package() {
+ cd tcl${pkgver}/unix
+ make INSTALL_ROOT="${pkgdir}" install install-private-headers
+ ln -sf tclsh${pkgver%.*} "${pkgdir}/usr/bin/tclsh"
+ ln -sf libtcl${pkgver%.*}.so "${pkgdir}/usr/lib/libtcl.so"
+ install -Dm644 ../license.terms "${pkgdir}/usr/share/licenses/tcl/LICENSE"
+
+ # remove buildroot traces
+ sed -e "s#${srcdir}/tcl${pkgver}/unix#/usr/lib#" \
+ -e "s#${srcdir}/tcl${pkgver}#/usr/include#" \
+ -i "${pkgdir}/usr/lib/tclConfig.sh"
+
+ tdbcver=tdbc1.0.4
+ sed -e "s#${srcdir}/tcl${pkgver}/unix/pkgs/$tdbcver#/usr/lib/$tdbcver#" \
+ -e "s#${srcdir}/tcl${pkgver}/pkgs/$tdbcver/generic#/usr/include#" \
+ -e "s#${srcdir}/tcl${pkgver}/pkgs/$tdbcver/library#/usr/lib/tcl${pkgver%.*}#" \
+ -e "s#${srcdir}/tcl${pkgver}/pkgs/$tdbcver#/usr/include#" \
+ -i "${pkgdir}/usr/lib/$tdbcver/tdbcConfig.sh"
+
+ itclver=itcl4.0.4
+ sed -e "s#${srcdir}/tcl${pkgver}/unix/pkgs/$itclver#/usr/lib/$itclver#" \
+ -e "s#${srcdir}/tcl${pkgver}/pkgs/$itclver/generic#/usr/include#" \
+ -e "s#${srcdir}/tcl${pkgver}/pkgs/$itclver#/usr/include#" \
+ -i "${pkgdir}/usr/lib/$itclver/itclConfig.sh"
+}
diff --git a/tcl-fix-segv.patch b/tcl-fix-segv.patch
new file mode 100644
index 000000000000..1eaa11d2244f
--- /dev/null
+++ b/tcl-fix-segv.patch
@@ -0,0 +1,26 @@
+From 55234833327f1ee7469552fa103c316e5405f8b0 Mon Sep 17 00:00:00 2001
+From: "nijtmans@users.sourceforge.net" <jan.nijtmans>
+Date: Mon, 21 Mar 2016 09:05:34 +0000
+Subject: [PATCH] Proposed fix for [d3071887dbc7aeac]: Fix SEGV in
+ Tcl_FinalizeNotifier()
+
+---
+ unix/tclUnixNotfy.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c
+index 48ba0cc..3946c7d 100644
+--- a/unix/tclUnixNotfy.c
++++ b/unix/tclUnixNotfy.c
+@@ -433,9 +433,11 @@ Tcl_FinalizeNotifier(
+ "unable to write q to triggerPipe");
+ }
+ close(triggerPipe);
++ pthread_mutex_lock(&notifierMutex);
+ while(triggerPipe != -1) {
+ pthread_cond_wait(&notifierCV, &notifierMutex);
+ }
++ pthread_mutex_unlock(&notifierMutex);
+ if (notifierThreadRunning) {
+ int result = pthread_join((pthread_t) notifierThread, NULL);
+