summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDet2017-01-06 10:37:45 +0200
committerDet2017-01-06 10:37:45 +0200
commit64acc7c4b92ca84831d3fffee33da939a738f1ea (patch)
tree8ecd38a44400cfb4e64c78cf8e94e70ee1e30a10
parentc3a7a55192b969e5a04837b7a010d2f586f45da5 (diff)
downloadaur-64acc7c4b92ca84831d3fffee33da939a738f1ea.tar.gz
Sync with testing/xorg-server: upgpkg: xorg-server 1.19.0-4
-rw-r--r--.SRCINFO2
-rw-r--r--PKGBUILD13
-rw-r--r--git-fixes.diff (renamed from damageRegionProcessPending.diff)98
3 files changed, 107 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9b68ebeaf700..048d7edad595 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = xorg-server-dev
pkgver = 1.19.0
- pkgrel = 3
+ pkgrel = 4
url = http://xorg.freedesktop.org
arch = i686
arch = x86_64
diff --git a/PKGBUILD b/PKGBUILD
index a9356897be67..0cce8c529dd9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,7 +4,7 @@
_pkgbase=xorg-server
pkgname=('xorg-server-dev' 'xorg-server-xephyr-dev' 'xorg-server-xdmx-dev' 'xorg-server-xvfb-dev' 'xorg-server-xnest-dev' 'xorg-server-xwayland-dev' 'xorg-server-common-dev' 'xorg-server-devel-dev')
pkgver=1.19.0 # http://lists.x.org/archives/xorg/2016-November/058437.html
-pkgrel=3 # https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xorg-server&id=0be9f6c67493ff0f5388262ac675f6db7a2b23a7
+pkgrel=4 # https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/xorg-server&id=9364081f4a0d663bc9461d76cc15aedd135ca9e7
arch=('i686' 'x86_64')
license=('custom')
groups=('xorg')
@@ -19,7 +19,7 @@ makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtra
source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig}
xvfb-run
xvfb-run.1*
- damageRegionProcessPending.diff)
+ git-fixes.diff)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
@@ -27,13 +27,16 @@ sha256sums=('149a708b50befc2d5a40b98d45ddd2ebe0beec018e6d0c663c43bad6210e4da3'
'SKIP'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
- 'c8344b94d946005b28ad1e0771c77174afd7288100763ab7bb7c2b50be52f1e0')
+ '63e37008fdbd0c3630db38b995d3be8891b9c2cabb46cb4dc3596ba988a259cd')
prepare() {
cd "${_pkgbase}-${pkgver}"
- msg2 "Apply upstream commit to fix some EXA crashes"
- patch -Np1 -i ../damageRegionProcessPending.diff
+ msg2 "Apply upstream fixes:
+ Revert \"damage: Make damageRegionProcessPending take a damage not a drawable\"
+ OS: return 0 from check_timers, if we touched any of them
+ Glamor: Trust eglGetPlatformDisplayEXT, if it exists"
+ patch -Np1 -i ../git-fixes.diff
}
build() {
diff --git a/damageRegionProcessPending.diff b/git-fixes.diff
index cf25c76895c6..fc379fe7c48d 100644
--- a/damageRegionProcessPending.diff
+++ b/git-fixes.diff
@@ -513,4 +513,102 @@ index 17c2abf..d6a3614 100644
--
cgit v0.10.2
+From 1b42f9505ff3a39b441464f553442079b750fe88 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu, 8 Dec 2016 14:32:06 +1000
+Subject: os: return 0 from check_timers if we touched any of them
+
+Fixes a regression introduced in 0b2f30834b1a9f. If a driver posts input
+events during a timer function (wacom and synaptics do this during tap
+timeouts), ProcessInputEvents() is not called for these events. There are no
+new events on any fds, so the events just sit in the queue waiting for
+something else to happen.
+
+Fix this by simply returning 0 from check_timers if we ran at least one of
+them or reset them all. This way the callers ospoll_wait will exit and
+continue with normal processing.
+
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+
+diff --git a/os/WaitFor.c b/os/WaitFor.c
+index ff1c85e..613608f 100644
+--- a/os/WaitFor.c
++++ b/os/WaitFor.c
+@@ -143,7 +143,7 @@ check_timers(void)
+ {
+ OsTimerPtr timer;
+
+- while ((timer = first_timer()) != NULL) {
++ if ((timer = first_timer()) != NULL) {
+ CARD32 now = GetTimeInMillis();
+ int timeout = timer->expires - now;
+
+@@ -157,6 +157,8 @@ check_timers(void)
+ /* time has rewound. reset the timers. */
+ CheckAllTimers();
+ }
++
++ return 0;
+ }
+ return -1;
+ }
+--
+cgit v0.10.2
+
+From 05e19644250698aa126a60bc671e85425df784d1 Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Tue, 20 Dec 2016 13:00:43 +0100
+Subject: glamor: Trust eglGetPlatformDisplayEXT if it exists
+
+If the libEGL we are using has eglGetPlatformDisplayEXT, yet it still
+returns NULL, then this very likely means that it does not support the
+type (e.g. EGL_PLATFORM_GBM_MESA) passed in, and then returning NULL is
+the right thing to do.
+
+This avoids falling back to an eglGetDisplay() implementation which does
+not understands the passed in gbm handle, treats it as a pointer to
+something else completely, followed by a crash sooner or later.
+
+Specifically this fixes using the nvidia binary driver, with nvidia's
+libEGL + the modesetting driver on a secondary GPU crashing inside
+glamor_egl_init() sometimes.
+
+Cc: Eric Anholt <eric@anholt.net>
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+
+diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
+index 9cc0f8d..4bde637 100644
+--- a/glamor/glamor_egl.c
++++ b/glamor/glamor_egl.c
+@@ -769,6 +769,10 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd)
+
+ glamor_egl->display = glamor_egl_get_display(EGL_PLATFORM_GBM_MESA,
+ glamor_egl->gbm);
++ if (!glamor_egl->display) {
++ xf86DrvMsg(scrn->scrnIndex, X_ERROR, "eglGetDisplay() failed\n");
++ goto error;
++ }
+ #else
+ glamor_egl->display = eglGetDisplay((EGLNativeDisplayType) (intptr_t) fd);
+ #endif
+diff --git a/glamor/glamor_egl.h b/glamor/glamor_egl.h
+index 6b05f57..2c6d307 100644
+--- a/glamor/glamor_egl.h
++++ b/glamor/glamor_egl.h
+@@ -67,9 +67,7 @@ glamor_egl_get_display(EGLint type, void *native)
+ PFNEGLGETPLATFORMDISPLAYEXTPROC getPlatformDisplayEXT =
+ (void *) eglGetProcAddress("eglGetPlatformDisplayEXT");
+ if (getPlatformDisplayEXT)
+- dpy = getPlatformDisplayEXT(type, native, NULL);
+- if (dpy)
+- return dpy;
++ return getPlatformDisplayEXT(type, native, NULL);
+ }
+
+ /* Welp, everything is awful. */
+--
+cgit v0.10.2
+