summaryrefslogtreecommitdiff
path: root/extra/libxt
diff options
context:
space:
mode:
Diffstat (limited to 'extra/libxt')
-rw-r--r--extra/libxt/PKGBUILD12
-rw-r--r--extra/libxt/Revert_treat_unexpected_returned_events_from_poll_as_errors.diff40
2 files changed, 48 insertions, 4 deletions
diff --git a/extra/libxt/PKGBUILD b/extra/libxt/PKGBUILD
index 0c4f3a74d..d2b818319 100644
--- a/extra/libxt/PKGBUILD
+++ b/extra/libxt/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 152767 2012-03-09 16:01:47Z andyrtr $
+# $Id: PKGBUILD 153273 2012-03-12 20:17:00Z andyrtr $
#Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=libxt
pkgver=1.1.2
-pkgrel=1
+pkgrel=2
pkgdesc="X11 toolkit intrinsics library"
arch=('i686' 'x86_64' 'mips64el')
url="http://xorg.freedesktop.org/"
@@ -11,11 +11,15 @@ license=('custom')
depends=('libsm' 'libx11')
makedepends=('xorg-util-macros')
options=('!libtool')
-source=("${url}/releases/individual/lib/libXt-${pkgver}.tar.bz2")
-sha1sums=('9e84b807419d78bda4acbd7aea05aed2ab0556cf')
+source=("${url}/releases/individual/lib/libXt-${pkgver}.tar.bz2"
+ Revert_treat_unexpected_returned_events_from_poll_as_errors.diff)
+sha1sums=('9e84b807419d78bda4acbd7aea05aed2ab0556cf'
+ 'bebadf4b90f6a49530b5600a12a9385253e0daa6')
build() {
cd "${srcdir}/libXt-${pkgver}"
+ # revert broken commit, see https://bugs.archlinux.org/task/28844 + https://bugs.archlinux.org/task/28875 + https://bugs.freedesktop.org/show_bug.cgi?id=47203
+ patch -Np1 -R -i ${srcdir}/Revert_treat_unexpected_returned_events_from_poll_as_errors.diff
./configure --prefix=/usr --sysconfdir=/etc --disable-static
make
}
diff --git a/extra/libxt/Revert_treat_unexpected_returned_events_from_poll_as_errors.diff b/extra/libxt/Revert_treat_unexpected_returned_events_from_poll_as_errors.diff
new file mode 100644
index 000000000..b3f708292
--- /dev/null
+++ b/extra/libxt/Revert_treat_unexpected_returned_events_from_poll_as_errors.diff
@@ -0,0 +1,40 @@
+From 70bb9e28d37fff4ead4d0a2c672af77059765fa4 Mon Sep 17 00:00:00 2001
+From: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Wed, 04 Jan 2012 18:33:29 +0000
+Subject: Treat unexpected returned events from poll as errors
+
+Inspired by libxcb's f0565e8f06aadf760a9065a97b8cf5ab9cbd18de
+
+Resolves https://bugs.freedesktop.org/show_bug.cgi?id=20048
+
+Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+---
+diff --git a/src/NextEvent.c b/src/NextEvent.c
+index b1f7bc7..c8c9dd5 100644
+--- a/src/NextEvent.c
++++ b/src/NextEvent.c
+@@ -356,7 +356,21 @@ static int IoWait (
+ return Select (wf->nfds, &wf->rmask, &wf->wmask, &wf->emask,
+ wt->wait_time_ptr);
+ #else
+- return poll (wf->fdlist, wf->fdlistlen, wt->poll_wait);
++ int ret = poll (wf->fdlist, wf->fdlistlen, wt->poll_wait);
++ /* If poll() returns an event we didn't expect, such as POLLNVAL, treat
++ * it as if it failed. */
++ if(ret >= 0) {
++ nfds_t i;
++ for (i=0; i < wf->fdlistlen; i++) {
++ struct pollfd *fd = &wf->fdlist[i];
++ if (fd->revents & ~fd->events) {
++ ret = -1;
++ errno = EIO;
++ break;
++ }
++ }
++ }
++ return ret;
+ #endif
+ }
+
+--
+cgit v0.9.0.2-2-gbebe