From 66520d3148e31806a52cf7df5b8d91d5cd431670 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 17 Jan 2023 07:14:19 +0000 Subject: gentoo auto-resync : 17:01:2023 - 07:14:19 --- x11-libs/libX11/Manifest | 3 + .../files/libX11-1.8.3-reentrancy-again.patch | 188 +++++++++++++++++++++ .../files/libX11-1.8.3-revert-XPutBackEvent.patch | 57 +++++++ x11-libs/libX11/libX11-1.8.3-r1.ebuild | 49 ++++++ 4 files changed, 297 insertions(+) create mode 100644 x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch create mode 100644 x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch create mode 100644 x11-libs/libX11/libX11-1.8.3-r1.ebuild (limited to 'x11-libs/libX11') diff --git a/x11-libs/libX11/Manifest b/x11-libs/libX11/Manifest index 94c5149fd0a4..7636a3a1ad92 100644 --- a/x11-libs/libX11/Manifest +++ b/x11-libs/libX11/Manifest @@ -1,4 +1,6 @@ AUX libX11-1.8.2-reentrancy.patch 4077 BLAKE2B 6888f6185a03c9c5fbe79a3ce6d2b2a78ee951038a7c5cdbcd94e72a6c24d7aca3289c724b0c940a245cd352e3f50bf064fef5c00c02321e7cb67b94a39cd13d SHA512 6d8e9f578e33cb36236757127634899f71c7c194d536fd5ba7617f96fc38928f5d402aa9adb57a2939cd6dad041ba0431a2281aaec7e5b25395b67355a10bbce +AUX libX11-1.8.3-reentrancy-again.patch 4713 BLAKE2B e2d308bd011120655009e5af1e5cbbefa217c3de1c7e78d3ddc64d0ce02535cc63903696ec21cb5743b49ee016a3c8ded22ee62a2f1256b71c0f245c51108de5 SHA512 a6a2f504fe7b860a86ac140c2b1ad7ca3c4a8fc2170535a5cac365bf8de40fa576f0d05134b1eb316192b4acb909bba473298704b18c7c1e1602e2a4f56e592f +AUX libX11-1.8.3-revert-XPutBackEvent.patch 1772 BLAKE2B b60d6cb535d6557fb2ba84a962af77481c6ebd1780d23869172cb331a09f7638fee75deeb73b02a5c37f658f5d04d2b90a6f5c9d91121c187f9d98a311c3c718 SHA512 df965ba65ca448686e200feaee11f8f9fb90b27fd2def30aee930d21b03682ed83613d3630b024fe6d1fd2894e76fa35ff8d04afc6e958981ed9b3e8f51e834c DIST libX11-1.7.5.tar.xz 1853152 BLAKE2B 95ceccbfd37d8a749a533bdc03feba94236a47185a2cd7ad6592c534c17636906b735aa5800d810d13d3e342e3dbe281bb1f1f3ecab9d07e6a6a50f33beef8af SHA512 ef33e2f631226cab27657f46e1fd4cfc928f62f928d8297474e7b993017c8f92b60272eed6515990cdf3a9d34581837b7a3896e584f3546dd26f3790034df347 DIST libX11-1.8.1.tar.xz 1818460 BLAKE2B 7602b4d8c65ea3160f81096b4e022b5462e49d96b36dee70fe06e972329dc9d70bbd462e2079da03ba5647d7a72bf03e29aab23c60bcc206c95d770655622226 SHA512 2e36d2c47519e0cb2697f588c0ccdf73fbe75c2163f0855c78f7052dc9e920bca081f9d5e39c707a14067f101faef74fc758c8862eeba675b1535b43119d533a DIST libX11-1.8.2.tar.xz 1823712 BLAKE2B e504d93ba399301106181a29e6d869e82abe54472ef8d6a8d4d2d7d9cf94f73914a73911fb1ff156a08b852e5592231059f5ee4c64f2c7e8d49df3c532c9da43 SHA512 662ee8043d9ba27df82f647515b701d6f302a52715f21afdaba391f3b70691753e3649e7ff8322e07858be4297df9cbb19227958d676ed6dea198cce64330d1d @@ -7,5 +9,6 @@ EBUILD libX11-1.7.5.ebuild 938 BLAKE2B 6559a7c7633d55efa6774d3b0d100a289e060a32c EBUILD libX11-1.8.1.ebuild 966 BLAKE2B 4ad188c9d7030b656da151da82ecb7cd776deae774c5809e79a7a3f3fbd34ef0d7b54c822b4f7d748fc881293366b1c5e89817ce19e00c701e1d8186c9d40982 SHA512 5f361d9291ad4c0f04d6449efe244196c612bfbb3ba6342ca2da45dab3c169e306302e0e200ecd60d9a1bcc0e94cf9781807d9bf60f6573012b444d0d258800b EBUILD libX11-1.8.2-r1.ebuild 1024 BLAKE2B b587287f2eccc135d80a93b16c7d1d3b83f588636489d8b2352d2ae3f0b424a6d2a1d7111b88c2a88e062c7f0f434f659e96cc53b7aa999babd2cc45f635223c SHA512 a979ece6a2ad173b9d2bf379cdcc7dfee990100ea6372d75a56b051d9a3a2156f5a0608507cfcd9391c57d68aac8e0492e3280015dc10463e841d1fec87fdfb9 EBUILD libX11-1.8.2.ebuild 974 BLAKE2B 1330883cf7063ac03afd07984a6fb2c3d1ba47ac0dc84c40614945e149e23c7d0f7372f79d1d901781bad49a1746190007c1b6ecdef3baf13b9b7a9cbedf4c03 SHA512 4cd859027b3b8e7fc6b0c4b556f168c5a18d0f03d9757670a0f53bbe24e37dd9998800172d9aec9c50bd49ca45c07cd4958b5fb5f639a601d379347de8f66f57 +EBUILD libX11-1.8.3-r1.ebuild 1077 BLAKE2B f240ab8a5fff1bea892e6636e780b66ef9ef639399dad44651cac05a86b23bb2fdee75721b40b29116860296e87b8e9fee124c9ed76cc7b82dc90fd0571ce834 SHA512 9ae6a254edb95cbaff3d0de9c7d6966fbc6718d4dfc1a8f3eda427a7e9e6df0816ddf8d1cace87cb25763aa635b65c4ae33639ff9d45d60263a6174322c6b276 EBUILD libX11-1.8.3.ebuild 974 BLAKE2B 1330883cf7063ac03afd07984a6fb2c3d1ba47ac0dc84c40614945e149e23c7d0f7372f79d1d901781bad49a1746190007c1b6ecdef3baf13b9b7a9cbedf4c03 SHA512 4cd859027b3b8e7fc6b0c4b556f168c5a18d0f03d9757670a0f53bbe24e37dd9998800172d9aec9c50bd49ca45c07cd4958b5fb5f639a601d379347de8f66f57 MISC metadata.xml 395 BLAKE2B 7912fcccfd8d8a4c9c1e5601783a0668679506638511ee719bf7bb95f99415fe95a417343060cf5ca3fe918ab1f9847f74861af36d3c712afa321272cd13cf66 SHA512 c2956ef519fe59d0f713732059224568b9d7c34579654b71993b02227a512c1ac3057dc7f81c6bc93834fd4fee212f1ae26f4055ea92f3eb7524da7d9e690f8f diff --git a/x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch b/x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch new file mode 100644 index 000000000000..3ab9b6b1424c --- /dev/null +++ b/x11-libs/libX11/files/libX11-1.8.3-reentrancy-again.patch @@ -0,0 +1,188 @@ +https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/eb1c272ab5230d548077b9f59aca4b3457c3a8f8 + +From eb1c272ab5230d548077b9f59aca4b3457c3a8f8 Mon Sep 17 00:00:00 2001 +From: GaryOderNichts +Date: Sat, 17 Dec 2022 16:28:40 +0100 +Subject: [PATCH] Fix a9e845 and 797755 Allow X*IfEvent() to reenter libX11 + +--- a/include/X11/Xlibint.h ++++ b/include/X11/Xlibint.h +@@ -43,6 +43,10 @@ from The Open Group. + #include /* to declare xEvent */ + #include /* for configured options like XTHREADS */ + ++#ifdef XTHREADS ++#include ++#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) +--- 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; +--- 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; +--- 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; +--- 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 diff --git a/x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch b/x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch new file mode 100644 index 000000000000..b210defcf664 --- /dev/null +++ b/x11-libs/libX11/files/libX11-1.8.3-revert-XPutBackEvent.patch @@ -0,0 +1,57 @@ +https://bugs.gentoo.org/886349 +https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/176 +https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/174 +https://gitlab.freedesktop.org/xorg/lib/libx11/-/commit/88399e01be679bfcc9a5e8922ffe2c47f0e56dee + +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 +--- 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/x11-libs/libX11/libX11-1.8.3-r1.ebuild b/x11-libs/libX11/libX11-1.8.3-r1.ebuild new file mode 100644 index 000000000000..a24f4cae12dd --- /dev/null +++ b/x11-libs/libX11/libX11-1.8.3-r1.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +XORG_DOC=doc +XORG_MULTILIB=yes +XORG_TARBALL_SUFFIX=xz +inherit toolchain-funcs xorg-3 + +# Note: please bump this with x11-misc/compose-tables +DESCRIPTION="X.Org X11 library" + +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=x11-libs/libxcb-1.11.1[${MULTILIB_USEDEP}] + x11-misc/compose-tables + + !