From 5ac562883ae14b6b6b222b08e2c5e275c61cb303 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Thu, 26 Jan 2023 22:19:47 +0100 Subject: upstream revert for change causing regressions; rel 2 from: https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/180 diff --git a/revert-update-xputbackevent.patch b/revert-update-xputbackevent.patch new file mode 100644 index 0000000..d249457 --- /dev/null +++ b/revert-update-xputbackevent.patch @@ -0,0 +1,57 @@ +From 88399e01be679bfcc9a5e8922ffe2c47f0e56dee Mon Sep 17 00:00:00 2001 +From: Yuxuan Shui +Date: Tue, 3 Jan 2023 15:09:28 +0000 +Subject: [PATCH] Revert "Update XPutBackEvent() to support clients that put + back unpadded events" + +This reverts commit d6d6cba90215d323567fef13d6565756c9956f60. + +The reverted commit intended to fix the problem where an unpadded X +event struct is passed into XPutBackEvent, by creating a padded struct +with _XEventToWire and _XWireToEvent. However, _XWireToEvent updates the +last sequence number in Display, which may cause xlib to complain about +lost sequence numbers. + +IMO, the problem that commit tried to solve is a bug in the client +library, and workaround it inside Xlib is bad practice, especially given +the problem it caused. Plus, the offender cited in the original commit +message, freeglut, has already fixed this problem. + +Fixes: #176 #174 + +Signed-off-by: Yuxuan Shui +--- + src/PutBEvent.c | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/src/PutBEvent.c b/src/PutBEvent.c +index f7b74b31..0f9df342 100644 +--- a/src/PutBEvent.c ++++ b/src/PutBEvent.c +@@ -79,22 +79,9 @@ XPutBackEvent ( + register XEvent *event) + { + int ret; +- xEvent wire = {0}; +- XEvent lib = {0}; +- Status (*fp)(Display *, XEvent *, xEvent *); +- int type = event->type & 0177; + + LockDisplay(dpy); +- fp = dpy->wire_vec[type]; +- if (fp == NULL) +- fp = _XEventToWire; +- ret = (*fp)(dpy, event, &wire); +- if (ret) +- { +- ret = (*dpy->event_vec[type])(dpy, &lib, &wire); +- if (ret) +- ret = _XPutBackEvent(dpy, &lib); +- } ++ ret = _XPutBackEvent(dpy, event); + UnlockDisplay(dpy); + return ret; + } +-- +GitLab + diff --git a/xorg-lib-libX11.spec b/xorg-lib-libX11.spec index 8d6a24b..61f2672 100644 --- a/xorg-lib-libX11.spec +++ b/xorg-lib-libX11.spec @@ -6,13 +6,14 @@ Summary: Core X11 protocol client library Summary(pl.UTF-8): Podstawowa biblioteka kliencka protokołu X11 Name: xorg-lib-libX11 Version: 1.8.3 -Release: 1 +Release: 2 License: MIT Group: X11/Libraries Source0: https://xorg.freedesktop.org/releases/individual/lib/libX11-%{version}.tar.xz # Source0-md5: f4855944f068d8a623c82c4162747fa3 # sync locales and their encodings with glibc Patch0: %{name}-glibc-locale_sync.patch +Patch1: revert-update-xputbackevent.patch URL: https://xorg.freedesktop.org/ BuildRequires: autoconf >= 2.60 BuildRequires: automake @@ -104,6 +105,7 @@ Pakiet zawiera statyczną bibliotekę libX11. # do we need this patch for anything? (aka is any pld user in need for these new locales) # https://bugs.freedesktop.org/show_bug.cgi?id=7415 %patch0 -p1 +%patch1 -p1 # support __libmansuffix__ and __filemansuffix__ with "x" suffix (per FHS 2.3) %{__sed} -i -e 's,\.so man__libmansuffix__/,.so man3/,' \ -- cgit v0.10.2