Date: Saturday, February 4, 2023 @ 20:55:46 Author: andyrtr Revision: 468189
upgpkg: libx11 1.8.4-1: upstream update 1.8.4 Modified: libx11/trunk/PKGBUILD Deleted: libx11/trunk/0001-Revert_Update_XPutBackEvent.diff libx11/trunk/176.diff ---------------------------------------+ 0001-Revert_Update_XPutBackEvent.diff | 57 -------- 176.diff | 205 -------------------------------- PKGBUILD | 24 --- 3 files changed, 5 insertions(+), 281 deletions(-) Deleted: 0001-Revert_Update_XPutBackEvent.diff =================================================================== --- 0001-Revert_Update_XPutBackEvent.diff 2023-02-04 19:44:37 UTC (rev 468188) +++ 0001-Revert_Update_XPutBackEvent.diff 2023-02-04 20:55:46 UTC (rev 468189) @@ -1,57 +0,0 @@ -From 88399e01be679bfcc9a5e8922ffe2c47f0e56dee Mon Sep 17 00:00:00 2001 -From: Yuxuan Shui <[email protected]> -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 <[email protected]> ---- - 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 - Deleted: 176.diff =================================================================== --- 176.diff 2023-02-04 19:44:37 UTC (rev 468188) +++ 176.diff 2023-02-04 20:55:46 UTC (rev 468189) @@ -1,205 +0,0 @@ -From eb1c272ab5230d548077b9f59aca4b3457c3a8f8 Mon Sep 17 00:00:00 2001 -From: GaryOderNichts <[email protected]> -Date: Sat, 17 Dec 2022 16:28:40 +0100 -Subject: [PATCH] Fix a9e845 and 797755 Allow X*IfEvent() to reenter libX11 - ---- - include/X11/Xlibint.h | 9 +++++- - src/ChkIfEv.c | 5 +++- - src/IfEvent.c | 5 +++- - src/PeekIfEv.c | 5 +++- - src/locking.c | 65 +++++++++---------------------------------- - 5 files changed, 33 insertions(+), 56 deletions(-) - -diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h -index e20c4833..50099b43 100644 ---- a/include/X11/Xlibint.h -+++ b/include/X11/Xlibint.h -@@ -43,6 +43,10 @@ from The Open Group. - #include <X11/Xproto.h> /* to declare xEvent */ - #include <X11/XlibConf.h> /* for configured options like XTHREADS */ - -+#ifdef XTHREADS -+#include <X11/Xthreads.h> -+#endif -+ - /* The Xlib structs are full of implicit padding to properly align members. - We can't clean that up without breaking ABI, so tell clang not to bother - complaining about it. */ -@@ -207,7 +211,10 @@ struct _XDisplay - - XIOErrorExitHandler exit_handler; - void *exit_handler_data; -- CARD32 in_ifevent; -+ CARD32 in_ifevent; -+#ifdef XTHREADS -+ xthread_t ifevent_thread; -+#endif - }; - - #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n) -diff --git a/src/ChkIfEv.c b/src/ChkIfEv.c -index b32c2d3e..66636696 100644 ---- a/src/ChkIfEv.c -+++ b/src/ChkIfEv.c -@@ -49,8 +49,11 @@ Bool XCheckIfEvent ( - unsigned long qe_serial = 0; - int n; /* time through count */ - -- dpy->in_ifevent++; - LockDisplay(dpy); -+#ifdef XTHREADS -+ dpy->ifevent_thread = xthread_self(); -+#endif -+ dpy->in_ifevent++; - prev = NULL; - for (n = 3; --n >= 0;) { - for (qelt = prev ? prev->next : dpy->head; -diff --git a/src/IfEvent.c b/src/IfEvent.c -index 54c37f00..35c592e3 100644 ---- a/src/IfEvent.c -+++ b/src/IfEvent.c -@@ -48,8 +48,11 @@ XIfEvent ( - register _XQEvent *qelt, *prev; - unsigned long qe_serial = 0; - -- dpy->in_ifevent++; - LockDisplay(dpy); -+#ifdef XTHREADS -+ dpy->ifevent_thread = xthread_self(); -+#endif -+ dpy->in_ifevent++; - prev = NULL; - while (1) { - for (qelt = prev ? prev->next : dpy->head; -diff --git a/src/PeekIfEv.c b/src/PeekIfEv.c -index 68c028b7..754749a7 100644 ---- a/src/PeekIfEv.c -+++ b/src/PeekIfEv.c -@@ -49,8 +49,11 @@ XPeekIfEvent ( - register _XQEvent *prev, *qelt; - unsigned long qe_serial = 0; - -- dpy->in_ifevent++; - LockDisplay(dpy); -+#ifdef XTHREADS -+ dpy->ifevent_thread = xthread_self(); -+#endif -+ dpy->in_ifevent++; - prev = NULL; - while (1) { - for (qelt = prev ? prev->next : dpy->head; -diff --git a/src/locking.c b/src/locking.c -index c550603e..3625bd27 100644 ---- a/src/locking.c -+++ b/src/locking.c -@@ -240,7 +240,9 @@ static void _XUnlockDisplay( - if (lock_hist_loc >= LOCK_HIST_SIZE) - lock_hist_loc = 0; - #endif /* XTHREADS_WARN */ -- xmutex_unlock(dpy->lock->mutex); -+ -+ if (dpy->in_ifevent == 0 || !xthread_equal(dpy->ifevent_thread, xthread_self())) -+ xmutex_unlock(dpy->lock->mutex); - } - - -@@ -453,63 +455,24 @@ static void _XDisplayLockWait( - } - - static void _XLockDisplay( -- Display *dpy -- XTHREADS_FILE_LINE_ARGS -- ); -- --static void _XIfEventLockDisplay( - Display *dpy - XTHREADS_FILE_LINE_ARGS - ) - { -- /* assert(dpy->in_ifevent); */ --} -+ struct _XErrorThreadInfo *ti; - --static void _XInternalLockDisplay( -- Display *dpy, -- Bool wskip -- XTHREADS_FILE_LINE_ARGS -- ); -+ if (dpy->in_ifevent && xthread_equal(dpy->ifevent_thread, xthread_self())) -+ return; - --static void _XIfEventInternalLockDisplay( -- Display *dpy, -- Bool wskip -- XTHREADS_FILE_LINE_ARGS -- ) --{ -- /* assert(dpy->in_ifevent); */ --} -- --static void _XIfEventUnlockDisplay( -- Display *dpy -- XTHREADS_FILE_LINE_ARGS -- ) --{ -- if (dpy->in_ifevent == 0) { -- dpy->lock_fns->lock_display = _XLockDisplay; -- dpy->lock_fns->unlock_display = _XUnlockDisplay; -- dpy->lock->internal_lock_display = _XInternalLockDisplay; -- UnlockDisplay(dpy); -- } else -- return; --} -- --static void _XLockDisplay( -- Display *dpy -- XTHREADS_FILE_LINE_ARGS -- ) --{ --#ifdef XTHREADS -- struct _XErrorThreadInfo *ti; --#endif - #ifdef XTHREADS_WARN - _XLockDisplayWarn(dpy, file, line); - #else - xmutex_lock(dpy->lock->mutex); - #endif -+ - if (dpy->lock->locking_level > 0) -- _XDisplayLockWait(dpy); --#ifdef XTHREADS -+ _XDisplayLockWait(dpy); -+ - /* - * Skip the two function calls below which may generate requests - * when LockDisplay is called from within _XError. -@@ -517,14 +480,9 @@ static void _XLockDisplay( - for (ti = dpy->error_threads; ti; ti = ti->next) - if (ti->error_thread == xthread_self()) - return; --#endif -+ - _XIDHandler(dpy); - _XSeqSyncFunction(dpy); -- if (dpy->in_ifevent) { -- dpy->lock_fns->lock_display = _XIfEventLockDisplay; -- dpy->lock_fns->unlock_display = _XIfEventUnlockDisplay; -- dpy->lock->internal_lock_display = _XIfEventInternalLockDisplay; -- } - } - - /* -@@ -537,6 +495,9 @@ static void _XInternalLockDisplay( - XTHREADS_FILE_LINE_ARGS - ) - { -+ if (dpy->in_ifevent && xthread_equal(dpy->ifevent_thread, xthread_self())) -+ return; -+ - #ifdef XTHREADS_WARN - _XLockDisplayWarn(dpy, file, line); - #else --- -GitLab - Modified: PKGBUILD =================================================================== --- PKGBUILD 2023-02-04 19:44:37 UTC (rev 468188) +++ PKGBUILD 2023-02-04 20:55:46 UTC (rev 468189) @@ -1,8 +1,8 @@ # Maintainer: Andreas Radke <[email protected]> pkgname=libx11 -pkgver=1.8.3 -pkgrel=6 +pkgver=1.8.4 +pkgrel=1 pkgdesc="X11 client-side library" arch=(x86_64) url="https://xorg.freedesktop.org/" @@ -11,13 +11,9 @@ depends=('libxcb' 'xorgproto') makedepends=('xorg-util-macros' 'xtrans') license=('custom') -source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.xz{,.sig} - 176.diff - 0001-Revert_Update_XPutBackEvent.diff) -sha512sums=('bc862338fed855986659e9ffa641db6b36c3ac9abced590d1b164e3cc24446671936e3688cdca18393129c4ea41777977eeb37e87d8edc14d6cc5d194a9c0325' - 'SKIP' - '4516a125e18519cfe1cb3c4106b6fc3e0a2b9f59a29631b19a81d0063c3e46ae0aeaa3d6d5da2c637ff3135fd7a63bcfa7b919cc34a6f54f1614128a601f17ad' - '1db742e84c6373d6ce2273c82e5e9b72d7943eea4ffedc9b99570037072ae2cfdf7cd318bf4d5fc6da908304286068e8ba181f6a12cb21b15d47699e77b51341') +source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.xz{,.sig}) +sha512sums=('3150a47498b0cb012482ee02efeaae16d9e736288f2b3f917be912e1613d56ad6b4ab180de8820305deb2b95dfd993633f43a65344d75979d6b86bdf110cb63e' + 'SKIP') validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <[email protected]> #validpgpkeys=('C41C985FDCF1E5364576638B687393EE37D128F8') # Matthieu Herrb <[email protected]> #validpgpkeys=('3BB639E56F861FA2E86505690FDD682D974CA72A') # Matt Turner <[email protected]> @@ -24,16 +20,6 @@ #validpgpkeys=('995ED5C8A6138EB0961F18474C09DD83CAAA50B2') # Adam Jackson <[email protected]> #validpgpkeys=('C383B778255613DFDB409D91DB221A6900000011') # "Keith Packard <[email protected]>" -prepare() { - cd libX11-${pkgver} - # https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/180 // fixes also MR #176/#187 - # should fix FS#76669; FS#69295; FS#76860 - patch -Np1 -i ../0001-Revert_Update_XPutBackEvent.diff - # https://gitlab.freedesktop.org/xorg/lib/libx11/-/merge_requests/176 - # should fix FS#76669 - patch -Np1 -i ../176.diff -} - build() { cd libX11-${pkgver} ./configure --prefix=/usr \
