summaryrefslogtreecommitdiff
path: root/system/expect
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2022-02-06 15:29:03 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2022-05-01 17:05:47 -0500
commit01c8c9c6bd56e3c118056bf18dd84daadc5fa3ae (patch)
treebe412c2a85a4439362dfb3e3218a669f2a0ac03c /system/expect
parentf40b0b74b6c438c7e482afc51df523d96b949539 (diff)
downloadpackages-01c8c9c6bd56e3c118056bf18dd84daadc5fa3ae.tar.gz
packages-01c8c9c6bd56e3c118056bf18dd84daadc5fa3ae.tar.bz2
packages-01c8c9c6bd56e3c118056bf18dd84daadc5fa3ae.tar.xz
packages-01c8c9c6bd56e3c118056bf18dd84daadc5fa3ae.zip
system/expect: Patch for weird Linux TTY error
Linux TTY behaviour changed somewhere between 5.4 and 5.10. This causes the DejaGNU test suite to fail (among others). Found on gwyn running easy-kernel 5.15.11-mc1.
Diffstat (limited to 'system/expect')
-rw-r--r--system/expect/APKBUILD9
-rw-r--r--system/expect/linux-5.10-tty.patch25
2 files changed, 31 insertions, 3 deletions
diff --git a/system/expect/APKBUILD b/system/expect/APKBUILD
index b2b2a5475..2afe30858 100644
--- a/system/expect/APKBUILD
+++ b/system/expect/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=expect
pkgver=5.45.4
-pkgrel=0
+pkgrel=1
pkgdesc="A tool for automating interactive applications"
url="https://www.nist.gov/services-resources/software/expect"
arch="all"
license="Public-Domain"
makedepends="tcl-dev"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://downloads.sourceforge.net/project/expect/Expect/$pkgver/$pkgname$pkgver.tar.gz"
+source="https://downloads.sourceforge.net/project/expect/Expect/$pkgver/$pkgname$pkgver.tar.gz
+ linux-5.10-tty.patch
+ "
builddir="$srcdir"/$pkgname$pkgver
prepare() {
@@ -39,4 +41,5 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="a8dc25e8175f67e029e15cbcfca1705165c1c4cb2dd37eaaaebffb61e3ba132d9519cd73ca5add4c3358a2b0b7a91e878279e8d0b72143ff2c287fce07e4659a expect5.45.4.tar.gz"
+sha512sums="a8dc25e8175f67e029e15cbcfca1705165c1c4cb2dd37eaaaebffb61e3ba132d9519cd73ca5add4c3358a2b0b7a91e878279e8d0b72143ff2c287fce07e4659a expect5.45.4.tar.gz
+779ac78250ca89e289a717b29f47daf099a9aa1fcf8b37e90cfaacbb6c70de0648c856820a2c6e072d5f179587a870286441b61819703fd9bd2fb558472ec21d linux-5.10-tty.patch"
diff --git a/system/expect/linux-5.10-tty.patch b/system/expect/linux-5.10-tty.patch
new file mode 100644
index 000000000..807f519b2
--- /dev/null
+++ b/system/expect/linux-5.10-tty.patch
@@ -0,0 +1,25 @@
+From: Adam Sampson <ats@offog.org>
+Subject: Re: dejagnu-1.6.3 test failure
+Message-ID: <YXNTBvEAQP0jAgiq@cartman.at.offog.org>
+
+After a bit of debugging, the cause seems to be that expect uses
+Tcl_GetsObj to read from stdin, and treats a -1 return value as an
+error. However, Tcl_GetsObj can also return -1 to indicate that input
+was blocked, i.e. it didn't manage to read a complete line -- expect
+didn't handle this case.
+
+This patch seems to fix the problem:
+
+--- expect5.45.4/exp_main_sub.c 2018-02-04 10:43:58.000000000 +0000
++++ expect5.45.4/exp_main_sub.c 2021-10-23 00:39:09.375404444 +0100
+@@ -326,7 +326,9 @@
+
+ if (code != EXP_EOF) {
+ inChannel = expStdinoutGet()->channel;
+- code = Tcl_GetsObj(inChannel, commandPtr);
++ do {
++ code = Tcl_GetsObj(inChannel, commandPtr);
++ } while (code < 0 && Tcl_InputBlocked(inChannel));
+ #ifdef SIMPLE_EVENT
+ if (code == -1 && errno == EINTR) {
+ if (Tcl_AsyncReady()) {