diff options
-rw-r--r-- | meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch | 49 | ||||
-rw-r--r-- | meta/recipes-graphics/xorg-lib/libx11/keysym.patch | 46 | ||||
-rw-r--r-- | meta/recipes-graphics/xorg-lib/libx11_1.7.3.bb (renamed from meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb) | 19 |
3 files changed, 12 insertions, 102 deletions
diff --git a/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch b/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch deleted file mode 100644 index 660e6968bf..0000000000 --- a/meta/recipes-graphics/xorg-lib/libx11/Fix-hanging-issue-in-_XReply.patch +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | From 5235a7f3692a4c3c90dd4ac1be3c670388904bbe Mon Sep 17 00:00:00 2001 | ||
2 | From: Tatu Frisk <tatu.frisk@ge.com> | ||
3 | Date: Tue, 14 Mar 2017 14:41:27 +0200 | ||
4 | Subject: [PATCH] Fix hanging issue in _XReply | ||
5 | |||
6 | Assume event queue is empty if another thread is blocking waiting for event. | ||
7 | |||
8 | If one thread was blocking waiting for an event and another thread sent a | ||
9 | reply to the X server, both threads got blocked until an event was | ||
10 | received. | ||
11 | |||
12 | Upstream-Status: Backport [93a050c3ad2d2264d3880db3791387b1a9bf2e9e] | ||
13 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
14 | |||
15 | --- | ||
16 | src/xcb_io.c | 19 +++++++------------ | ||
17 | 1 file changed, 7 insertions(+), 12 deletions(-) | ||
18 | |||
19 | Index: libX11-1.6.7/src/xcb_io.c | ||
20 | =================================================================== | ||
21 | --- libX11-1.6.7.orig/src/xcb_io.c | ||
22 | +++ libX11-1.6.7/src/xcb_io.c | ||
23 | @@ -620,18 +620,14 @@ Status _XReply(Display *dpy, xReply *rep | ||
24 | if(dpy->xcb->event_owner == XlibOwnsEventQueue) | ||
25 | { | ||
26 | xcb_generic_reply_t *event; | ||
27 | - /* If some thread is already waiting for events, | ||
28 | - * it will get the first one. That thread must | ||
29 | - * process that event before we can continue. */ | ||
30 | - /* FIXME: That event might be after this reply, | ||
31 | - * and might never even come--or there might be | ||
32 | - * multiple threads trying to get events. */ | ||
33 | - while(dpy->xcb->event_waiter) | ||
34 | - { /* need braces around ConditionWait */ | ||
35 | - ConditionWait(dpy, dpy->xcb->event_notify); | ||
36 | - } | ||
37 | - while((event = poll_for_event(dpy, True))) | ||
38 | - handle_response(dpy, event, True); | ||
39 | + | ||
40 | + /* Assume event queue is empty if another thread is blocking | ||
41 | + * waiting for event. */ | ||
42 | + if(!dpy->xcb->event_waiter) | ||
43 | + { | ||
44 | + while((event = poll_for_response(dpy))) | ||
45 | + handle_response(dpy, event, True); | ||
46 | + } | ||
47 | } | ||
48 | |||
49 | req->reply_waiter = 0; | ||
diff --git a/meta/recipes-graphics/xorg-lib/libx11/keysym.patch b/meta/recipes-graphics/xorg-lib/libx11/keysym.patch deleted file mode 100644 index f4d7419c02..0000000000 --- a/meta/recipes-graphics/xorg-lib/libx11/keysym.patch +++ /dev/null | |||
@@ -1,46 +0,0 @@ | |||
1 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/79] | ||
2 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
3 | |||
4 | From e92efc63acd7b377faa9e534f4bf52aaa86be2a9 Mon Sep 17 00:00:00 2001 | ||
5 | From: Peter Hutterer <peter.hutterer@who-t.net> | ||
6 | Date: Tue, 27 Jul 2021 11:46:19 +1000 | ||
7 | Subject: [PATCH] makekeys: handle the new _EVDEVK xorgproto symbols | ||
8 | |||
9 | These keys are all defined through a macro in the form: | ||
10 | #define XF86XK_BrightnessAuto _EVDEVK(0x0F4) | ||
11 | |||
12 | The _EVDEVK macro is simply an offset of 0x10081000. | ||
13 | Let's parse these lines correctly so those keysyms end up in our | ||
14 | hashtables. | ||
15 | |||
16 | Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
17 | --- | ||
18 | src/util/makekeys.c | 12 ++++++++++++ | ||
19 | 1 file changed, 12 insertions(+) | ||
20 | |||
21 | diff --git a/src/util/makekeys.c b/src/util/makekeys.c | ||
22 | index e847ef4c..4896cc53 100644 | ||
23 | --- a/src/util/makekeys.c | ||
24 | +++ b/src/util/makekeys.c | ||
25 | @@ -78,6 +78,18 @@ parse_line(const char *buf, char *key, KeySym *val, char *prefix) | ||
26 | return 1; | ||
27 | } | ||
28 | |||
29 | + /* See if we can parse one of the _EVDEVK symbols */ | ||
30 | + i = sscanf(buf, "#define %127s _EVDEVK(0x%lx)", key, val); | ||
31 | + if (i == 2 && (tmp = strstr(key, "XK_"))) { | ||
32 | + memcpy(prefix, key, (size_t)(tmp - key)); | ||
33 | + prefix[tmp - key] = '\0'; | ||
34 | + tmp += 3; | ||
35 | + memmove(key, tmp, strlen(tmp) + 1); | ||
36 | + | ||
37 | + *val += 0x10081000; | ||
38 | + return 1; | ||
39 | + } | ||
40 | + | ||
41 | /* Now try to catch alias (XK_foo XK_bar) definitions, and resolve them | ||
42 | * immediately: if the target is in the form XF86XK_foo, we need to | ||
43 | * canonicalise this to XF86foo before we do the lookup. */ | ||
44 | -- | ||
45 | GitLab | ||
46 | |||
diff --git a/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb b/meta/recipes-graphics/xorg-lib/libx11_1.7.3.bb index f429daaf47..f55252b924 100644 --- a/meta/recipes-graphics/xorg-lib/libx11_1.7.2.bb +++ b/meta/recipes-graphics/xorg-lib/libx11_1.7.3.bb | |||
@@ -10,12 +10,13 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:" | |||
10 | 10 | ||
11 | PE = "1" | 11 | PE = "1" |
12 | 12 | ||
13 | SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \ | 13 | # temporarily override SRC_URI which is hard-coded in xorg-lib-common.inc |
14 | file://disable_tests.patch \ | 14 | # since new versions of packages use a new compression format - .tar.gz |
15 | file://keysym.patch \ | 15 | SRC_URI = "${XORG_MIRROR}/individual/lib/${XORG_PN}-${PV}.tar.xz" |
16 | " | ||
17 | 16 | ||
18 | SRC_URI[sha256sum] = "1cfa35e37aaabbe4792e9bb690468efefbfbf6b147d9c69d6f90d13c3092ea6c" | 17 | SRC_URI += "file://disable_tests.patch \ |
18 | " | ||
19 | SRC_URI[sha256sum] = "dfd1343db3a0e523f1bb97d5ba71453c79eee78a77e51ca9f8dfef7131c6f0fe" | ||
19 | 20 | ||
20 | PROVIDES = "virtual/libx11" | 21 | PROVIDES = "virtual/libx11" |
21 | 22 | ||
@@ -23,8 +24,12 @@ XORG_PN = "libX11" | |||
23 | LICENSE = "MIT & MIT-style & BSD-1-Clause & HPND & HPND-sell-variant" | 24 | LICENSE = "MIT & MIT-style & BSD-1-Clause & HPND & HPND-sell-variant" |
24 | LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" | 25 | LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7" |
25 | 26 | ||
26 | DEPENDS += "xorgproto xtrans libxcb" | 27 | DEPENDS += "xorgproto \ |
27 | DEPENDS += "xorgproto-native" | 28 | xtrans \ |
29 | libxcb \ | ||
30 | xorgproto-native \ | ||
31 | autoconf-archive \ | ||
32 | " | ||
28 | 33 | ||
29 | EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" | 34 | EXTRA_OECONF += "--with-keysymdefdir=${STAGING_INCDIR}/X11/ --disable-xf86bigfont" |
30 | EXTRA_OEMAKE += 'CWARNFLAGS=""' | 35 | EXTRA_OEMAKE += 'CWARNFLAGS=""' |